From 5b6780f999a9bf1481adcc2c2831bd39ac0c6980 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue, 20 Jul 2021 10:04:14 +1000 Subject: [PATCH 001/328] [Keyboard][Bug] Constellation Rev2 (#13595) --- keyboards/aeboards/constellation/rev2/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/aeboards/constellation/rev2/config.h b/keyboards/aeboards/constellation/rev2/config.h index bff51c07d5d5..0780c9bf934c 100755 --- a/keyboards/aeboards/constellation/rev2/config.h +++ b/keyboards/aeboards/constellation/rev2/config.h @@ -31,7 +31,7 @@ /* key matrix pins */ #define MATRIX_ROW_PINS { B15, A14, A2, B13, B14 } -#define MATRIX_COL_PINS { B12, H0, C15, C14, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3 } +#define MATRIX_COL_PINS { B12, A1, H0, C15, C14, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3 } #define UNUSED_PINS /* COL2ROW or ROW2COL */ From 58f9321a77030ffdb6198837bc0319c826cc9183 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 19 Jul 2021 17:05:47 -0700 Subject: [PATCH 002/328] fluxlab zplit: keymap restructuring (#13599) --- keyboards/flxlb/zplit/info.json | 70 +++++++++++++--- .../flxlb/zplit/keymaps/default/config.h | 28 +++++++ .../flxlb/zplit/keymaps/default/keymap.c | 80 +++++++++++++++++++ keyboards/flxlb/zplit/keymaps/via/keymap.c | 34 ++++---- keyboards/flxlb/zplit/keymaps/via/rules.mk | 1 + 5 files changed, 187 insertions(+), 26 deletions(-) create mode 100644 keyboards/flxlb/zplit/keymaps/default/config.h create mode 100644 keyboards/flxlb/zplit/keymaps/default/keymap.c create mode 100644 keyboards/flxlb/zplit/keymaps/via/rules.mk diff --git a/keyboards/flxlb/zplit/info.json b/keyboards/flxlb/zplit/info.json index 7cf3f0078a39..ad682a210f53 100644 --- a/keyboards/flxlb/zplit/info.json +++ b/keyboards/flxlb/zplit/info.json @@ -1,12 +1,64 @@ { - "keyboard_name": "zplit", - "url": "https://github.com/cccywj/qmk_firmware", - "maintainer": "flxlb", - "width": 13, - "height": 4, - "layouts": { - "LAYOUT": { - "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":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "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":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "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":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "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":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}] + "keyboard_name": "zplit", + "url": "https://github.com/cccywj/qmk_firmware", + "maintainer": "flxlb", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT": { + "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":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "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":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "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":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "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":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3} + ] + } } - } } diff --git a/keyboards/flxlb/zplit/keymaps/default/config.h b/keyboards/flxlb/zplit/keymaps/default/config.h new file mode 100644 index 000000000000..a157047f7a16 --- /dev/null +++ b/keyboards/flxlb/zplit/keymaps/default/config.h @@ -0,0 +1,28 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +//#define USE_I2C + +/* Select hand configuration */ +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS diff --git a/keyboards/flxlb/zplit/keymaps/default/keymap.c b/keyboards/flxlb/zplit/keymaps/default/keymap.c new file mode 100644 index 000000000000..097b1eeed621 --- /dev/null +++ b/keyboards/flxlb/zplit/keymaps/default/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2021 FluxLab + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum custom_layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty */ +[_QWERTY] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MUTE, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LBRC, KC_RBRC, KC_QUOT, KC_MINS +), + +/* Lower */ +[_LOWER] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, _______, _______, KC_UP, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______, + _______, _______, _______, _______, LOWER, _______, _______, KC_0, KC_0, KC_DOT, KC_BSLS, KC_EQL +), + +/* Raise */ +[_RAISE] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, + RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD,_______, RGB_TOG, _______, _______, _______, _______, KC_UP, _______, + _______, _______, _______, _______, _______, _______, _______, RAISE, _______, KC_LEFT, KC_DOWN, KC_RGHT +), + +/* Adjust (Lower + Raise) */ +[_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + return true; +} diff --git a/keyboards/flxlb/zplit/keymaps/via/keymap.c b/keyboards/flxlb/zplit/keymaps/via/keymap.c index 6c5651be4db2..7d6e948fe9db 100644 --- a/keyboards/flxlb/zplit/keymaps/via/keymap.c +++ b/keyboards/flxlb/zplit/keymaps/via/keymap.c @@ -34,34 +34,34 @@ enum custom_layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty */ [_QWERTY] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MUTE, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , - KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LBRC, KC_RBRC, KC_QUOT, KC_MINS + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MUTE, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LBRC, KC_RBRC, KC_QUOT, KC_MINS ), /* Lower */ [_LOWER] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - _______, _______, _______, KC_UP, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,KC_1,KC_2,KC_3, KC_BSLS, _______, - _______, _______, _______, _______, LOWER, _______, _______, KC_0,KC_0, KC_DOT, KC_BSLS,KC_EQL + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, _______, _______, KC_UP, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______, + _______, _______, _______, _______, LOWER, _______, _______, KC_0, KC_0, KC_DOT, KC_BSLS, KC_EQL ), /* Raise */ [_RAISE] = LAYOUT( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, - RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, _______, RGB_TOG, _______, _______, _______, _______, KC_UP, _______, - _______, _______, _______, _______, _______, _______, _______, RAISE, _______, KC_LEFT, KC_DOWN, KC_RGHT + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, + RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD,_______, RGB_TOG, _______, _______, _______, _______, KC_UP, _______, + _______, _______, _______, _______, _______, _______, _______, RAISE, _______, KC_LEFT, KC_DOWN, KC_RGHT ), /* Adjust (Lower + Raise) */ -[_ADJUST] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +[_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/flxlb/zplit/keymaps/via/rules.mk b/keyboards/flxlb/zplit/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/flxlb/zplit/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes From 4b55b7f8522c9dc82684cdff0b95ba89c9a819a3 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 19 Jul 2021 17:06:45 -0700 Subject: [PATCH 003/328] converter/periboard_512: add Configurator layout data (#13600) --- keyboards/converter/periboard_512/info.json | 118 ++++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/keyboards/converter/periboard_512/info.json b/keyboards/converter/periboard_512/info.json index 89e8d75bc46a..0fb1e9539ab2 100644 --- a/keyboards/converter/periboard_512/info.json +++ b/keyboards/converter/periboard_512/info.json @@ -6,5 +6,123 @@ "matrix_pins": { "cols": ["B7", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "E0", "E1", "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7"], "rows": ["B6", "B5", "B4", "B3", "B2", "B1", "B0", "E7"] + }, + "height": 6.333, + "width": 23.5, + "url": "", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0, "h":0.833}, + {"label":"F1", "x":2, "y":0, "h":0.833}, + {"label":"F2", "x":3, "y":0, "h":0.833}, + {"label":"F3", "x":4, "y":0, "h":0.833}, + {"label":"F4", "x":5, "y":0, "h":0.833}, + {"label":"F5", "x":6, "y":0, "h":0.833}, + {"label":"F6", "x":7, "y":0, "h":0.833}, + {"label":"F7", "x":8, "y":0, "h":0.833}, + {"label":"F8", "x":9, "y":0, "h":0.833}, + {"label":"F9", "x":10, "y":0, "h":0.833}, + {"label":"F10", "x":11, "y":0, "h":0.833}, + {"label":"F11", "x":12, "y":0, "h":0.833}, + {"label":"F12", "x":13, "y":0, "h":0.833}, + {"label":"PrtSc", "x":14.25, "y":0, "h":0.833}, + {"label":"Scroll Lock", "x":15.25, "y":0, "h":0.833}, + {"label":"Pause", "x":16.25, "y":0, "h":0.833}, + + {"label":"~", "x":0, "y":1.333}, + {"label":"!", "x":1, "y":1.333}, + {"label":"@", "x":2, "y":1.333}, + {"label":"#", "x":3, "y":1.333}, + {"label":"$", "x":4, "y":1.333}, + {"label":"%", "x":5, "y":1.333}, + {"label":"^", "x":6, "y":1.333}, + {"label":"&", "x":7, "y":1.333}, + {"label":"*", "x":8, "y":1.333}, + {"label":"(", "x":9, "y":1.333}, + {"label":")", "x":10, "y":1.333}, + {"label":"_", "x":11, "y":1.333}, + {"label":"+", "x":12, "y":1.333}, + {"label":"Backspace", "x":13, "y":1.333, "w":2}, + {"label":"Insert", "x":16.25, "y":3, "h":0.833}, + {"label":"Home", "x":15.25, "y":1.333, "h":0.833}, + {"label":"PgUp", "x":16.25, "y":1.333, "h":0.833}, + {"label":"Num Lock", "x":17.5, "y":1.333}, + {"label":"/", "x":18.5, "y":1.333}, + {"label":"*", "x":19.5, "y":1.333}, + {"label":"-", "x":20.5, "y":1.333}, + + {"label":"Tab", "x":0, "y":2.333, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.333}, + {"label":"W", "x":2.5, "y":2.333}, + {"label":"E", "x":3.5, "y":2.333}, + {"label":"R", "x":4.5, "y":2.333}, + {"label":"T", "x":5.5, "y":2.333}, + {"label":"Y", "x":6.5, "y":2.333}, + {"label":"U", "x":7.5, "y":2.333}, + {"label":"I", "x":8.5, "y":2.333}, + {"label":"O", "x":9.5, "y":2.333}, + {"label":"P", "x":10.5, "y":2.333}, + {"label":"{", "x":11.5, "y":2.333}, + {"label":"}", "x":12.5, "y":2.333}, + {"label":"|", "x":13.5, "y":2.333, "w":1.5}, + {"label":"Delete", "x":15.25, "y":3, "h":0.833}, + {"label":"End", "x":15.25, "y":2.167, "h":0.833}, + {"label":"PgDn", "x":16.25, "y":2.167, "h":0.833}, + {"label":"7", "x":17.5, "y":2.333}, + {"label":"8", "x":18.5, "y":2.333}, + {"label":"9", "x":19.5, "y":2.333}, + {"label":"+", "x":20.5, "y":2.333, "h":2}, + + {"label":"Caps Lock", "x":0, "y":3.333, "w":1.75}, + {"label":"A", "x":1.75, "y":3.333}, + {"label":"S", "x":2.75, "y":3.333}, + {"label":"D", "x":3.75, "y":3.333}, + {"label":"F", "x":4.75, "y":3.333}, + {"label":"G", "x":5.75, "y":3.333}, + {"label":"H", "x":6.75, "y":3.333}, + {"label":"J", "x":7.75, "y":3.333}, + {"label":"K", "x":8.75, "y":3.333}, + {"label":"L", "x":9.75, "y":3.333}, + {"label":":", "x":10.75, "y":3.333}, + {"label":"\"", "x":11.75, "y":3.333}, + {"label":"Enter", "x":12.75, "y":3.333, "w":2.25}, + {"label":"4", "x":17.5, "y":3.333}, + {"label":"5", "x":18.5, "y":3.333}, + {"label":"6", "x":19.5, "y":3.333}, + + {"label":"Shift", "x":0, "y":4.333, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.333}, + {"label":"X", "x":3.25, "y":4.333}, + {"label":"C", "x":4.25, "y":4.333}, + {"label":"V", "x":5.25, "y":4.333}, + {"label":"B", "x":6.25, "y":4.333}, + {"label":"N", "x":7.25, "y":4.333}, + {"label":"M", "x":8.25, "y":4.333}, + {"label":"<", "x":9.25, "y":4.333}, + {"label":">", "x":10.25, "y":4.333}, + {"label":"?", "x":11.25, "y":4.333}, + {"label":"Shift", "x":12.25, "y":4.333, "w":2.75}, + {"label":"Up", "x":15.75, "y":3.833, "h":0.833}, + {"label":"1", "x":17.5, "y":4.333}, + {"label":"2", "x":18.5, "y":4.333}, + {"label":"3", "x":19.5, "y":4.333}, + {"label":"Enter", "x":20.5, "y":4.333, "h":2}, + + {"label":"Ctrl", "x":0, "y":5.333, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.333, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.333, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.333, "w":6.25}, + {"label":"Alt", "x":10, "y":5.333, "w":1.25}, + {"label":"GUI", "x":11.25, "y":5.333, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.333, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.333, "w":1.25}, + {"label":"Left", "x":15.25, "y":4.667, "h":0.833}, + {"label":"Down", "x":15.75, "y":5.5, "h":0.833}, + {"label":"Right", "x":16.25, "y":4.667, "h":0.833}, + {"label":"0", "x":17.5, "y":5.333, "w":2}, + {"label":".", "x":19.5, "y":5.333} + ] + } } } From 046429fa87ab26bd131c262e590aa6cd03dd9f75 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 19 Jul 2021 17:26:34 -0700 Subject: [PATCH 004/328] Knobgoblin: rename ortho keymap to default (#13592) Keyboard did not previously have a `default` keymap. --- keyboards/knobgoblin/keymaps/{ortho => default}/keymap.c | 0 keyboards/knobgoblin/keymaps/{ortho => default}/readme.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename keyboards/knobgoblin/keymaps/{ortho => default}/keymap.c (100%) rename keyboards/knobgoblin/keymaps/{ortho => default}/readme.md (100%) diff --git a/keyboards/knobgoblin/keymaps/ortho/keymap.c b/keyboards/knobgoblin/keymaps/default/keymap.c similarity index 100% rename from keyboards/knobgoblin/keymaps/ortho/keymap.c rename to keyboards/knobgoblin/keymaps/default/keymap.c diff --git a/keyboards/knobgoblin/keymaps/ortho/readme.md b/keyboards/knobgoblin/keymaps/default/readme.md similarity index 100% rename from keyboards/knobgoblin/keymaps/ortho/readme.md rename to keyboards/knobgoblin/keymaps/default/readme.md From 7e698c71cd8b9d0cdef6c622cfdd88a13e2a6587 Mon Sep 17 00:00:00 2001 From: Suschman Date: Tue, 20 Jul 2021 02:30:09 +0200 Subject: [PATCH 005/328] Six Pack and ortho_ layout updates (#13587) Co-authored-by: Ryan Co-authored-by: Suschman --- keyboards/40percentclub/5x5/info.json | 2 +- keyboards/40percentclub/6lit/rules.mk | 2 + keyboards/40percentclub/sixpack/config.h | 7 +- keyboards/40percentclub/sixpack/info.json | 2 +- .../sixpack/keymaps/via/keymap.c | 4 -- keyboards/40percentclub/sixpack/rules.mk | 2 + .../holiday/spooky/keymaps/default/keymap.c | 3 +- keyboards/boardsource/holiday/spooky/rules.mk | 2 + .../handwired/stream_cheap/2x3/readme.md | 3 + keyboards/handwired/stream_cheap/2x3/rules.mk | 2 + .../handwired/stream_cheap/2x4/readme.md | 3 + .../handwired/stream_cheap/2x5/readme.md | 3 + keyboards/sixkeyboard/info.json | 2 +- .../sixkeyboard/keymaps/default/keymap.c | 2 +- keyboards/sixkeyboard/keymaps/via/keymap.c | 8 +-- keyboards/sixkeyboard/rules.mk | 3 +- keyboards/sixkeyboard/sixkeyboard.h | 2 +- layouts/community/ortho_1x4/readme.md | 3 + layouts/community/ortho_2x3/layout.json | 2 + layouts/community/ortho_2x3/readme.md | 3 + layouts/community/ortho_2x6/layout.json | 2 + layouts/community/ortho_2x6/readme.md | 3 + layouts/community/ortho_5x5/layout.json | 6 +- .../ortho_2x3/default_ortho_2x3/keymap.c | 15 +++++ layouts/default/ortho_2x3/info.json | 20 ++++++ layouts/default/ortho_2x3/layout.json | 2 + layouts/default/ortho_2x3/readme.md | 3 + .../ortho_2x6/default_ortho_2x6/keymap.c | 15 +++++ layouts/default/ortho_2x6/info.json | 26 +++++++ layouts/default/ortho_2x6/layout.json | 2 + layouts/default/ortho_2x6/readme.md | 3 + .../ortho_5x10/default_ortho_5x10/keymap.c | 24 +++++++ layouts/default/ortho_5x10/info.json | 67 +++++++++++++++++++ layouts/default/ortho_5x10/layout.json | 5 ++ layouts/default/ortho_5x10/readme.md | 3 + layouts/default/ortho_5x5/info.json | 42 ++++++++++++ layouts/default/ortho_5x5/layout.json | 5 ++ layouts/default/ortho_5x5/readme.md | 3 + layouts/default/readme.md | 48 +++++++++++++ 39 files changed, 335 insertions(+), 19 deletions(-) create mode 100644 keyboards/handwired/stream_cheap/2x3/readme.md create mode 100644 keyboards/handwired/stream_cheap/2x4/readme.md create mode 100644 keyboards/handwired/stream_cheap/2x5/readme.md create mode 100644 layouts/community/ortho_1x4/readme.md create mode 100644 layouts/community/ortho_2x3/layout.json create mode 100644 layouts/community/ortho_2x3/readme.md create mode 100644 layouts/community/ortho_2x6/layout.json create mode 100644 layouts/community/ortho_2x6/readme.md create mode 100644 layouts/default/ortho_2x3/default_ortho_2x3/keymap.c create mode 100644 layouts/default/ortho_2x3/info.json create mode 100644 layouts/default/ortho_2x3/layout.json create mode 100644 layouts/default/ortho_2x3/readme.md create mode 100644 layouts/default/ortho_2x6/default_ortho_2x6/keymap.c create mode 100644 layouts/default/ortho_2x6/info.json create mode 100644 layouts/default/ortho_2x6/layout.json create mode 100644 layouts/default/ortho_2x6/readme.md create mode 100644 layouts/default/ortho_5x10/default_ortho_5x10/keymap.c create mode 100644 layouts/default/ortho_5x10/info.json create mode 100644 layouts/default/ortho_5x10/layout.json create mode 100644 layouts/default/ortho_5x10/readme.md create mode 100644 layouts/default/ortho_5x5/info.json create mode 100644 layouts/default/ortho_5x5/layout.json create mode 100644 layouts/default/ortho_5x5/readme.md diff --git a/keyboards/40percentclub/5x5/info.json b/keyboards/40percentclub/5x5/info.json index 1c1df8eda986..1e7bac7a691a 100644 --- a/keyboards/40percentclub/5x5/info.json +++ b/keyboards/40percentclub/5x5/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "40percent.club 4x4", + "keyboard_name": "40percent.club 5x5", "url": "", "maintainer": "qmk", "height": 4, diff --git a/keyboards/40percentclub/6lit/rules.mk b/keyboards/40percentclub/6lit/rules.mk index 8d32d2c3fb7e..7ff281ecc6c8 100644 --- a/keyboards/40percentclub/6lit/rules.mk +++ b/keyboards/40percentclub/6lit/rules.mk @@ -32,3 +32,5 @@ AUDIO_ENABLE = no # Audio output on port C6 # Enable generic behavior for split boards SPLIT_KEYBOARD = yes + +LAYOUTS = ortho_2x3 ortho_2x6 diff --git a/keyboards/40percentclub/sixpack/config.h b/keyboards/40percentclub/sixpack/config.h index db91ca7b80de..2ec676018c92 100644 --- a/keyboards/40percentclub/sixpack/config.h +++ b/keyboards/40percentclub/sixpack/config.h @@ -40,8 +40,6 @@ along with this program. If not, see . * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ -// #define MATRIX_ROW_PINS { B0 } // B0 equivalents the ground pin -// #define MATRIX_COL_PINS { E6, D7, C6, D4 } #define DIRECT_PINS { \ { D4, C6, D7 }, \ { E6, B4, B5 } \ @@ -56,6 +54,11 @@ along with this program. If not, see . #define BACKLIGHT_LEVELS 6 #define BACKLIGHT_PINS { F4, F5 } // Top Row, Bottom Row +/* LED Indicators */ +#define LED_PIN_ON_STATE 0 +#define LED_CAPS_LOCK_PIN B0 // RX Led +#define LED_NUM_LOCK_PIN D5 // TX Led + // #define RGB_DI_PIN B1 // PB1 on expansion connector // #ifdef RGB_DI_PIN // #define RGBLED_NUM 16 diff --git a/keyboards/40percentclub/sixpack/info.json b/keyboards/40percentclub/sixpack/info.json index 3c78e26fbc4b..0d85f092574a 100644 --- a/keyboards/40percentclub/sixpack/info.json +++ b/keyboards/40percentclub/sixpack/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "sixpack", + "keyboard_name": "Six Pack", "url": "https://www.40percent.club/2017/05/six-pack-11.html", "maintainer": "qmk", "width": 3, diff --git a/keyboards/40percentclub/sixpack/keymaps/via/keymap.c b/keyboards/40percentclub/sixpack/keymaps/via/keymap.c index f3268a22abba..e2eaaa1d0a45 100644 --- a/keyboards/40percentclub/sixpack/keymaps/via/keymap.c +++ b/keyboards/40percentclub/sixpack/keymaps/via/keymap.c @@ -33,9 +33,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS), [3] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [4] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS), - [5] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/40percentclub/sixpack/rules.mk b/keyboards/40percentclub/sixpack/rules.mk index 9d7d9a2cf0f5..84e3ea5ea057 100644 --- a/keyboards/40percentclub/sixpack/rules.mk +++ b/keyboards/40percentclub/sixpack/rules.mk @@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_2x3 diff --git a/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c b/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c index b4fcfc1bc19b..63fbb1b94cef 100644 --- a/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c +++ b/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c @@ -24,7 +24,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT_ortho_2x3( KC_F1, KC_F2, KC_F3, - KC_F4, KC_F5,KC_F6 + KC_F4, KC_F5, KC_F6 ), }; - diff --git a/keyboards/boardsource/holiday/spooky/rules.mk b/keyboards/boardsource/holiday/spooky/rules.mk index d23e95512672..2fd07c24159f 100644 --- a/keyboards/boardsource/holiday/spooky/rules.mk +++ b/keyboards/boardsource/holiday/spooky/rules.mk @@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_2x3 diff --git a/keyboards/handwired/stream_cheap/2x3/readme.md b/keyboards/handwired/stream_cheap/2x3/readme.md new file mode 100644 index 000000000000..69ce022f6d8a --- /dev/null +++ b/keyboards/handwired/stream_cheap/2x3/readme.md @@ -0,0 +1,3 @@ +# Stream Cheap + +An ortholinear macropad, 2x3 configuration. diff --git a/keyboards/handwired/stream_cheap/2x3/rules.mk b/keyboards/handwired/stream_cheap/2x3/rules.mk index e4ffb10d0494..2d79fa435290 100644 --- a/keyboards/handwired/stream_cheap/2x3/rules.mk +++ b/keyboards/handwired/stream_cheap/2x3/rules.mk @@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_2x3 diff --git a/keyboards/handwired/stream_cheap/2x4/readme.md b/keyboards/handwired/stream_cheap/2x4/readme.md new file mode 100644 index 000000000000..d15fcaeaf28b --- /dev/null +++ b/keyboards/handwired/stream_cheap/2x4/readme.md @@ -0,0 +1,3 @@ +# Stream Cheap + +An ortholinear macropad, 2x4 configuration. diff --git a/keyboards/handwired/stream_cheap/2x5/readme.md b/keyboards/handwired/stream_cheap/2x5/readme.md new file mode 100644 index 000000000000..99aab61e4be1 --- /dev/null +++ b/keyboards/handwired/stream_cheap/2x5/readme.md @@ -0,0 +1,3 @@ +# Stream Cheap + +An ortholinear macropad, 2x5 configuration. diff --git a/keyboards/sixkeyboard/info.json b/keyboards/sixkeyboard/info.json index 55239fc6cccf..17815afa1b0d 100644 --- a/keyboards/sixkeyboard/info.json +++ b/keyboards/sixkeyboard/info.json @@ -5,7 +5,7 @@ "width": 3, "height": 2, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_2x3": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}] } } diff --git a/keyboards/sixkeyboard/keymaps/default/keymap.c b/keyboards/sixkeyboard/keymaps/default/keymap.c index 3b39892a9319..0c9b519353cf 100644 --- a/keyboards/sixkeyboard/keymaps/default/keymap.c +++ b/keyboards/sixkeyboard/keymaps/default/keymap.c @@ -3,7 +3,7 @@ #include "matrix.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ortho_2x3( KC_A, KC_B, KC_C, \ KC_D, KC_E, KC_F \ ) diff --git a/keyboards/sixkeyboard/keymaps/via/keymap.c b/keyboards/sixkeyboard/keymaps/via/keymap.c index fed341595c39..39282b9b5a50 100644 --- a/keyboards/sixkeyboard/keymaps/via/keymap.c +++ b/keyboards/sixkeyboard/keymaps/via/keymap.c @@ -17,22 +17,22 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ortho_2x3( KC_A, KC_B, KC_C, KC_D, KC_E, KC_F ), - [1] = LAYOUT( + [1] = LAYOUT_ortho_2x3( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT( + [2] = LAYOUT_ortho_2x3( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = LAYOUT( + [3] = LAYOUT_ortho_2x3( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) diff --git a/keyboards/sixkeyboard/rules.mk b/keyboards/sixkeyboard/rules.mk index 889ea2fd10ee..0e0239af0fea 100644 --- a/keyboards/sixkeyboard/rules.mk +++ b/keyboards/sixkeyboard/rules.mk @@ -28,4 +28,5 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID CUSTOM_MATRIX = yes -SRC = matrix.c +SRC += matrix.c +LAYOUTS = ortho_2x3 diff --git a/keyboards/sixkeyboard/sixkeyboard.h b/keyboards/sixkeyboard/sixkeyboard.h index e0eb896ce4dc..353e2a78c8bc 100644 --- a/keyboards/sixkeyboard/sixkeyboard.h +++ b/keyboards/sixkeyboard/sixkeyboard.h @@ -22,7 +22,7 @@ * │ D │ E │ F │ * └───┴───┴───┘ */ -#define LAYOUT( \ +#define LAYOUT_ortho_2x3( \ k00, k01, k02, \ k10, k11, k12 \ ) { \ diff --git a/layouts/community/ortho_1x4/readme.md b/layouts/community/ortho_1x4/readme.md new file mode 100644 index 000000000000..6ef30dd0a694 --- /dev/null +++ b/layouts/community/ortho_1x4/readme.md @@ -0,0 +1,3 @@ +# ortho_1x4 + + LAYOUT_ortho_1x4 diff --git a/layouts/community/ortho_2x3/layout.json b/layouts/community/ortho_2x3/layout.json new file mode 100644 index 000000000000..255792193e7c --- /dev/null +++ b/layouts/community/ortho_2x3/layout.json @@ -0,0 +1,2 @@ +["","",""], +["","",""] diff --git a/layouts/community/ortho_2x3/readme.md b/layouts/community/ortho_2x3/readme.md new file mode 100644 index 000000000000..47ae0f68641c --- /dev/null +++ b/layouts/community/ortho_2x3/readme.md @@ -0,0 +1,3 @@ +# ortho_2x3 + + LAYOUT_ortho_2x3 diff --git a/layouts/community/ortho_2x6/layout.json b/layouts/community/ortho_2x6/layout.json new file mode 100644 index 000000000000..ce609ee590bf --- /dev/null +++ b/layouts/community/ortho_2x6/layout.json @@ -0,0 +1,2 @@ +["","","","","",""], +["","","","","",""] diff --git a/layouts/community/ortho_2x6/readme.md b/layouts/community/ortho_2x6/readme.md new file mode 100644 index 000000000000..5e7c148a7245 --- /dev/null +++ b/layouts/community/ortho_2x6/readme.md @@ -0,0 +1,3 @@ +# ortho_2x6 + + LAYOUT_ortho_2x6 diff --git a/layouts/community/ortho_5x5/layout.json b/layouts/community/ortho_5x5/layout.json index ab4eef8e1bc1..71f77df6edfa 100644 --- a/layouts/community/ortho_5x5/layout.json +++ b/layouts/community/ortho_5x5/layout.json @@ -1 +1,5 @@ -["","","","",""],["","","","",""],["","","","",""],["","","","",""],["","","","",""] +["","","","",""], +["","","","",""], +["","","","",""], +["","","","",""], +["","","","",""] diff --git a/layouts/default/ortho_2x3/default_ortho_2x3/keymap.c b/layouts/default/ortho_2x3/default_ortho_2x3/keymap.c new file mode 100644 index 000000000000..a38146d02034 --- /dev/null +++ b/layouts/default/ortho_2x3/default_ortho_2x3/keymap.c @@ -0,0 +1,15 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ A │ B │ C │ + * ├───┼───┼───┤ + * │ D │ E │ F │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_2x3( + KC_A, KC_B, KC_C, + KC_D, KC_E, KC_F + ) +}; diff --git a/layouts/default/ortho_2x3/info.json b/layouts/default/ortho_2x3/info.json new file mode 100644 index 000000000000..d39e5cc8d486 --- /dev/null +++ b/layouts/default/ortho_2x3/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "2x3 ortholinear layout", + "url": "", + "maintainer": "qmk", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT_ortho_2x3": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1} + ] + } + } +} diff --git a/layouts/default/ortho_2x3/layout.json b/layouts/default/ortho_2x3/layout.json new file mode 100644 index 000000000000..255792193e7c --- /dev/null +++ b/layouts/default/ortho_2x3/layout.json @@ -0,0 +1,2 @@ +["","",""], +["","",""] diff --git a/layouts/default/ortho_2x3/readme.md b/layouts/default/ortho_2x3/readme.md new file mode 100644 index 000000000000..47ae0f68641c --- /dev/null +++ b/layouts/default/ortho_2x3/readme.md @@ -0,0 +1,3 @@ +# ortho_2x3 + + LAYOUT_ortho_2x3 diff --git a/layouts/default/ortho_2x6/default_ortho_2x6/keymap.c b/layouts/default/ortho_2x6/default_ortho_2x6/keymap.c new file mode 100644 index 000000000000..1c8a6b7ef9ca --- /dev/null +++ b/layouts/default/ortho_2x6/default_ortho_2x6/keymap.c @@ -0,0 +1,15 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┐ + * │ A │ B │ C │ D │ E │ F │ + * ├───┼───┼───┼───┼───┼───┤ + * │ G │ H │ I │ J │ K │ L │ + * └───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_ortho_2x6( + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, + KC_G, KC_H, KC_I, KC_J, KC_K, KC_L + ) +}; diff --git a/layouts/default/ortho_2x6/info.json b/layouts/default/ortho_2x6/info.json new file mode 100644 index 000000000000..5a421ed9036b --- /dev/null +++ b/layouts/default/ortho_2x6/info.json @@ -0,0 +1,26 @@ +{ + "keyboard_name": "2x6 ortholinear layout", + "url": "", + "maintainer": "qmk", + "width": 6, + "height": 2, + "layouts": { + "LAYOUT_ortho_2x6": { + "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":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1} + ] + } + } +} diff --git a/layouts/default/ortho_2x6/layout.json b/layouts/default/ortho_2x6/layout.json new file mode 100644 index 000000000000..ce609ee590bf --- /dev/null +++ b/layouts/default/ortho_2x6/layout.json @@ -0,0 +1,2 @@ +["","","","","",""], +["","","","","",""] diff --git a/layouts/default/ortho_2x6/readme.md b/layouts/default/ortho_2x6/readme.md new file mode 100644 index 000000000000..5e7c148a7245 --- /dev/null +++ b/layouts/default/ortho_2x6/readme.md @@ -0,0 +1,3 @@ +# ortho_2x6 + + LAYOUT_ortho_2x6 diff --git a/layouts/default/ortho_5x10/default_ortho_5x10/keymap.c b/layouts/default/ortho_5x10/default_ortho_5x10/keymap.c new file mode 100644 index 000000000000..1f935473e2b0 --- /dev/null +++ b/layouts/default/ortho_5x10/default_ortho_5x10/keymap.c @@ -0,0 +1,24 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_ortho_5x10( + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J + ) +}; diff --git a/layouts/default/ortho_5x10/info.json b/layouts/default/ortho_5x10/info.json new file mode 100644 index 000000000000..bd79e6ad9129 --- /dev/null +++ b/layouts/default/ortho_5x10/info.json @@ -0,0 +1,67 @@ +{ + "keyboard_name": "5x10 ortholinear layout", + "url": "", + "maintainer": "qmk", + "width": 10, + "height": 5, + "layouts": { + "LAYOUT_ortho_5x10": { + "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":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":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":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":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + ] + } + } +} diff --git a/layouts/default/ortho_5x10/layout.json b/layouts/default/ortho_5x10/layout.json new file mode 100644 index 000000000000..79dde3e7421f --- /dev/null +++ b/layouts/default/ortho_5x10/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","",""], +["","","","","","","","","",""], +["","","","","","","","","",""], +["","","","","","","","","",""], +["","","","","","","","","",""] diff --git a/layouts/default/ortho_5x10/readme.md b/layouts/default/ortho_5x10/readme.md new file mode 100644 index 000000000000..5c94f8eca8b5 --- /dev/null +++ b/layouts/default/ortho_5x10/readme.md @@ -0,0 +1,3 @@ +# ortho_5x10 + + LAYOUT_ortho_5x10 diff --git a/layouts/default/ortho_5x5/info.json b/layouts/default/ortho_5x5/info.json new file mode 100644 index 000000000000..ecc41d9437d0 --- /dev/null +++ b/layouts/default/ortho_5x5/info.json @@ -0,0 +1,42 @@ +{ + "keyboard_name": "5x5 ortholinear layout", + "url": "", + "maintainer": "qmk", + "width": 5, + "height": 5, + "layouts": { + "LAYOUT_ortho_5x5": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4} + ] + } + } +} diff --git a/layouts/default/ortho_5x5/layout.json b/layouts/default/ortho_5x5/layout.json new file mode 100644 index 000000000000..71f77df6edfa --- /dev/null +++ b/layouts/default/ortho_5x5/layout.json @@ -0,0 +1,5 @@ +["","","","",""], +["","","","",""], +["","","","",""], +["","","","",""], +["","","","",""] diff --git a/layouts/default/ortho_5x5/readme.md b/layouts/default/ortho_5x5/readme.md new file mode 100644 index 000000000000..3dd75765d19e --- /dev/null +++ b/layouts/default/ortho_5x5/readme.md @@ -0,0 +1,3 @@ +# ortho_5x5 + + LAYOUT_ortho_5x5 \ No newline at end of file diff --git a/layouts/default/readme.md b/layouts/default/readme.md index eca77e693061..1acc16d94f89 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -660,6 +660,24 @@ LAYOUT_numpad_6x4 ### Ortholinear Layouts +``` +LAYOUT_ortho_2x3 +┌───┬───┬───┐ +│ │ │ │ +├───┼───┼───┤ +│ │ │ │ +└───┴───┴───┘ +``` + +``` +LAYOUT_ortho_2x6 +┌───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ +├───┼───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ +└───┴───┴───┴───┴───┴───┘ +``` + ``` LAYOUT_ortho_3x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ @@ -710,6 +728,36 @@ LAYOUT_ortho_4x4 └───┴───┴───┴───┘ ``` +``` +LAYOUT_ortho_5x5 +┌───┬───┬───┬───┬───┐ +│ │ │ │ │ │ +├───┼───┼───┼───┼───┤ +│ │ │ │ │ │ +├───┼───┼───┼───┼───┤ +│ │ │ │ │ │ +├───┼───┼───┼───┼───┤ +│ │ │ │ │ │ +├───┼───┼───┼───┼───┤ +│ │ │ │ │ │ +└───┴───┴───┴───┴───┘ +``` + +``` +LAYOUT_ortho_5x10 +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ +└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ +``` + ``` LAYOUT_ortho_5x12 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ From 8bc8eadaf97e2b9d18d814074027e204abc0e335 Mon Sep 17 00:00:00 2001 From: Giorgi Chavchanidze <76832811+gkbd@users.noreply.github.com> Date: Tue, 20 Jul 2021 02:32:20 +0200 Subject: [PATCH 006/328] [Keymap] Orthon keymap for idobo (#13584) Co-authored-by: Giorgi Chavchanidze --- keyboards/idobo/keymaps/gkbd_orthon/config.h | 20 +++++ keyboards/idobo/keymaps/gkbd_orthon/keymap.c | 78 +++++++++++++++++++ keyboards/idobo/keymaps/gkbd_orthon/readme.md | 11 +++ 3 files changed, 109 insertions(+) create mode 100644 keyboards/idobo/keymaps/gkbd_orthon/config.h create mode 100644 keyboards/idobo/keymaps/gkbd_orthon/keymap.c create mode 100644 keyboards/idobo/keymaps/gkbd_orthon/readme.md diff --git a/keyboards/idobo/keymaps/gkbd_orthon/config.h b/keyboards/idobo/keymaps/gkbd_orthon/config.h new file mode 100644 index 000000000000..e8fc39faadd9 --- /dev/null +++ b/keyboards/idobo/keymaps/gkbd_orthon/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Giorgi Chavchanidze + * + * 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_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/idobo/keymaps/gkbd_orthon/keymap.c b/keyboards/idobo/keymaps/gkbd_orthon/keymap.c new file mode 100644 index 000000000000..a603eae65797 --- /dev/null +++ b/keyboards/idobo/keymaps/gkbd_orthon/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2021 Giorgi Chavchanidze + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#define MIN_PROXIMITY 8000 + +uint16_t predecessor_key = KC_NO; +uint16_t adaptive_key = KC_NO; + +static uint16_t vowel_proximity; + +enum custom_keycodes { + ON = SAFE_RANGE, +}; + +bool promote_consonants(void) { + return predecessor_key == KC_O && timer_elapsed(vowel_proximity) < MIN_PROXIMITY && !(get_mods() & ~MOD_MASK_SHIFT & MOD_MASK_CAG); +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + if (keycode == ON) { + + if (record->event.pressed) { + + keycode = promote_consonants()?KC_N:KC_O; + register_code(keycode); + adaptive_key = keycode; + + } + else { + unregister_code(adaptive_key); + } + } + + if (!IS_MOD(keycode) && record->event.pressed) { + if(keycode == KC_E || keycode == KC_A || keycode == KC_O || keycode == KC_I || keycode == KC_U) { + predecessor_key = KC_O; + vowel_proximity = timer_read(); + } + else { + predecessor_key = keycode; + } + } + + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x15(/* Base */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, KC_APP, KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_QUOT, KC_Z, KC_Y, KC_U, KC_F, KC_W, KC_LCBR, KC_PSCR, KC_RCBR, KC_G, KC_M, KC_P, KC_N, KC_J, KC_MINS, + KC_ESC, KC_H, KC_I, KC_E, KC_A, KC_C, KC_LPRN, MO(1), KC_RPRN, KC_L, KC_R, KC_T, KC_S, KC_D, KC_ENT, + KC_TAB, KC_SCLN, KC_X, KC_O, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI, KC_BSLS, KC_K, KC_V, KC_B, RSFT_T(KC_Q), KC_UP, KC_INS, + KC_CAPS, KC_HOME, KC_END, KC_DEL, KC_BSPC, ON, KC_LSFT, KC_RCTL, KC_RALT, KC_SPC, KC_PGDN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_5x15(/* Function keys */ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_SLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_TRNS, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG + ) +}; diff --git a/keyboards/idobo/keymaps/gkbd_orthon/readme.md b/keyboards/idobo/keymaps/gkbd_orthon/readme.md new file mode 100644 index 000000000000..36479ff9ba14 --- /dev/null +++ b/keyboards/idobo/keymaps/gkbd_orthon/readme.md @@ -0,0 +1,11 @@ +![Orthon layout](https://lykt.xyz/rtsd/orthon.svg) + +# Orthon layout + +Ortholinear carpalx optimized layout with adaptive thumb key. + +Adaptive key is + * **n** after **eaoiu** vowels + * **o** otherwise + +Some documentation and resources (carpalx report, json configuration) are available at [https://lykt.xyz/rtsd/#orthon](https://lykt.xyz/rtsd/#orthon) From 44a8ad265c69f4f2f04a69410fcdf56fd2f356dc Mon Sep 17 00:00:00 2001 From: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Tue, 20 Jul 2021 08:52:00 +0800 Subject: [PATCH 007/328] [Keyboard] Repaired melgeek/mj63/ RGB lamp driver problem (#13579) --- keyboards/melgeek/mj63/rev1/rev1.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/melgeek/mj63/rev1/rev1.c b/keyboards/melgeek/mj63/rev1/rev1.c index e9f75739c6b0..34ff28d25ff2 100644 --- a/keyboards/melgeek/mj63/rev1/rev1.c +++ b/keyboards/melgeek/mj63/rev1/rev1.c @@ -93,19 +93,19 @@ led_config_t g_led_config = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, /* R2 */ - { 53, NO_LED, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, /* R3 */ + { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED, 43, 42, 41 }, /* R3 */ { 61, 60, 59, NO_LED, 64, 62, 63, NO_LED, NO_LED, 58, 57, 56, 55, 54 }, /* R4 */ }, { {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, + {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, }, { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, } }; From 10905a6500ceb380795ad47e7391205f5e06676e Mon Sep 17 00:00:00 2001 From: Daegara <36287458+Daegara@users.noreply.github.com> Date: Tue, 20 Jul 2021 01:52:19 +0100 Subject: [PATCH 008/328] [Keyboard] CU65 layout update (#13589) --- keyboards/capsunlocked/cu65/cu65.h | 14 ++++ keyboards/capsunlocked/cu65/info.json | 77 +++++++++++++++++++ .../cu65/keymaps/iso_split_bs/keymap.c | 61 +++++++++++++++ .../cu65/keymaps/iso_split_bs/readme.md | 1 + keyboards/capsunlocked/cu65/rules.mk | 2 +- 5 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 keyboards/capsunlocked/cu65/keymaps/iso_split_bs/keymap.c create mode 100644 keyboards/capsunlocked/cu65/keymaps/iso_split_bs/readme.md diff --git a/keyboards/capsunlocked/cu65/cu65.h b/keyboards/capsunlocked/cu65/cu65.h index dafaba3322b6..78bed765c4dc 100644 --- a/keyboards/capsunlocked/cu65/cu65.h +++ b/keyboards/capsunlocked/cu65/cu65.h @@ -65,3 +65,17 @@ along with this program. If not, see . { K300, K301, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \ { K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 } \ } + +#define LAYOUT_65_iso_blocker_split_bs( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K301, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \ + K400, K401, K402, K407, K410, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, KC_NO,K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO,K115 }, \ + { K200, KC_NO,K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, K301, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \ + { K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 } \ +} diff --git a/keyboards/capsunlocked/cu65/info.json b/keyboards/capsunlocked/cu65/info.json index 4f8f08a2f5fc..065367836cee 100644 --- a/keyboards/capsunlocked/cu65/info.json +++ b/keyboards/capsunlocked/cu65/info.json @@ -233,6 +233,83 @@ {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "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}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Delete", "x":14, "y":0}, + {"label":"Insert", "x":15, "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":"Home", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgUp", "x":15, "y":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":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "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":"Fn", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] } } } diff --git a/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/keymap.c b/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/keymap.c new file mode 100644 index 000000000000..2de0de76b48e --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/keymap.c @@ -0,0 +1,61 @@ +/* +Copyright 2020 CapsUnlocked + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_iso_blocker_split_bs( + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Del│Ins│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │Hom│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │Pg+│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │Pg-│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │Ctrl│LGUI│LAlt│ Space │RAlt│ L1 │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + 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_DEL, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_iso_blocker_split_bs( + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │RST│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/readme.md b/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/readme.md new file mode 100644 index 000000000000..5ec6b24d12b7 --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/readme.md @@ -0,0 +1 @@ +# A 69-key variant of the ISO keymap for CU65 (w/ split Backspace) diff --git a/keyboards/capsunlocked/cu65/rules.mk b/keyboards/capsunlocked/cu65/rules.mk index 520df45ab1e1..afcef415ed35 100644 --- a/keyboards/capsunlocked/cu65/rules.mk +++ b/keyboards/capsunlocked/cu65/rules.mk @@ -21,4 +21,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output -LAYOUTS = 65_ansi_blocker 65_iso_blocker +LAYOUTS = 65_ansi_blocker 65_iso_blocker 65_iso_blocker_split_bs From 5ee5280fa1e1c73a283f1939b1abe898dfac0300 Mon Sep 17 00:00:00 2001 From: X-Bows Tech <41098278+XBowsTech@users.noreply.github.com> Date: Tue, 20 Jul 2021 09:28:50 +0800 Subject: [PATCH 009/328] [Keyboard] Update the XBows/Knight keyboard (#13541) Co-authored-by: Ryan --- keyboards/xbows/knight/config.h | 77 ++++----- keyboards/xbows/knight/info.json | 40 ++--- .../xbows/knight/keymaps/default/config.h | 43 ++++++ .../xbows/knight/keymaps/default/keymap.c | 55 +++++-- keyboards/xbows/knight/keymaps/via/config.h | 64 ++++++++ keyboards/xbows/knight/keymaps/via/keymap.c | 63 ++++++++ keyboards/xbows/knight/keymaps/via/rules.mk | 1 + keyboards/xbows/knight/knight.c | 146 +++++++++++++++++- keyboards/xbows/knight/knight.h | 52 +++---- keyboards/xbows/knight/readme.md | 26 +++- keyboards/xbows/knight/rules.mk | 26 ++-- keyboards/xbows/knight_plus/info.json | 4 +- keyboards/xbows/knight_plus/rules.mk | 3 +- keyboards/xbows/numpad/info.json | 6 +- 14 files changed, 473 insertions(+), 133 deletions(-) create mode 100644 keyboards/xbows/knight/keymaps/default/config.h create mode 100644 keyboards/xbows/knight/keymaps/via/config.h create mode 100644 keyboards/xbows/knight/keymaps/via/keymap.c create mode 100644 keyboards/xbows/knight/keymaps/via/rules.mk diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h index fbe150439834..540e29d4dfbe 100644 --- a/keyboards/xbows/knight/config.h +++ b/keyboards/xbows/knight/config.h @@ -1,44 +1,51 @@ +/* Copyright 2021 Shulin Huang + * + * 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 VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1225 -#define DEVICE_VER 0x0001 -#define MANUFACTURER X-BOWS -#define PRODUCT KNIGHT -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 12 -#define MATRIX_COLS 15 +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1225 +#define DEVICE_VER 0x0001 +#define MANUFACTURER X-BOWS +#define PRODUCT KNIGHT -// wiring of each half -#define MATRIX_ROW_PINS { D2, E6, E2, F7, F6, F5 } -#define MATRIX_COL_PINS { B0, B1, B2, B3, F4, F1, C6, B6, B5, B4, D7, D6, D4, D5, D3} -/* COL2ROW or ROW2COL */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 +#define MATRIX_ROW_PINS { F7, F6, F5, F4, F1, F0 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6 } #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST +#define DEBOUNCE 3 -#define LED_NUM_LOCK_PIN D1 -#define LED_CAPS_LOCK_PIN C7 -#define LED_PIN_ON_STATE 0 +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_LED_PROCESS_LIMIT 18 +# define RGB_MATRIX_LED_FLUSH_LIMIT 16 +# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 +# define RGB_MATRIX_CENTER { 92, 43 } -/* number of backlight levels */ -// #define BACKLIGHT_LEVELS 3 -#define BACKLIGHT_PIN B7 -#ifdef BACKLIGHT_PIN -#define BACKLIGHT_BREATHING -#define BACKLIGHT_LEVELS 3 +# define DRIVER_ADDR_1 0b1110100 +# define DRIVER_ADDR_2 0b1110110 +# define DRIVER_ADDR_3 0b1110101 +# define DRIVER_COUNT 3 +# define DRIVER_1_LED_TOTAL 36 +# define DRIVER_2_LED_TOTAL 35 +# define DRIVER_3_LED_TOTAL 15 +# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) #endif -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* serial.c configuration for split keyboard */ -#define SOFT_SERIAL_PIN D0 -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define SPLIT_HAND_PIN F0 -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - diff --git a/keyboards/xbows/knight/info.json b/keyboards/xbows/knight/info.json index 63ff8d293eac..439b1741ca7d 100644 --- a/keyboards/xbows/knight/info.json +++ b/keyboards/xbows/knight/info.json @@ -1,8 +1,8 @@ { - "keyboard_name": "knight", + "keyboard_name": "KNIGHT", "url": "", - "maintainer": "xbows", - "width": 23, + "maintainer": "xbows-qmk", + "width": 18, "height": 6.5, "layouts": { "LAYOUT": { @@ -22,10 +22,7 @@ {"label":"F12", "x":12.75, "y":0}, {"label":"Delete", "x":14, "y":0, "w":2}, {"label":"Print Screen", "x":16, "y":0, "w":2}, - {"label":"Esc", "x":19, "y":0}, - {"label":"Tab", "x":20, "y":0}, - {"label":"Backspace", "x":21, "y":0}, - {"label":"Fn", "x":22, "y":0}, + {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, @@ -40,10 +37,7 @@ {"label":"_", "x":14, "y":1.5}, {"label":"+", "x":15, "y":1.5}, {"label":"Backspace", "x":16, "y":1.5, "w":2}, - {"label":"Num Lock", "x":19, "y":1.5}, - {"label":"/", "x":20, "y":1.5}, - {"label":"*", "x":21, "y":1.5}, - {"label":"-", "x":22, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5}, {"label":"Q", "x":1, "y":2.5}, {"label":"W", "x":2, "y":2.5}, @@ -59,17 +53,14 @@ {"label":"}", "x":15, "y":2.5}, {"label":"|", "x":16, "y":2.5}, {"label":"Page Up", "x":17, "y":2.5}, - {"label":"7", "x":19, "y":2.5}, - {"label":"8", "x":20, "y":2.5}, - {"label":"9", "x":21, "y":2.5}, - {"label":"+", "x":22, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5}, {"label":"A", "x":1, "y":3.5}, {"label":"S", "x":2, "y":3.5}, {"label":"D", "x":3, "y":3.5}, {"label":"F", "x":4, "y":3.5}, {"label":"G", "x":5, "y":3.5}, - {"label":"Backspace", "x":6, "y":3.5, "w":3}, + {"label":"Backspace", "x":6.75, "y":3.5, "w":1.5}, {"label":"H", "x":9, "y":3.5}, {"label":"J", "x":10, "y":3.5}, {"label":"K", "x":11, "y":3.5}, @@ -78,17 +69,14 @@ {"label":"\"", "x":14, "y":3.5}, {"label":"Enter", "x":15, "y":3.5, "w":2}, {"label":"Page Down", "x":17, "y":3.5}, - {"label":"4", "x":19, "y":3.5}, - {"label":"5", "x":20, "y":3.5}, - {"label":"6", "x":21, "y":3.5}, - {"label":"+", "x":22, "y":3.5}, + {"label":"Shift", "x":0, "y":4.5}, {"label":"Z", "x":1, "y":4.5}, {"label":"X", "x":2, "y":4.5}, {"label":"C", "x":3, "y":4.5}, {"label":"V", "x":4, "y":4.5}, {"label":"B", "x":5, "y":4.5}, - {"label":"Enter", "x":6, "y":4.5, "w":3}, + {"label":"Enter", "x":6.5, "y":4.5, "w":2}, {"label":"N", "x":9, "y":4.5}, {"label":"M", "x":10, "y":4.5}, {"label":"<", "x":11, "y":4.5}, @@ -96,10 +84,7 @@ {"label":"?", "x":13, "y":4.5}, {"label":"Shift", "x":14, "y":4.5}, {"label":"Up", "x":16, "y":4.5}, - {"label":"1", "x":19, "y":4.5}, - {"label":"2", "x":20, "y":4.5}, - {"label":"3", "x":21, "y":4.5}, - {"label":"Enter", "x":22, "y":4.5, "h":2}, + {"label":"Ctrl", "x":0, "y":5.5}, {"label":"Win", "x":1, "y":5.5}, {"label":"Alt", "x":2, "y":5.5, "w":2}, @@ -112,9 +97,8 @@ {"label":"Ctrl", "x":14, "y":5.5}, {"label":"Left", "x":15, "y":5.5}, {"label":"Down", "x":16, "y":5.5}, - {"label":"Right", "x":17, "y":5.5}, - {"label":"0", "x":19, "y":5.5, "w":2}, - {"label":".", "x":21, "y":5.5} + {"label":"Right", "x":17, "y":5.5} + ] } } diff --git a/keyboards/xbows/knight/keymaps/default/config.h b/keyboards/xbows/knight/keymaps/default/config.h new file mode 100644 index 000000000000..8e1b68f97f2b --- /dev/null +++ b/keyboards/xbows/knight/keymaps/default/config.h @@ -0,0 +1,43 @@ +/* Copyright 2021 Shulin Huang + * + * 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 + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set +# define DISABLE_RGB_MATRIX_SOLID_COLOR // Static single hue, no speed support +# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes +# define DISABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAT // Single hue spinning spiral fades saturation +# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard + +# define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +# define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! + +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +//# define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +# define DISABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +//# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out + +#endif diff --git a/keyboards/xbows/knight/keymaps/default/keymap.c b/keyboards/xbows/knight/keymaps/default/keymap.c index c7db8f3ca912..bde212f105c9 100644 --- a/keyboards/xbows/knight/keymaps/default/keymap.c +++ b/keyboards/xbows/knight/keymaps/default/keymap.c @@ -1,18 +1,49 @@ +/* Copyright 2021 Shulin Huang + * + * 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] = { + /* Keymap VANILLA: (Base Layer) Default Layer + * + * |---------------------------------------------------------------------------------------------------------------------------------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | Prtsc | + * |---------------------------------------------------------------------------------------------------------------------------------| + * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | + * |---------------------------------------------------------------------------------------------------------------------------------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | PgUp | + * |---------------------------------------------------------------------------------------------------------------------------------| + * | Ctl | A | S | D | F | G | Bksp | H | J | K | L | ; | '" | Enter | PgDn | + * |---------------------------------------------------------------------------------------------------------------------------------| + * |Shift| Z | X | C | V | B | Enter | N | M | , | . | /? | Shift| | Up | + * |---------------------------------------------------------------------------------------------------------------------------------| + * |Ctrl | GUI | Alter | Space | Ctrl | Shift | Space | Alter | FN | Ctrl | Lft | Dn | Rig | + * |---------------------------------------------------------------------------------------------------------------------------------| + */ [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, KC_ESC , KC_TAB, KC_BSPC, MO(1), - 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_NLCK, KC_PSLS, KC_PAST, KC_EQL, - 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_P7, KC_P8, KC_P9, KC_PMNS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_BSPC,KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT,KC_SPC, KC_LCTL, KC_LSFT,KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_BSPC, 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_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LCTL, KC_LSFT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, RESET, KC_TAB, KC_BSPC,KC_TRNS, - 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_NLCK,KC_PSLS,KC_PAST,KC_EQL, - 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_P7, KC_P8, KC_P9, KC_PMNS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, BL_STEP,KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, RESET, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_ENT, - KC_LCTL, KC_LGUI, KC_SPC,KC_LALT, KC_LCTL, KC_LSFT,KC_SPC, KC_RALT, KC_TRNS,KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_0, KC_PDOT) + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EEP_RST, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NLCK, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, + KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xbows/knight/keymaps/via/config.h b/keyboards/xbows/knight/keymaps/via/config.h new file mode 100644 index 000000000000..4fafee0a94c2 --- /dev/null +++ b/keyboards/xbows/knight/keymaps/via/config.h @@ -0,0 +1,64 @@ +/* Copyright 2021 Shulin Huang + * + * 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 + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set +# define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue +# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes +# define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes +//# define DISABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +# define DISABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +//# define DISABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +//# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +//# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right +# define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +# define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +//# define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard +# define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue +# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +//# define DISABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time, then shifts back +# define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left +//# define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right + +# define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +# define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! + +//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out +//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +//# define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +# define DISABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +//# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out + + +#endif diff --git a/keyboards/xbows/knight/keymaps/via/keymap.c b/keyboards/xbows/knight/keymaps/via/keymap.c new file mode 100644 index 000000000000..dabbc6c9b3e6 --- /dev/null +++ b/keyboards/xbows/knight/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2021 Shulin Huang + * + * 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] = { + /* Keymap VANILLA: (Base Layer) Default Layer + * + * |---------------------------------------------------------------------------------------------------------------------------------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | Prtsc | + * |---------------------------------------------------------------------------------------------------------------------------------| + * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | + * |---------------------------------------------------------------------------------------------------------------------------------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | PgUp | + * |---------------------------------------------------------------------------------------------------------------------------------| + * | Ctl | A | S | D | F | G | Bksp | H | J | K | L | ; | '" | Enter | PgDn | + * |---------------------------------------------------------------------------------------------------------------------------------| + * |Shift| Z | X | C | V | B | Enter | N | M | , | . | /? | Shift| | Up | + * |---------------------------------------------------------------------------------------------------------------------------------| + * |Ctrl | GUI | Alter | Space | Ctrl | Shift | Space | Alter | FN | Ctrl | Lft | Dn | Rig | + * |---------------------------------------------------------------------------------------------------------------------------------| + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_BSPC, 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_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LCTL, KC_LSFT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EEP_RST, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NLCK, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, + KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/xbows/knight/keymaps/via/rules.mk b/keyboards/xbows/knight/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/xbows/knight/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xbows/knight/knight.c b/keyboards/xbows/knight/knight.c index cb79d9d584df..1a1aebf18f10 100644 --- a/keyboards/xbows/knight/knight.c +++ b/keyboards/xbows/knight/knight.c @@ -1 +1,145 @@ -#include "knight.h" +/* Copyright 2021 Shulin Huang + * + * 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 "knight.h" + #ifdef RGB_MATRIX_ENABLE + const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + + {0, C1_3, C2_3, C3_3}, // L01 + {0, C1_4, C2_4, C3_4}, // L02 + {0, C1_5, C2_5, C3_5}, // L03 + {0, C1_6, C2_6, C3_6}, // L04 + {0, C1_7, C2_7, C3_7}, // L05 + {0, C1_8, C2_8, C3_8}, // L06 + {1, C1_3, C2_3, C3_3}, // L07 + {1, C1_4, C2_4, C3_4}, // L08 + {1, C1_5, C2_5, C3_5}, // L09 + {1, C1_6, C2_6, C3_6}, // L10 + {1, C1_7, C2_7, C3_7}, // L11 + {1, C1_8, C2_8, C3_8}, // L12 + {2, C1_3, C2_3, C3_3}, // L13 + {2, C1_4, C2_4, C3_4}, // L14 + {2, C1_5, C2_5, C3_5}, // L15 + + {0, C6_1, C5_1, C4_1}, // L16 + {0, C6_2, C5_2, C4_2}, // L17 + {0, C6_3, C5_3, C4_3}, // L18 + {0, C6_6, C5_6, C4_6}, // L19 + {0, C6_7, C5_7, C4_7}, // L20 + {0, C6_8, C5_8, C4_8}, // L21 + {1, C6_2, C5_2, C4_2}, // L22 + {1, C6_3, C5_3, C4_3}, // L23 + {1, C6_6, C5_6, C4_6}, // L24 + {1, C6_7, C5_7, C4_7}, // L25 + {1, C6_8, C5_8, C4_8}, // L26 + {2, C6_1, C5_1, C4_1}, // L27 + {2, C6_2, C5_2, C4_2}, // L28 + {2, C6_3, C5_3, C4_3}, // L29 + + {0, C9_1, C8_1, C7_1}, // L30 + {0, C9_2, C8_2, C7_2}, // L31 + {0, C9_3, C8_3, C7_3}, // L32 + {0, C9_4, C8_4, C7_4}, // L33 + {0, C9_5, C8_5, C7_5}, // L34 + {0, C9_6, C8_6, C7_6}, // L35 + {2, C6_8, C5_8, C4_8}, // L44 + {1, C9_1, C8_1, C7_1}, // L36 + {1, C9_2, C8_2, C7_2}, // L37 + {1, C9_3, C8_3, C7_3}, // L38 + {1, C9_4, C8_4, C7_4}, // L39 + {1, C9_5, C8_5, C7_5}, // L40 + {1, C9_6, C8_6, C7_6}, // L41 + {2, C6_6, C5_6, C4_6}, // L42 + {2, C6_7, C5_7, C4_7}, // L43 + + + {0, C1_11, C2_11, C3_11}, // L45 + {0, C1_12, C2_12, C3_12}, // L46 + {0, C1_13, C2_13, C3_13}, // L47 + {0, C1_14, C2_14, C3_14}, // L48 + {0, C1_15, C2_15, C3_15}, // L49 + {0, C1_16, C2_16, C3_16}, // L50 + {1, C9_9, C8_9, C7_9}, // L51 + {1, C1_11, C2_11, C3_11}, // L52 + {1, C1_12, C2_12, C3_12}, // L53 + {1, C1_13, C2_13, C3_13}, // L54 + {1, C1_14, C2_14, C3_14}, // L55 + {1, C1_15, C2_15, C3_15}, // L56 + {1, C1_16, C2_16, C3_16}, // L57 + {2, C9_4, C8_4, C7_4}, // L58 + {2, C9_5, C8_5, C7_5}, // L59 + + {0, C6_9, C5_9, C4_9}, // L60 + {0, C6_10, C5_10, C4_10}, // L61 + {0, C6_11, C5_11, C4_11}, // L62 + {0, C6_14, C5_14, C4_14}, // L63 + {0, C6_15, C5_15, C4_15}, // L64 + {0, C6_16, C5_16, C4_16}, // L65 + {1, C9_10, C8_10, C7_10}, // L66 + {1, C6_9, C5_9, C4_9}, // L67 + {1, C6_10, C5_10, C4_10}, // L68 + {1, C6_11, C5_11, C4_11}, // L69 + {1, C6_14, C5_14, C4_14}, // L70 + {1, C6_15, C5_15, C4_15}, // L71 + {1, C6_16, C5_16, C4_16}, // L72 + {2, C9_6, C8_6, C7_6}, // L73 + + {0, C9_9, C8_9, C7_9}, // L74 + {0, C9_10, C8_10, C7_10}, // L75 + {0, C9_11, C8_11, C7_11}, // L76 + {0, C9_12, C8_12, C7_12}, // L77 + {0, C9_13, C8_13, C7_13}, // L78 + {0, C9_14, C8_14, C7_14}, // L79 + {1, C9_11, C8_11, C7_11}, // L80 + {1, C9_12, C8_12, C7_12}, // L81 + {1, C9_13, C8_13, C7_13}, // L82 + {1, C9_14, C8_14, C7_14}, // L83 + {2, C1_6, C2_6, C3_6}, // L84 + {2, C1_7, C2_7, C3_7}, // L85 + {2, C1_8, C2_8, C3_8}, // L86 + }; + + led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, NO_LED, 21, 22, 23, 24, 25, 26, 27, 28 }, + { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 }, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, + { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, NO_LED }, + { 73, 74, 75, NO_LED, 76, 77, 78, 79, NO_LED, 80, 81, 82, 83, 84, 85 } + }, { + {0,0}, {16,0}, {30,0}, {43,0}, {56,0}, {72,0}, {85,0}, {99,0}, {112,0}, {128,0}, {141,0}, {154,0}, {167,0}, {190,0}, {216,0}, + {0,13}, {16,13}, {32,12}, {49,14}, {66,16}, {82,20}, {102,20}, {118,16}, {134,14}, {150,12}, {167,13}, {184,13}, {197,13}, {216,13}, + {0,26}, {15,26}, {31,23}, {47,24}, {63,28}, {78,30}, {224,26}, {105,30}, {120,28}, {136,24}, {152,23}, {168,26}, {184,26}, {197,26}, {210,26}, + {0,37}, {15,37}, {30,33}, {45,35}, {60,37}, {75,40}, {92,43}, {108,40}, {124,37}, {138,35}, {153,33}, {168,37}, {184,37}, {203,37}, {224,37}, + {0,48}, {14,48}, {29,44}, {43,46}, {57,48}, {72,50}, {92,53}, {112,50}, {126,48}, {141,46}, {155,44}, {169,48}, {184,48}, {210,48}, + {0,58}, {14,58}, {34,58}, {61,61}, {83,64}, {100,64}, {122,61}, {149,58}, {170,58}, {184,58}, {197,58}, {210,58}, {224,58} + }, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1 + } }; + + + + __attribute__ ((weak)) void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(44, 0xFF, 0xFF, 0xFF); + } +} + +#endif diff --git a/keyboards/xbows/knight/knight.h b/keyboards/xbows/knight/knight.h index 952d5a3114c4..a6497119ba27 100644 --- a/keyboards/xbows/knight/knight.h +++ b/keyboards/xbows/knight/knight.h @@ -1,35 +1,33 @@ +/* Copyright 2021 Shulin Huang + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #pragma once - #include "quantum.h" - - -#ifdef USE_I2C -#include -#ifdef __AVR__ - #include - #include -#endif -#endif - #define LAYOUT( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K111, K112, K113, K114, K115, K116, K117, K118, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, \ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K415, K416, K417, K518, \ - K500, K501, K502, K503, K505, K506, K507, K509, K510, K511, K512, K513, K514, K516, K517 \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K207, K208, K209, K210, K211, K212, K213, K214, K206, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, \ + K500, K501, K502, K504, K505, K506, K507, K509, K510, K511, K512, K513, K514 \ ) \ { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO, K111, K112, K113, K114 }, \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, KC_NO,K107, K108, K109, K110, K111, K112, K113, K114 }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO }, \ - { K500, K501, K502, K503, KC_NO,K505, K506, K507, KC_NO,K509, K510, K511, K512, K513, K514 }, \ - { K015, K016, K017, K018 }, \ - { K115, K116, K117, K118 }, \ - { K215, K216, K217, K218 }, \ - { K315, K316, K317, K318 }, \ - { K415, K416, K417, KC_NO }, \ - { KC_NO,K516, K517, K518 } \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO}, \ + { K500, K501, K502, KC_NO,K504, K505, K506, K507, KC_NO,K509, K510, K511, K512, K513, K514 } \ } diff --git a/keyboards/xbows/knight/readme.md b/keyboards/xbows/knight/readme.md index 063ff7a2e6a7..c66538594a06 100644 --- a/keyboards/xbows/knight/readme.md +++ b/keyboards/xbows/knight/readme.md @@ -1,15 +1,29 @@ # KNIGHT -![KNIGHT](https://ftp.bmp.ovh/imgs/2019/10/5f357cd665dd4b04.png) +![KNIGHT](https://cdn.shopify.com/s/files/1/0014/7623/1237/products/BestSeller_2_1024x1024@2x.png?v=1615697870) -KNIGHT, a split87 and pad Mechanical Keyboard. -X-BOWS Knight, the first ergonomic mechanical keyboard with magnetic connection of detachable numeric keypad on both sides. Revolutionary seamless integrated aluminum alloy body. Original spherical OEM keycaps. +KNIGHT, A 86 Keys Ergonomic Mechanical Keyboard with RGB backlight. -Keyboard Maintainer: X-BOWS -Hardware Supported: X-BOWS Knight -Hardware Availability: [X-BOWS](https://x-bows.com/) +If you spend your work days in front of a computer, you have likely felt some discomfort after a long day of typing. While spending less time on our computers would be the ideal remedy for this problem, that is not a realistic solution for most people. X-Bows was designed to limit the stress on your hands and wrists while also providing a productive and stylish typing experience. + + +X-Bows was designed with three criteria in mind: +* Enhancing the comfort and ergonomics of the keyboard +* Limiting the learning curve for our new layout +* Creating an attractive design + + +* Keyboard Maintainer: X-BOWS +* Hardware Supported: X-BOWS KNIGHT +* Hardware Availability: [X-BOWS](https://x-bows.com/) Make example for this keyboard (after setting up your build environment): make xbows/knight:default + make xbows/knight:via + +Flashing example for this keyboard: + + make xbows/knight:default:flash + make xbows/knight:via: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). diff --git a/keyboards/xbows/knight/rules.mk b/keyboards/xbows/knight/rules.mk index 4c6080129709..71883128e91d 100644 --- a/keyboards/xbows/knight/rules.mk +++ b/keyboards/xbows/knight/rules.mk @@ -2,13 +2,6 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu # Build Options @@ -18,15 +11,14 @@ BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration +COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. -SPLIT_KEYBOARD = yes +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3731 diff --git a/keyboards/xbows/knight_plus/info.json b/keyboards/xbows/knight_plus/info.json index b03bb3b56b02..22d1a1ac3805 100644 --- a/keyboards/xbows/knight_plus/info.json +++ b/keyboards/xbows/knight_plus/info.json @@ -60,7 +60,7 @@ {"label":"D", "x":3, "y":3.5}, {"label":"F", "x":4, "y":3.5}, {"label":"G", "x":5, "y":3.5}, - {"label":"Backspace", "x":6, "y":3.5, "w":1.5}, + {"label":"Backspace", "x":6.75, "y":3.5, "w":1.5}, {"label":"H", "x":9, "y":3.5}, {"label":"J", "x":10, "y":3.5}, {"label":"K", "x":11, "y":3.5}, @@ -76,7 +76,7 @@ {"label":"C", "x":3, "y":4.5}, {"label":"V", "x":4, "y":4.5}, {"label":"B", "x":5, "y":4.5}, - {"label":"Enter", "x":6, "y":4.5, "w":2}, + {"label":"Enter", "x":6.5, "y":4.5, "w":2}, {"label":"N", "x":9, "y":4.5}, {"label":"M", "x":10, "y":4.5}, {"label":"<", "x":11, "y":4.5}, diff --git a/keyboards/xbows/knight_plus/rules.mk b/keyboards/xbows/knight_plus/rules.mk index b0563614147e..71883128e91d 100644 --- a/keyboards/xbows/knight_plus/rules.mk +++ b/keyboards/xbows/knight_plus/rules.mk @@ -13,8 +13,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NO_USB_STARTUP_CHECK = yes # Disables usb supend check after keyboard startup +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality diff --git a/keyboards/xbows/numpad/info.json b/keyboards/xbows/numpad/info.json index 607ab93a3ac6..8a4707fbcfc9 100644 --- a/keyboards/xbows/numpad/info.json +++ b/keyboards/xbows/numpad/info.json @@ -15,12 +15,12 @@ {"label":"Num Lock", "x":0, "y":1.5}, {"label":"/", "x":1, "y":1.5}, {"label":"*", "x":2, "y":1.5}, - {"label":"-", "x":3, "y":1.5}, + {"label":"=", "x":3, "y":1.5}, {"label":"7", "x":0, "y":2.5}, {"label":"8", "x":1, "y":2.5}, {"label":"9", "x":2, "y":2.5}, - {"label":"+", "x":3, "y":2.5}, + {"label":"-", "x":3, "y":2.5}, {"label":"4", "x":0, "y":3.5}, {"label":"5", "x":1, "y":3.5}, @@ -33,7 +33,7 @@ {"label":"Enter", "x":3, "y":4.5, "h":2}, {"label":"0", "x":0, "y":5.5, "w":2}, - {"label":".", "x":3, "y":5.5} + {"label":".", "x":2, "y":5.5} ] } From 1105f2eb47e79a7a4ce8d31dd1f6d7b09afccb2d Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Tue, 20 Jul 2021 03:48:00 +0200 Subject: [PATCH 010/328] [Keymap] Update bface p3lim keymap (#13582) --- .../winkeyless/bface/keymaps/p3lim/README.md | 13 ++- .../winkeyless/bface/keymaps/p3lim/keymap.c | 86 +++++++++++++------ .../winkeyless/bface/keymaps/p3lim/rules.mk | 1 + 3 files changed, 70 insertions(+), 30 deletions(-) create mode 100644 keyboards/winkeyless/bface/keymaps/p3lim/rules.mk diff --git a/keyboards/winkeyless/bface/keymaps/p3lim/README.md b/keyboards/winkeyless/bface/keymaps/p3lim/README.md index 81f99ec966ba..94e84e7f2210 100644 --- a/keyboards/winkeyless/bface/keymaps/p3lim/README.md +++ b/keyboards/winkeyless/bface/keymaps/p3lim/README.md @@ -2,13 +2,20 @@ ![](https://user-images.githubusercontent.com/26496/61170794-bf8a2c80-a56e-11e9-893f-f1766e7a9a04.png) -My layout using the winkeyless b.face X2 PCB. The keys indicated with a gray color was not supported by the layout so a custom one was made. +My layout using the winkeyless b.face X2 PCB. ### Building & Flashing -- Hold LCTRL while connecting to put in flashing mode -- Follow instructions in the main _bface_ directory +- Set up QMK + - `pip install --user qmk` + - `qmk setup` +- Add udev rules if on Linux + - Follow the docs: +- Build and flash + - `qmk flash -kb winkeyless/bface -km p3lim` +- Hold bottom-left key while connecting to put in flashing mode ### Layout notes +The keys indicated with a gray color in the image above was not supported by the layout so a custom matrix was made. The two additional keys were on pins 22+41 and 22+42, C3+B1 and C3+B2, which is mapped to col 10 row 1 and col 10 row 2 in the matrix. diff --git a/keyboards/winkeyless/bface/keymaps/p3lim/keymap.c b/keyboards/winkeyless/bface/keymaps/p3lim/keymap.c index 0ec124529172..f702810f9c2a 100644 --- a/keyboards/winkeyless/bface/keymaps/p3lim/keymap.c +++ b/keyboards/winkeyless/bface/keymaps/p3lim/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2019 Adrian L Lange +Copyright 2019-2021 Adrian L Lange 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 @@ -16,7 +16,6 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "quantum.h" #define LAYOUT_p3lim(\ K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, \ @@ -37,13 +36,13 @@ along with this program. If not, see . enum my_keycodes { C_ESC0 = SAFE_RANGE, // layer 0 esc - C_ESC1 // layer 1 esc + C_ESC1, // layer 1 esc + C_NO1, // æ, requires RCTL to be a compose key in software + C_NO2, // ø, requires RCTL to be a compose key in software + C_NO3 // å, requires RCTL to be a compose key in software }; // use compiler macros for simpler stuff -#define C_NO1 RALT(KC_QUOT) -#define C_NO2 RALT(KC_SCLN) -#define C_NO3 RALT(KC_LBRC) #define C_KVM1 LCA(KC_1) #define C_KVM2 LCA(KC_2) #define C_KVM3 LCA(KC_3) @@ -77,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------------------------------------+ * | Caps | Home| Up | End | PgUp| | | | | | | | | | * |---------------------------------------------------------------------------------| | - * | | Left| Down|Right| PgDn| | | | | | | | | | + * | | Left| Down|Right| PgDn|PrtSc| | | | | | | | | * |-----------------------------------------------------------------------------------------+ * | | KVM1| KVM2| KVM3| KVM4| | | | | | | | | * |-----------------------------------------------------------------------------------------+ @@ -87,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_p3lim( C_ESC1, 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_CAPS, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, C_KVM1, C_KVM2, C_KVM3, C_KVM4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, _______ ), @@ -123,32 +122,65 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ }; +static bool grave_esc_shifted = false; + bool process_record_user(uint16_t keycode, keyrecord_t *record){ + const uint8_t mods = get_mods(); + uint8_t shifted = mods & MOD_MASK_SHIFT; + switch(keycode){ case C_ESC0: // layer 0 if(record->event.pressed){ - if(get_mods() & MOD_MASK_SHIFT) - register_code(KC_GRAVE); - else - register_code(KC_ESCAPE); - } else { - if(get_mods() & MOD_MASK_SHIFT) - unregister_code(KC_GRAVE); - else - unregister_code(KC_ESCAPE); - } + grave_esc_shifted = shifted; + register_code(shifted ? KC_GRAVE : KC_ESCAPE); + } else + unregister_code(grave_esc_shifted ? KC_GRAVE : KC_ESCAPE); return false; case C_ESC1: // layer 1 if(record->event.pressed){ - if(get_mods() & MOD_MASK_SHIFT) - register_code(KC_ESCAPE); - else - register_code(KC_GRAVE); - } else { - if(get_mods() & MOD_MASK_SHIFT) - unregister_code(KC_ESCAPE); - else - unregister_code(KC_GRAVE); + grave_esc_shifted = shifted; + register_code(shifted ? KC_ESCAPE : KC_GRAVE); + } else + unregister_code(grave_esc_shifted ? KC_ESCAPE : KC_GRAVE); + return false; + case C_NO1: // æ + if(record->event.pressed){ + // we use shift for A and E to make it capitalized, no need to handle it here + tap_code(KC_RCTL); + tap_code(KC_A); + tap_code(KC_E); + } + return false; + case C_NO2: // ø + // the "/" symbol can't be shifted, so we have to deal with that + if(record->event.pressed){ + if(shifted){ + unregister_code(KC_LSFT); // reset the shift state, I always use LSFT personally + tap_code(KC_RCTL); + tap_code(KC_SLSH); + tap_code16(S(KC_O)); + register_code(KC_LSFT); // enable the shift state again to keep state consistent + } else { + tap_code(KC_RCTL); + tap_code(KC_SLSH); + tap_code(KC_O); + } + } + return false; + case C_NO3: // å + // the "o" symbol can't be shifted, so we have to deal with that + if(record->event.pressed){ + if(shifted){ + unregister_code(KC_LSFT); // reset the shift state, I always use LSFT personally + tap_code(KC_RCTL); + tap_code(KC_O); + tap_code16(S(KC_A)); + register_code(KC_LSFT); // enable the shift state again to keep state consistent + } else { + tap_code(KC_RCTL); + tap_code(KC_O); + tap_code(KC_A); + } } return false; } diff --git a/keyboards/winkeyless/bface/keymaps/p3lim/rules.mk b/keyboards/winkeyless/bface/keymaps/p3lim/rules.mk new file mode 100644 index 000000000000..e0ed6f0c2d6f --- /dev/null +++ b/keyboards/winkeyless/bface/keymaps/p3lim/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = no From 8e30ec1eee0c133d158b872f802236af42048585 Mon Sep 17 00:00:00 2001 From: npspears <40127181+npspears@users.noreply.github.com> Date: Mon, 19 Jul 2021 20:48:58 -0500 Subject: [PATCH 011/328] [Keyboard] enable RGB underglow on heckerboards/axon40 (#13490) This PCB uses RGB underglow LEDs. If the user doesn't want them, they can turn them off with a keycode. --- keyboards/checkerboards/axon40/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/checkerboards/axon40/rules.mk b/keyboards/checkerboards/axon40/rules.mk index 32981133b2eb..f49426d5137f 100644 --- a/keyboards/checkerboards/axon40/rules.mk +++ b/keyboards/checkerboards/axon40/rules.mk @@ -17,6 +17,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output From 46b8230468782808d0592ad63a664982622b195f Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Mon, 19 Jul 2021 21:49:26 -0400 Subject: [PATCH 012/328] [Keyboard] Add CannonKeys Balance PCB to QMK (#13489) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/cannonkeys/balance/balance.c | 27 +++++++ keyboards/cannonkeys/balance/balance.h | 33 +++++++++ keyboards/cannonkeys/balance/chconf.h | 31 ++++++++ keyboards/cannonkeys/balance/config.h | 71 +++++++++++++++++++ keyboards/cannonkeys/balance/halconf.h | 31 ++++++++ keyboards/cannonkeys/balance/info.json | 12 ++++ .../balance/keymaps/default/keymap.c | 46 ++++++++++++ .../cannonkeys/balance/keymaps/via/keymap.c | 56 +++++++++++++++ .../cannonkeys/balance/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/balance/mcuconf.h | 34 +++++++++ keyboards/cannonkeys/balance/readme.md | 10 +++ keyboards/cannonkeys/balance/rules.mk | 29 ++++++++ 12 files changed, 381 insertions(+) create mode 100644 keyboards/cannonkeys/balance/balance.c create mode 100644 keyboards/cannonkeys/balance/balance.h create mode 100644 keyboards/cannonkeys/balance/chconf.h create mode 100644 keyboards/cannonkeys/balance/config.h create mode 100644 keyboards/cannonkeys/balance/halconf.h create mode 100644 keyboards/cannonkeys/balance/info.json create mode 100644 keyboards/cannonkeys/balance/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/balance/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/balance/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/balance/mcuconf.h create mode 100644 keyboards/cannonkeys/balance/readme.md create mode 100644 keyboards/cannonkeys/balance/rules.mk diff --git a/keyboards/cannonkeys/balance/balance.c b/keyboards/cannonkeys/balance/balance.c new file mode 100644 index 000000000000..2bb4485521d8 --- /dev/null +++ b/keyboards/cannonkeys/balance/balance.c @@ -0,0 +1,27 @@ +/* +Copyright 2021 Andrew Kannan + +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 "balance.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return true; +} diff --git a/keyboards/cannonkeys/balance/balance.h b/keyboards/cannonkeys/balance/balance.h new file mode 100644 index 000000000000..7d0ad50a3fbd --- /dev/null +++ b/keyboards/cannonkeys/balance/balance.h @@ -0,0 +1,33 @@ +/* +Copyright 2021 Andrew Kannan + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, K116, K117, K118, K119, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K216, K217, K218, K219, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K315, K316, K317, K318, K319, \ + K400, K401, K402, K406, K410, K411, K412, K413, K415, K416, K417, K418, K419 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115, K116, K117, K118, K119 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215, K216, K217, K218, K219 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO, K315, K316, K317, K318, K319 }, \ + { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO, K415, K416, K417, K418, K419 } \ +} diff --git a/keyboards/cannonkeys/balance/chconf.h b/keyboards/cannonkeys/balance/chconf.h new file mode 100644 index 000000000000..9f541944f81d --- /dev/null +++ b/keyboards/cannonkeys/balance/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/cannonkeys/balance/config.h b/keyboards/cannonkeys/balance/config.h new file mode 100644 index 000000000000..2cdf7d27a740 --- /dev/null +++ b/keyboards/cannonkeys/balance/config.h @@ -0,0 +1,71 @@ +/* +Copyright 2015 Jun Wako + +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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0xBA77 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Balance + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 20 + +#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, A2, A1, F1, C15, B3, C14, C13, B9, B8, B7 } +#define MATRIX_ROW_PINS { B4, A15, A14, A0, F0 } +#define DIODE_DIRECTION COL2ROW + + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* 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 + +#define ENCODERS_PAD_A { B5 } +#define ENCODERS_PAD_B { B6 } + +#define ENCODER_RESOLUTION 2 +#define TAP_CODE_DELAY 25 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/balance/halconf.h b/keyboards/cannonkeys/balance/halconf.h new file mode 100644 index 000000000000..de8d8035d04b --- /dev/null +++ b/keyboards/cannonkeys/balance/halconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/cannonkeys/balance/info.json b/keyboards/cannonkeys/balance/info.json new file mode 100644 index 000000000000..d7429ac8baf3 --- /dev/null +++ b/keyboards/cannonkeys/balance/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Balance", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "width": 20.5, + "height": 5.5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"KNOB", "x":15.25, "y":0}, {"label":"~", "x":0, "y":0.25}, {"label":"!", "x":1, "y":0.25}, {"label":"@", "x":2, "y":0.25}, {"label":"#", "x":3, "y":0.25}, {"label":"$", "x":4, "y":0.25}, {"label":"%", "x":5, "y":0.25}, {"label":"^", "x":6, "y":0.25}, {"label":"&", "x":7, "y":0.25}, {"label":"*", "x":8, "y":0.25}, {"label":"(", "x":9, "y":0.25}, {"label":")", "x":10, "y":0.25}, {"label":"_", "x":11, "y":0.25}, {"label":"+", "x":12, "y":0.25}, {"x":13, "y":0.25}, {"x":14, "y":0.25}, {"label":"Num Lock", "x":16.5, "y":0.25}, {"label":"/", "x":17.5, "y":0.25}, {"label":"*", "x":18.5, "y":0.25}, {"label":"-", "x":19.5, "y":0.25}, {"label":"Tab", "x":0, "y":1.25, "w":1.5}, {"label":"Q", "x":1.5, "y":1.25}, {"label":"W", "x":2.5, "y":1.25}, {"label":"E", "x":3.5, "y":1.25}, {"label":"R", "x":4.5, "y":1.25}, {"label":"T", "x":5.5, "y":1.25}, {"label":"Y", "x":6.5, "y":1.25}, {"label":"U", "x":7.5, "y":1.25}, {"label":"I", "x":8.5, "y":1.25}, {"label":"O", "x":9.5, "y":1.25}, {"label":"P", "x":10.5, "y":1.25}, {"label":"{", "x":11.5, "y":1.25}, {"label":"}", "x":12.5, "y":1.25}, {"label":"|", "x":13.5, "y":1.25, "w":1.5}, {"label":"PgUp", "x":15.25, "y":1.25}, {"label":"7", "x":16.5, "y":1.25}, {"label":"8", "x":17.5, "y":1.25}, {"label":"9", "x":18.5, "y":1.25}, {"label":"+", "x":19.5, "y":1.25}, {"label":"Caps Lock", "x":0, "y":2.25, "w":1.75}, {"label":"A", "x":1.75, "y":2.25}, {"label":"S", "x":2.75, "y":2.25}, {"label":"D", "x":3.75, "y":2.25}, {"label":"F", "x":4.75, "y":2.25}, {"label":"G", "x":5.75, "y":2.25}, {"label":"H", "x":6.75, "y":2.25}, {"label":"J", "x":7.75, "y":2.25}, {"label":"K", "x":8.75, "y":2.25}, {"label":"L", "x":9.75, "y":2.25}, {"label":":", "x":10.75, "y":2.25}, {"label":"\"", "x":11.75, "y":2.25}, {"label":"Enter", "x":12.75, "y":2.25, "w":2.25}, {"label":"PgDn", "x":15.25, "y":2.25}, {"label":"4", "x":16.5, "y":2.25}, {"label":"5", "x":17.5, "y":2.25}, {"label":"6", "x":18.5, "y":2.25}, {"label":"+", "x":19.5, "y":2.25}, {"label":"Shift", "x":0, "y":3.25, "w":2.25}, {"label":"Z", "x":2.25, "y":3.25}, {"label":"X", "x":3.25, "y":3.25}, {"label":"C", "x":4.25, "y":3.25}, {"label":"V", "x":5.25, "y":3.25}, {"label":"B", "x":6.25, "y":3.25}, {"label":"N", "x":7.25, "y":3.25}, {"label":"M", "x":8.25, "y":3.25}, {"label":"<", "x":9.25, "y":3.25}, {"label":">", "x":10.25, "y":3.25}, {"label":"?", "x":11.25, "y":3.25}, {"label":"Shift", "x":12.25, "y":3.25, "w":2.75}, {"label":"1", "x":16.5, "y":3.25}, {"label":"2", "x":17.5, "y":3.25}, {"label":"3", "x":18.5, "y":3.25}, {"label":"Enter", "x":19.5, "y":3.25}, {"label":"\u2191", "x":15.25, "y":3.5}, {"label":"Ctrl", "x":0, "y":4.25, "w":1.25}, {"label":"Win", "x":1.25, "y":4.25}, {"label":"Alt", "x":2.25, "y":4.25, "w":1.25}, {"x":3.5, "y":4.25, "w":7}, {"label":"Ctrl", "x":10.5, "y":4.25, "w":1.25}, {"label":"Win", "x":11.75, "y":4.25}, {"label":"Alt", "x":12.75, "y":4.25, "w":1.25}, {"label":"0", "x":17.5, "y":4.25}, {"label":".", "x":18.5, "y":4.25}, {"label":"Enter", "x":19.5, "y":4.25}, {"label":"\u2190", "x":14.25, "y":4.5}, {"label":"\u2193", "x":15.25, "y":4.5}, {"label":"\u2192", "x":16.25, "y":4.5}] + } + } +} diff --git a/keyboards/cannonkeys/balance/keymaps/default/keymap.c b/keyboards/cannonkeys/balance/keymaps/default/keymap.c new file mode 100644 index 000000000000..b1e507bc172f --- /dev/null +++ b/keyboards/cannonkeys/balance/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MPLY, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [_FN1] = LAYOUT_all( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/cannonkeys/balance/keymaps/via/keymap.c b/keyboards/cannonkeys/balance/keymaps/via/keymap.c new file mode 100644 index 000000000000..ad5f009d4326 --- /dev/null +++ b/keyboards/cannonkeys/balance/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MPLY, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [_FN1] = LAYOUT_all( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FN2] = 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, KC_TRNS + ) +}; + diff --git a/keyboards/cannonkeys/balance/keymaps/via/rules.mk b/keyboards/cannonkeys/balance/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/balance/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/balance/mcuconf.h b/keyboards/cannonkeys/balance/mcuconf.h new file mode 100644 index 000000000000..f2212bd2c4f5 --- /dev/null +++ b/keyboards/cannonkeys/balance/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/cannonkeys/balance/readme.md b/keyboards/cannonkeys/balance/readme.md new file mode 100644 index 000000000000..eb06169845d0 --- /dev/null +++ b/keyboards/cannonkeys/balance/readme.md @@ -0,0 +1,10 @@ +# CannonKeys Balance + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/balance:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/balance/rules.mk b/keyboards/cannonkeys/balance/rules.mk new file mode 100644 index 000000000000..ab0e323565cc --- /dev/null +++ b/keyboards/cannonkeys/balance/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From f439bfd543900498ae3e00df17d5f30ee29a4d70 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Mon, 19 Jul 2021 23:46:01 -0400 Subject: [PATCH 013/328] [Keyboard] Aella Keyboard PCB (#13372) Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/cannonkeys/aella/aella.c | 1 + keyboards/cannonkeys/aella/aella.h | 19 +++++ keyboards/cannonkeys/aella/chconf.h | 31 ++++++++ keyboards/cannonkeys/aella/config.h | 63 ++++++++++++++++ keyboards/cannonkeys/aella/info.json | 12 ++++ .../cannonkeys/aella/keymaps/default/keymap.c | 48 +++++++++++++ .../cannonkeys/aella/keymaps/via/keymap.c | 71 +++++++++++++++++++ .../cannonkeys/aella/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/aella/readme.md | 10 +++ keyboards/cannonkeys/aella/rules.mk | 28 ++++++++ 10 files changed, 284 insertions(+) create mode 100644 keyboards/cannonkeys/aella/aella.c create mode 100644 keyboards/cannonkeys/aella/aella.h create mode 100644 keyboards/cannonkeys/aella/chconf.h create mode 100644 keyboards/cannonkeys/aella/config.h create mode 100644 keyboards/cannonkeys/aella/info.json create mode 100644 keyboards/cannonkeys/aella/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/aella/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/aella/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/aella/readme.md create mode 100644 keyboards/cannonkeys/aella/rules.mk diff --git a/keyboards/cannonkeys/aella/aella.c b/keyboards/cannonkeys/aella/aella.c new file mode 100644 index 000000000000..862bf414519e --- /dev/null +++ b/keyboards/cannonkeys/aella/aella.c @@ -0,0 +1 @@ +#include "aella.h" diff --git a/keyboards/cannonkeys/aella/aella.h b/keyboards/cannonkeys/aella/aella.h new file mode 100644 index 000000000000..457c5111c160 --- /dev/null +++ b/keyboards/cannonkeys/aella/aella.h @@ -0,0 +1,19 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K415, \ + K500, K502, K506, K510, K511, K512, K513, K515 \ +) { \ + { K000, K001, K002, K003, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO, K415 }, \ + { K500, KC_NO, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, KC_NO, K515 } \ +} diff --git a/keyboards/cannonkeys/aella/chconf.h b/keyboards/cannonkeys/aella/chconf.h new file mode 100644 index 000000000000..645412d47c65 --- /dev/null +++ b/keyboards/cannonkeys/aella/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/obliterated75/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/cannonkeys/aella/config.h b/keyboards/cannonkeys/aella/config.h new file mode 100644 index 000000000000..b32880d40979 --- /dev/null +++ b/keyboards/cannonkeys/aella/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2015 Jun Wako + +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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0007 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Aella + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +#define MATRIX_COL_PINS { A5, B0, B1, B2, B10, A9, C13, B9, B8, B7, B6, B5, B4, B3, A15, A14 } +#define MATRIX_ROW_PINS { A13, B12, B11, B14, A8, A7 } +#define DIODE_DIRECTION COL2ROW + + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/aella/info.json b/keyboards/cannonkeys/aella/info.json new file mode 100644 index 000000000000..4b2310f3f0be --- /dev/null +++ b/keyboards/cannonkeys/aella/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Aella", + "url": "https://www.alchemistkeyboards.com/aella", + "maintainer": "Alchemist Keyboards", + "width": 16, + "height": 6, + "layouts": { + "LAYOUT_all": { + "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15, "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":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":6.5, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2, "w":1.5}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.75}, {"x":1.75, "y":3}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3, "w":1.25}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"x":2.25, "y":4}, {"x":3.25, "y":4}, {"x":4.25, "y":4}, {"x":5.25, "y":4}, {"x":6.25, "y":4}, {"x":7.25, "y":4}, {"x":8.25, "y":4}, {"x":9.25, "y":4}, {"x":10.25, "y":4}, {"x":11.25, "y":4}, {"x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"x":15, "y":4}, {"x":0, "y":5, "w":1.5}, {"x":2.25, "y":5, "w":1.25}, {"x":3.5, "y":5, "w":6.25}, {"x":9.75, "y":5, "w":1.25}, {"x":11, "y":5, "w":1.25}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":15, "y":5}] + } + } +} diff --git a/keyboards/cannonkeys/aella/keymaps/default/keymap.c b/keyboards/cannonkeys/aella/keymaps/default/keymap.c new file mode 100644 index 000000000000..4bd71e79f99c --- /dev/null +++ b/keyboards/cannonkeys/aella/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = 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_MPLY, 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_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = 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_TRNS, 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_DEL, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/aella/keymaps/via/keymap.c b/keyboards/cannonkeys/aella/keymaps/via/keymap.c new file mode 100644 index 000000000000..3a204be6c516 --- /dev/null +++ b/keyboards/cannonkeys/aella/keymaps/via/keymap.c @@ -0,0 +1,71 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = 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_MPLY, 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_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = 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_TRNS, 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_DEL, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS + ), + + + [_FN2] = 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 + ), + + [_FN3] = 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 + ) + +}; diff --git a/keyboards/cannonkeys/aella/keymaps/via/rules.mk b/keyboards/cannonkeys/aella/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/aella/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/aella/readme.md b/keyboards/cannonkeys/aella/readme.md new file mode 100644 index 000000000000..32015375659e --- /dev/null +++ b/keyboards/cannonkeys/aella/readme.md @@ -0,0 +1,10 @@ +# Alchemist Keyboards Aella + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/aella:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/aella/rules.mk b/keyboards/cannonkeys/aella/rules.mk new file mode 100644 index 000000000000..7b913074491f --- /dev/null +++ b/keyboards/cannonkeys/aella/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From 8b0a996d5d4bec0ee5901ee217650d8f432b4f5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=BA=E3=82=89=E3=81=AD=E3=81=93?= Date: Tue, 20 Jul 2021 12:49:45 +0900 Subject: [PATCH 014/328] [Keyboard] Add tone (#13337) Co-authored-by: Ryan Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Co-authored-by: kakunpc <15257475+kakunpc@users.noreply.github.com> --- .../tone/keymaps/default/keymap.c | 33 ++++ .../tone/keymaps/default/readme.md | 2 + keyboards/peranekofactory/tone/readme.md | 19 ++ keyboards/peranekofactory/tone/rev1/config.h | 165 ++++++++++++++++++ keyboards/peranekofactory/tone/rev1/info.json | 12 ++ keyboards/peranekofactory/tone/rev1/readme.md | 19 ++ keyboards/peranekofactory/tone/rev1/rev1.c | 17 ++ keyboards/peranekofactory/tone/rev1/rev1.h | 35 ++++ keyboards/peranekofactory/tone/rev1/rules.mk | 23 +++ keyboards/peranekofactory/tone/rev2/config.h | 164 +++++++++++++++++ keyboards/peranekofactory/tone/rev2/info.json | 12 ++ keyboards/peranekofactory/tone/rev2/readme.md | 19 ++ keyboards/peranekofactory/tone/rev2/rev2.c | 17 ++ keyboards/peranekofactory/tone/rev2/rev2.h | 35 ++++ keyboards/peranekofactory/tone/rev2/rules.mk | 23 +++ keyboards/peranekofactory/tone/rules.mk | 1 + 16 files changed, 596 insertions(+) create mode 100644 keyboards/peranekofactory/tone/keymaps/default/keymap.c create mode 100644 keyboards/peranekofactory/tone/keymaps/default/readme.md create mode 100644 keyboards/peranekofactory/tone/readme.md create mode 100644 keyboards/peranekofactory/tone/rev1/config.h create mode 100644 keyboards/peranekofactory/tone/rev1/info.json create mode 100644 keyboards/peranekofactory/tone/rev1/readme.md create mode 100644 keyboards/peranekofactory/tone/rev1/rev1.c create mode 100644 keyboards/peranekofactory/tone/rev1/rev1.h create mode 100644 keyboards/peranekofactory/tone/rev1/rules.mk create mode 100644 keyboards/peranekofactory/tone/rev2/config.h create mode 100644 keyboards/peranekofactory/tone/rev2/info.json create mode 100644 keyboards/peranekofactory/tone/rev2/readme.md create mode 100644 keyboards/peranekofactory/tone/rev2/rev2.c create mode 100644 keyboards/peranekofactory/tone/rev2/rev2.h create mode 100644 keyboards/peranekofactory/tone/rev2/rules.mk create mode 100644 keyboards/peranekofactory/tone/rules.mk diff --git a/keyboards/peranekofactory/tone/keymaps/default/keymap.c b/keyboards/peranekofactory/tone/keymaps/default/keymap.c new file mode 100644 index 000000000000..2f017ccb9089 --- /dev/null +++ b/keyboards/peranekofactory/tone/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 peraneko + * + * 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( + C(S(KC_E)), S(KC_TAB), KC_TAB, KC_0, + KC_LSFT, C(KC_LEFT), C(KC_RIGHT), C(KC_Z) + ) +}; + +/* Rotary encoder settings */ +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_UP); //Rotary encoder clockwise + } else { + tap_code(KC_DOWN); //Rotary encoder Reverse clockwise + } + return true; +} diff --git a/keyboards/peranekofactory/tone/keymaps/default/readme.md b/keyboards/peranekofactory/tone/keymaps/default/readme.md new file mode 100644 index 000000000000..9d7e75024319 --- /dev/null +++ b/keyboards/peranekofactory/tone/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The default keymap for tone +For Adobe Lightroom. diff --git a/keyboards/peranekofactory/tone/readme.md b/keyboards/peranekofactory/tone/readme.md new file mode 100644 index 000000000000..db9bef04d033 --- /dev/null +++ b/keyboards/peranekofactory/tone/readme.md @@ -0,0 +1,19 @@ +# TONE + +![TONE](https://user-images.githubusercontent.com/5952961/70761947-4b101f80-1d92-11ea-86ce-3eda38e93524.jpg) + +TONE is macro_pad With RotaryEncoder. + +* Keyboard Maintainer: [peraneko](https://github.com/peraneko) +* Hardware Supported: TONE +* Hardware Availability: https://shop.yushakobo.jp/collections/keyboard-1/products/consign_tone-note + +Make example for this keyboard (after setting up your build environment): + + make peranekofactory/tone:default + +Flashing example for this keyboard: + + make peranekofactory/tone: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). diff --git a/keyboards/peranekofactory/tone/rev1/config.h b/keyboards/peranekofactory/tone/rev1/config.h new file mode 100644 index 000000000000..22658c9c7817 --- /dev/null +++ b/keyboards/peranekofactory/tone/rev1/config.h @@ -0,0 +1,165 @@ +/* +Copyright 2021 peraneko + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER PeranekoFactory +#define PRODUCT tone + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 10 + +/* + * 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 DIRECT_PINS { \ + { D4, C6, D7, E6, F6, F7, B1, B3 } \ +} +#define UNUSED_PINS + +/* +#define MATRIX_ROW_PINS { NO_PIN } +#define MATRIX_COL_PINS { F6,F7,B1,B3,D4,C6,D7,E6 } +#define UNUSED_PINS +*/ + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Rotary encoder define*/ +#define ENCODERS_PAD_A { B5 } +#define ENCODERS_PAD_B { B4 } +#define TAP_CODE_DELAY 100 + +/* + * 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/peranekofactory/tone/rev1/info.json b/keyboards/peranekofactory/tone/rev1/info.json new file mode 100644 index 000000000000..2831c871980a --- /dev/null +++ b/keyboards/peranekofactory/tone/rev1/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "tone", + "url": "https://shop.yushakobo.jp/collections/keyboard-1/products/consign_tone-note", + "maintainer": "PeranekoFactory", + "width": 4, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}] + } + } +} diff --git a/keyboards/peranekofactory/tone/rev1/readme.md b/keyboards/peranekofactory/tone/rev1/readme.md new file mode 100644 index 000000000000..a5d98f483f26 --- /dev/null +++ b/keyboards/peranekofactory/tone/rev1/readme.md @@ -0,0 +1,19 @@ +# TONE + +![TONE](https://user-images.githubusercontent.com/5952961/70761947-4b101f80-1d92-11ea-86ce-3eda38e93524.jpg) + +TONE is macro_pad With RotaryEncoder. + +* Keyboard Maintainer: [peraneko](https://github.com/peraneko) +* Hardware Supported: TONE +* Hardware Availability: https://shop.yushakobo.jp/collections/keyboard-1/products/consign_tone-note + +Make example for this keyboard (after setting up your build environment): + + make peranekofactory/tone/rev1:default + +Flashing example for this keyboard: + + make peranekofactory/tone/rev1: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). diff --git a/keyboards/peranekofactory/tone/rev1/rev1.c b/keyboards/peranekofactory/tone/rev1/rev1.c new file mode 100644 index 000000000000..df99ef2e0b3a --- /dev/null +++ b/keyboards/peranekofactory/tone/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2021 peraneko + * + * 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 "rev1.h" diff --git a/keyboards/peranekofactory/tone/rev1/rev1.h b/keyboards/peranekofactory/tone/rev1/rev1.h new file mode 100644 index 000000000000..47f6423391e9 --- /dev/null +++ b/keyboards/peranekofactory/tone/rev1/rev1.h @@ -0,0 +1,35 @@ +/* Copyright 2021 peraneko + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K01, K02, K03, \ + K04, K05, K06, K07 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ +} diff --git a/keyboards/peranekofactory/tone/rev1/rules.mk b/keyboards/peranekofactory/tone/rev1/rules.mk new file mode 100644 index 000000000000..8b8bacdcf5e8 --- /dev/null +++ b/keyboards/peranekofactory/tone/rev1/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/peranekofactory/tone/rev2/config.h b/keyboards/peranekofactory/tone/rev2/config.h new file mode 100644 index 000000000000..f49c38e4b833 --- /dev/null +++ b/keyboards/peranekofactory/tone/rev2/config.h @@ -0,0 +1,164 @@ +/* +Copyright 2021 peraneko + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER PeranekoFactory +#define PRODUCT tone + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 10 + +/* + * 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 DIRECT_PINS { \ + { D4,C6,D7,E6,F6,F7,B1,B3 } \ +} + +/* +#define MATRIX_ROW_PINS { NO_PIN } +#define MATRIX_COL_PINS { D4,C6,D7,E6,F6,F7,B1,B3 } +*/ +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Rotary encoder define*/ +#define ENCODERS_PAD_A { B5 } +#define ENCODERS_PAD_B { B4 } +#define TAP_CODE_DELAY 100 + +/* + * 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/peranekofactory/tone/rev2/info.json b/keyboards/peranekofactory/tone/rev2/info.json new file mode 100644 index 000000000000..2831c871980a --- /dev/null +++ b/keyboards/peranekofactory/tone/rev2/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "tone", + "url": "https://shop.yushakobo.jp/collections/keyboard-1/products/consign_tone-note", + "maintainer": "PeranekoFactory", + "width": 4, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}] + } + } +} diff --git a/keyboards/peranekofactory/tone/rev2/readme.md b/keyboards/peranekofactory/tone/rev2/readme.md new file mode 100644 index 000000000000..57a9a89a2d83 --- /dev/null +++ b/keyboards/peranekofactory/tone/rev2/readme.md @@ -0,0 +1,19 @@ +# TONE_rev2 + +![TONE_rev2](https://user-images.githubusercontent.com/5952961/70761947-4b101f80-1d92-11ea-86ce-3eda38e93524.jpg) + +TONE_rev2 is macro_pad With RotaryEncoder. + +* Keyboard Maintainer: [peraneko](https://github.com/peraneko) +* Hardware Supported: TONE +* Hardware Availability: https://shop.yushakobo.jp/collections/keyboard-1/products/consign_tone-note + +Make example for this keyboard (after setting up your build environment): + + make peranekofactory/tone:default + +Flashing example for this keyboard: + + make peranekofactory/tone: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). diff --git a/keyboards/peranekofactory/tone/rev2/rev2.c b/keyboards/peranekofactory/tone/rev2/rev2.c new file mode 100644 index 000000000000..aa9511097971 --- /dev/null +++ b/keyboards/peranekofactory/tone/rev2/rev2.c @@ -0,0 +1,17 @@ +/* Copyright 2021 peraneko + * + * 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 "rev2.h" diff --git a/keyboards/peranekofactory/tone/rev2/rev2.h b/keyboards/peranekofactory/tone/rev2/rev2.h new file mode 100644 index 000000000000..f5d3d7d01669 --- /dev/null +++ b/keyboards/peranekofactory/tone/rev2/rev2.h @@ -0,0 +1,35 @@ +/* Copyright 2021 peraneko + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K04, K05, K06, K07, \ + K00, K01, K02, K03 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ +} diff --git a/keyboards/peranekofactory/tone/rev2/rules.mk b/keyboards/peranekofactory/tone/rev2/rules.mk new file mode 100644 index 000000000000..8b8bacdcf5e8 --- /dev/null +++ b/keyboards/peranekofactory/tone/rev2/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/peranekofactory/tone/rules.mk b/keyboards/peranekofactory/tone/rules.mk new file mode 100644 index 000000000000..e87862a9f6e7 --- /dev/null +++ b/keyboards/peranekofactory/tone/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = peranekofactory/tone/rev2 From 9941cf00519349c8487ac18fee92f5114150194a Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Tue, 20 Jul 2021 00:01:36 -0400 Subject: [PATCH 015/328] [Keyboard] PORTICO: add support for wt_rgb (#13241) Co-authored-by: Ryan --- keyboards/tkc/portico/config.h | 60 +++++++- .../tkc/portico/keymaps/default/keymap.c | 20 ++- keyboards/tkc/portico/keymaps/via/keymap.c | 20 ++- keyboards/tkc/portico/portico.c | 2 +- keyboards/tkc/portico/portico.h | 4 + keyboards/tkc/portico/rules.mk | 11 +- keyboards/wilba_tech/wt_rgb_backlight.c | 129 +++++++++++++++++- 7 files changed, 237 insertions(+), 9 deletions(-) diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h index 4a7da833f79c..bd4d0962575d 100644 --- a/keyboards/tkc/portico/config.h +++ b/keyboards/tkc/portico/config.h @@ -70,4 +70,62 @@ along with this program. If not, see . # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 31 # define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#endif + +#else +// IS31FL3731 driver +#define DRIVER_COUNT 2 +#define DRIVER_LED_TOTAL 67 + +#define RGB_BACKLIGHT_ENABLED 1 + +// This conditionally compiles the backlight code for Dawn60 specifics +#define RGB_BACKLIGHT_PORTICO + +// disable backlight when USB suspended (PC sleep/hibernate/shutdown) +#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 1 + +// disable backlight after timeout in minutes, 0 = no timeout +#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 + +// the default brightness +#define RGB_BACKLIGHT_BRIGHTNESS 255 + +// the default effect (RGB test) +#define RGB_BACKLIGHT_EFFECT 255 + +// the default effect speed (0-3) +#define RGB_BACKLIGHT_EFFECT_SPEED 0 + +// the default color1 and color2 +#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } +#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } + +#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 +#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 +#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 +#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 +#define RGB_BACKLIGHT_USE_ISO_ENTER 0 +#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 +#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } + +// These define which keys in the matrix are alphas/mods +// Used for backlight effects so colors are different for +// alphas vs. mods +// Each value is for a row, bit 0 is column 0 +// Alpha=0 Mod=1 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0110000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0110000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0111000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0111000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b1111111111111111 + +// Backlight config starts after VIA's EEPROM usage, +// dynamic keymaps start after this. +#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31 + +// VIA lighting is handled by the keyboard-level code +#define VIA_CUSTOM_LIGHTING_ENABLE +#endif \ No newline at end of file diff --git a/keyboards/tkc/portico/keymaps/default/keymap.c b/keyboards/tkc/portico/keymaps/default/keymap.c index bbc68c3b9356..34420670117e 100644 --- a/keyboards/tkc/portico/keymaps/default/keymap.c +++ b/keyboards/tkc/portico/keymaps/default/keymap.c @@ -17,6 +17,14 @@ along with this program. If not, see . #include QMK_KEYBOARD_H +// RGB-specific keys: +// EF_INC, EF_DEC, // next/previous backlight effect +// H1_INC, H1_DEC, // Color 1 hue increase/decrease +// S1_INC, S1_DEC, // Color 1 saturation increase/decrease +// H2_INC, H2_DEC, // Color 2 hue increase/decrease +// S2_INC, S2_DEC, // Color 2 saturation increase/decrease +// BR_INC, BR_DEC, // backlight brightness increase/decrease + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( 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_HOME, @@ -25,13 +33,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), +#ifdef RGB_BACKLIGHT_PORTICO + [1] = LAYOUT_65_ansi_blocker( + 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_HOME, + _______, EF_INC, EF_DEC, BR_INC, BR_DEC, H1_INC, H1_DEC, S1_INC, S1_DEC, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, + KC_CAPS, _______, _______, _______, _______, H2_INC, H2_DEC, S2_INC, S2_DEC, _______, _______, _______, _______, KC_PGDN, + KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), +#else [1] = LAYOUT_65_ansi_blocker( 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_HOME, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, - KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, KC_PGDN, + KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), +#endif [2] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/tkc/portico/keymaps/via/keymap.c b/keyboards/tkc/portico/keymaps/via/keymap.c index bbc68c3b9356..34420670117e 100644 --- a/keyboards/tkc/portico/keymaps/via/keymap.c +++ b/keyboards/tkc/portico/keymaps/via/keymap.c @@ -17,6 +17,14 @@ along with this program. If not, see . #include QMK_KEYBOARD_H +// RGB-specific keys: +// EF_INC, EF_DEC, // next/previous backlight effect +// H1_INC, H1_DEC, // Color 1 hue increase/decrease +// S1_INC, S1_DEC, // Color 1 saturation increase/decrease +// H2_INC, H2_DEC, // Color 2 hue increase/decrease +// S2_INC, S2_DEC, // Color 2 saturation increase/decrease +// BR_INC, BR_DEC, // backlight brightness increase/decrease + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( 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_HOME, @@ -25,13 +33,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), +#ifdef RGB_BACKLIGHT_PORTICO + [1] = LAYOUT_65_ansi_blocker( + 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_HOME, + _______, EF_INC, EF_DEC, BR_INC, BR_DEC, H1_INC, H1_DEC, S1_INC, S1_DEC, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, + KC_CAPS, _______, _______, _______, _______, H2_INC, H2_DEC, S2_INC, S2_DEC, _______, _______, _______, _______, KC_PGDN, + KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), +#else [1] = LAYOUT_65_ansi_blocker( 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_HOME, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, - KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, KC_PGDN, + KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), +#endif [2] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c index e4fd7410786a..a65a85d24265 100644 --- a/keyboards/tkc/portico/portico.c +++ b/keyboards/tkc/portico/portico.c @@ -136,4 +136,4 @@ void rgb_matrix_indicators_kb(void) { rgb_matrix_driver.flush(); } } -#endif +#endif \ No newline at end of file diff --git a/keyboards/tkc/portico/portico.h b/keyboards/tkc/portico/portico.h index 7add429432e5..71b28074ddb5 100644 --- a/keyboards/tkc/portico/portico.h +++ b/keyboards/tkc/portico/portico.h @@ -18,6 +18,10 @@ along with this program. If not, see . #pragma once #include "quantum.h" +#ifdef RGB_BACKLIGHT_PORTICO +#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" +#include "via.h" +#endif #define XXX KC_NO diff --git a/keyboards/tkc/portico/rules.mk b/keyboards/tkc/portico/rules.mk index 1cbcd95d6ab0..84a65370e315 100644 --- a/keyboards/tkc/portico/rules.mk +++ b/keyboards/tkc/portico/rules.mk @@ -20,7 +20,16 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_ENABLE = no RGB_MATRIX_DRIVER = IS31FL3731 +CIE1931_CURVE = yes + +# project specific files +SRC += keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ + quantum/color.c \ + drivers/issi/is31fl3731.c + +QUANTUM_LIB_SRC += i2c_master.c LAYOUTS = 65_ansi_blocker diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 306f8186e090..e57d061b2088 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -30,6 +30,7 @@ defined(RGB_BACKLIGHT_NEBULA68) || \ defined(RGB_BACKLIGHT_U80_A) || \ defined(RGB_BACKLIGHT_DAWN60) || \ + defined(RGB_BACKLIGHT_PORTICO) || \ defined(RGB_BACKLIGHT_WT60_B) || \ defined(RGB_BACKLIGHT_WT60_BX) || \ defined(RGB_BACKLIGHT_WT60_C) || \ @@ -94,6 +95,8 @@ LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL]; #define BACKLIGHT_LED_COUNT 108 #elif defined(RGB_BACKLIGHT_DAWN60) #define BACKLIGHT_LED_COUNT 84 //64 + 20 +#elif defined(RGB_BACKLIGHT_PORTICO) +#define BACKLIGHT_LED_COUNT 67 //36 + 31 #elif defined(RGB_BACKLIGHT_NEBULA12) #define BACKLIGHT_LED_COUNT 16 #elif defined(RGB_BACKLIGHT_M10_C) @@ -613,6 +616,91 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { {1, C9_15, C8_15, C6_14}, //D15 {1, C9_16, C7_15, C6_15} //D16 }; +#elif defined(RGB_BACKLIGHT_PORTICO) +// This is a 7-bit address, that gets left-shifted and bit 0 +// set to 0 for write, 1 for read (as per I2C protocol) +#define ISSI_ADDR_1 0x74 +#define ISSI_ADDR_2 0x77 + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + { 0, C2_1, C3_1, C4_1 }, + { 0, C1_1, C3_2, C4_2 }, + { 0, C1_2, C2_2, C4_3 }, + { 0, C1_3, C2_3, C3_3 }, + { 0, C1_4, C2_4, C3_4 }, + { 0, C1_5, C2_5, C3_5 }, + { 0, C1_6, C2_6, C3_6 }, + { 0, C1_7, C2_7, C3_7 }, + { 0, C1_8, C2_8, C3_8 }, + { 1, C2_1, C3_1, C4_1 }, + { 1, C1_1, C3_2, C4_2 }, + { 1, C1_2, C2_2, C4_3 }, + { 1, C1_3, C2_3, C3_3 }, + { 1, C1_4, C2_4, C3_4 }, + { 1, C1_5, C2_5, C3_5 }, + + { 0, C9_1, C8_1, C7_1 }, + { 0, C9_2, C8_2, C7_2 }, + { 0, C9_3, C8_3, C7_3 }, + { 0, C9_4, C8_4, C7_4 }, + { 0, C9_5, C8_5, C7_5 }, + { 0, C9_6, C8_6, C7_6 }, + { 0, C9_7, C8_7, C6_6 }, + { 0, C9_8, C7_7, C6_7 }, + { 0, C8_8, C7_8, C6_8 }, + { 1, C9_1, C8_1, C7_1 }, + { 1, C9_2, C8_2, C7_2 }, + { 1, C9_3, C8_3, C7_3 }, + { 1, C9_4, C8_4, C7_4 }, + { 1, C9_5, C8_5, C7_5 }, + { 1, C9_6, C8_6, C7_6 }, + + { 0, C1_9, C3_10, C4_10 }, + { 0, C1_10, C2_10, C4_11 }, + { 0, C1_11, C2_11, C3_11 }, + { 0, C1_12, C2_12, C3_12 }, + { 0, C1_13, C2_13, C3_13 }, + { 0, C1_14, C2_14, C3_14 }, + { 0, C1_15, C2_15, C3_15 }, + { 0, C1_16, C2_16, C3_16 }, + { 1, C1_10, C2_10, C4_11 }, + { 1, C1_11, C2_11, C3_11 }, + { 1, C1_12, C2_12, C3_12 }, + { 1, C1_13, C2_13, C3_13 }, + { 1, C1_14, C2_14, C3_14 }, + { 1, C9_7, C8_7, C6_6 }, + + { 0, C2_9, C3_9, C4_9 }, + { 0, C9_12, C8_12, C7_12 }, + { 0, C9_13, C8_13, C7_13 }, + { 0, C9_14, C8_14, C7_14 }, + { 0, C9_15, C8_15, C6_14 }, + { 0, C9_16, C7_15, C6_15 }, + { 1, C2_9, C3_9, C4_9 }, + { 1, C1_9, C3_10, C4_10 }, + { 1, C9_9, C8_9, C7_9 }, + { 1, C9_10, C8_10, C7_10 }, + { 1, C9_11, C8_11, C7_11 }, + { 1, C9_14, C8_14, C7_14 }, + { 1, C1_15, C2_15, C3_15 }, + { 1, C1_16, C2_16, C3_16 }, + + { 0, C9_9, C8_9, C7_9 }, + { 0, C9_10, C8_10, C7_10 }, + { 0, C9_11, C8_11, C7_11 }, + { 0, C8_16, C7_16, C6_16 }, + { 1, C9_12, C8_12, C7_12 }, + { 1, C9_13, C8_13, C7_13 }, + { 1, C9_15, C8_15, C6_14 }, + { 1, C9_16, C7_15, C6_15 }, + { 1, C8_16, C7_16, C6_16 } +}; #elif defined(RGB_BACKLIGHT_M6_B) // Driver has fixed mapping of index to the red, green and blue LEDs #elif defined(RGB_BACKLIGHT_M10_C) @@ -776,7 +864,8 @@ const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { // LC0..LC17 {112,64}, {100,48}, {84,48}, {68,48}, {52,48}, {36,48}, {64,60}, {44,60}, {24,64}, {108,32}, {92,32}, {76,32}, {60,32}, {44,32}, {28,32}, {255,255}, {10,48}, {4,64}, - // LD0..LD17 + // LD0..LD1762 + {124,32}, {140,32}, {156,32}, {172,32}, {188,32}, {214,32}, {180,48}, {202,48}, {224,48}, {116,48}, {132,48}, {148,48}, {164,48}, {255,255}, {160,60}, {180,64}, {208,64}, {255,255} }; @@ -1156,6 +1245,21 @@ const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { //11 - 20 {234,255}, {222,255}, {213,255}, {197,255}, {180,255}, {167,255}, {152,255}, {147,255}, {128,255}, {101,255} }; +#elif defined(RGB_BACKLIGHT_PORTICO) +const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { + { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, + { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, + { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, + { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, + { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 152, 64 }, { 171, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }, +}; +const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { + { 138, 240 }, { 140, 210 }, { 142, 181 }, { 145, 153 }, { 149, 126 }, { 156, 101 }, { 166, 80 }, { 182, 67 }, { 200, 68 }, { 216, 81 }, { 226, 102 }, { 232, 128 }, { 236, 155 }, { 240, 199 }, { 243, 240 }, //Done through here TM 052421 143PM + { 133, 225 }, { 134, 186 }, { 136, 156 }, { 138, 126 }, { 141, 96 }, { 147, 68 }, { 161, 44 }, { 193, 33 }, { 222, 47 }, { 235, 72 }, { 240, 100 }, { 244, 130 }, { 246, 160 }, { 247, 196 }, { 248, 233 }, //Done through here TM 052421 235PM + { 127, 218 }, { 127, 177 }, { 127, 146 }, { 127, 115 }, { 127, 84 }, { 127, 54 }, { 127, 23 }, { 0, 8 }, { 0, 39 }, { 0, 70 }, { 0, 101 }, { 0, 132 }, { 0, 183 }, { 0, 231 }, + { 121, 215 }, { 119, 164 }, { 117, 134 }, { 114, 104 }, { 109, 76 }, { 98, 50 }, { 71, 34 }, { 37, 41 }, { 22, 65 }, { 15, 93 }, { 11, 122 }, { 8, 162 }, { 7, 205 }, { 6, 233 }, + { 116, 236 }, { 113, 199 }, { 110, 164 }, { 82, 74 }, { 27, 106 }, { 20, 138 }, { 15, 183 }, { 13, 212 }, { 11, 240 } +}; #elif defined(RGB_BACKLIGHT_M50_A) const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { // LA0..LA17 @@ -1198,7 +1302,7 @@ void map_led_to_point( uint8_t index, Point *point ) point->x = pgm_read_byte(addr); point->y = pgm_read_byte(addr+1); -#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || \ +#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_PORTICO) || \ defined(RGB_BACKLIGHT_NK87) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_NEBULA12) || defined(RGB_BACKLIGHT_KW_MEGA) return; #endif @@ -1474,6 +1578,14 @@ const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { { 31+15, 31+5 , 31+4 , 31+3 , 31+2 , 31+1 , 47+9 , 47+10, 47+11, 47+12, 255 ,47+6 , 47+7 , 15+16}, { 31+16, 31+8 , 31+7 , 255 , 255 , 31+6 , 255 , 255 , 255 , 47+13, 47+14, 47+15, 47+16, 47+8 } }; +#elif defined(RGB_BACKLIGHT_PORTICO) +const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 255, 43 }, + { 44, 255, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, + { 58, 59, 60, 255, 255, 255, 61, 255, 255, 255, 62, 63, 64, 65, 66 } +}; #elif defined(RGB_BACKLIGHT_M50_A) // LA15, LA14, LA13, LA12, LA11, LA10, LA9, LB1, LB2, LB3, LB4, LB5, LB6 // LA16, LA6, LA5, LA4, LA3, LA2, LA1, LB9, LB10, LB11, LB12, LB13, LB14 @@ -1546,6 +1658,8 @@ void backlight_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) IS31FL3218_set_color( index, red, green, blue ); #elif defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_KW_MEGA) IS31FL3733_set_color( index, red, green, blue ); +#elif defined (RGB_BACKLIGHT_PORTICO) + IS31FL3731_set_color( index, red, green, blue ); #elif defined(RGB_BACKLIGHT_NK87) // This is done to avoid indicator LEDs being set if (( index != 63+64-1 ) && ( index != 48+64-1 )) { @@ -1574,6 +1688,11 @@ void backlight_set_color_all( uint8_t red, uint8_t green, uint8_t blue ) for (int i = 0; i < BACKLIGHT_LED_COUNT; i++) { IS31FL3733_set_color(i, red, green, blue); } +#elif defined (RGB_BACKLIGHT_PORTICO) + // This is done to avoid indicator LEDs being set + for (int i = 0; i < BACKLIGHT_LED_COUNT; i++) { + IS31FL3731_set_color(i, red, green, blue); + } #elif defined(RGB_BACKLIGHT_NK87) // This is done to avoid indicator LEDs being set for (int i = 0; i < BACKLIGHT_LED_COUNT; i++) { @@ -1639,6 +1758,7 @@ void backlight_timer_disable(void) { TIMSK3 &= ~_BV(OCIE3A); } + #elif defined(RGB_BACKLIGHT_NEBULA12) //STM32, use GPT with TIM3. Enable in halconf.h static void gpt_backlight_timer_task(GPTDriver *gptp); // Timer setup at 200Khz, callback at 10k ticks = 20Hz @@ -1661,6 +1781,7 @@ void backlight_timer_disable(void) { gptStopTimer(&GPTD3); } + #else //STM32, use GPT with TIM4. Enable in halconf.h static void gpt_backlight_timer_task(GPTDriver *gptp); // Timer setup at 200Khz, callback at 10k ticks = 20Hz @@ -2851,6 +2972,8 @@ void backlight_init_drivers(void) ( index == 54+17 ) ); #elif defined(RGB_BACKLIGHT_M10_C) bool enabled = true; +#elif defined(RGB_BACKLIGHT_PORTICO) + bool enabled = true; #endif // This only caches it for later IS31FL3731_set_led_control_register( index, enabled, enabled, enabled ); @@ -3121,5 +3244,3 @@ void backlight_debug_led( bool state ) } } #endif // defined(RGB_DEBUGGING_ONLY) - - From 6ab0593f4497df7051e67a1b1323a664e726c5c4 Mon Sep 17 00:00:00 2001 From: cole smith <38364556+daysgobye@users.noreply.github.com> Date: Mon, 19 Jul 2021 21:04:43 -0700 Subject: [PATCH 016/328] [Keyboard] Boardsource technik (#13111) Co-authored-by: Ryan --- keyboards/boardsource/technik_s/config.h | 121 ++++++++++++++++++ keyboards/boardsource/technik_s/info.json | 58 +++++++++ .../technik_s/keymaps/default/keymap.c | 53 ++++++++ .../technik_s/keymaps/default/readme.md | 1 + .../technik_s/keymaps/via/keymap.c | 53 ++++++++ .../technik_s/keymaps/via/readme.md | 1 + .../technik_s/keymaps/via/rules.mk | 1 + keyboards/boardsource/technik_s/readme.md | 22 ++++ keyboards/boardsource/technik_s/rules.mk | 25 ++++ keyboards/boardsource/technik_s/technik_s.c | 38 ++++++ keyboards/boardsource/technik_s/technik_s.h | 31 +++++ 11 files changed, 404 insertions(+) create mode 100644 keyboards/boardsource/technik_s/config.h create mode 100644 keyboards/boardsource/technik_s/info.json create mode 100644 keyboards/boardsource/technik_s/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/technik_s/keymaps/default/readme.md create mode 100644 keyboards/boardsource/technik_s/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/technik_s/keymaps/via/readme.md create mode 100644 keyboards/boardsource/technik_s/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/technik_s/readme.md create mode 100644 keyboards/boardsource/technik_s/rules.mk create mode 100644 keyboards/boardsource/technik_s/technik_s.c create mode 100644 keyboards/boardsource/technik_s/technik_s.h diff --git a/keyboards/boardsource/technik_s/config.h b/keyboards/boardsource/technik_s/config.h new file mode 100644 index 000000000000..97dec63efb69 --- /dev/null +++ b/keyboards/boardsource/technik_s/config.h @@ -0,0 +1,121 @@ +/* +Copyright 2020 Boardsource + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4273 +#define PRODUCT_ID 0x0083 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Boardsource +#define PRODUCT Technik-S + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* + * 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 {B0, B1, B2, B3} +#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN C6 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 +#ifdef RGBLIGHT_ENABLE +#define RGBLED_NUM 10 // Number of LEDs +#endif + +#define DRIVER_LED_TOTAL 55 + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/technik_s/info.json b/keyboards/boardsource/technik_s/info.json new file mode 100644 index 000000000000..a166c9ae2b39 --- /dev/null +++ b/keyboards/boardsource/technik_s/info.json @@ -0,0 +1,58 @@ +{ + "keyboard_name": "Technik-S", + "url": "", + "maintainer": "Boardsource", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "1", "x": 0, "y": 0 }, + { "label": "2", "x": 1, "y": 0 }, + { "label": "3", "x": 2, "y": 0 }, + { "label": "4", "x": 3, "y": 0 }, + { "label": "5", "x": 4, "y": 0 }, + { "label": "6", "x": 5, "y": 0 }, + { "label": "7", "x": 6, "y": 0 }, + { "label": "8", "x": 7, "y": 0 }, + { "label": "9", "x": 8, "y": 0 }, + { "label": "10", "x": 9, "y": 0 }, + { "label": "11", "x": 10, "y": 0 }, + { "label": "12", "x": 11, "y": 0 }, + { "label": "13", "x": 0, "y": 1, "w": 1.5 }, + { "label": "14", "x": 1.5, "y": 1 }, + { "label": "15", "x": 2.5, "y": 1 }, + { "label": "16", "x": 3.5, "y": 1 }, + { "label": "17", "x": 4.5, "y": 1 }, + { "label": "18", "x": 5.5, "y": 1 }, + { "label": "19", "x": 6.5, "y": 1 }, + { "label": "20", "x": 7.5, "y": 1 }, + { "label": "21", "x": 8.5, "y": 1 }, + { "label": "22", "x": 9.5, "y": 1 }, + { "label": "23", "x": 10.5, "y": 1, "w": 1.5 }, + { "label": "24", "x": 0, "y": 2 }, + { "label": "25", "x": 1, "y": 2 }, + { "label": "26", "x": 2, "y": 2 }, + { "label": "27", "x": 3, "y": 2 }, + { "label": "28", "x": 4, "y": 2 }, + { "label": "29", "x": 5, "y": 2 }, + { "label": "30", "x": 6, "y": 2 }, + { "label": "31", "x": 7, "y": 2 }, + { "label": "32", "x": 8, "y": 2 }, + { "label": "33", "x": 9, "y": 2 }, + { "label": "34", "x": 10, "y": 2 }, + { "label": "35", "x": 11, "y": 2 }, + { "label": "36", "x": 0, "y": 3 }, + { "label": "37", "x": 1, "y": 3 }, + { "label": "38", "x": 2, "y": 3 }, + { "label": "39", "x": 3, "y": 3, "w": 1.5 }, + { "label": "40", "x": 4.5, "y": 3, "w": 1.5 }, + { "label": "41", "x": 6, "y": 3, "w": 1.5 }, + { "label": "42", "x": 7.5, "y": 3, "w": 1.5 }, + { "label": "43", "x": 9, "y": 3 }, + { "label": "44", "x": 10, "y": 3 }, + { "label": "45", "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/boardsource/technik_s/keymaps/default/keymap.c b/keyboards/boardsource/technik_s/keymaps/default/keymap.c new file mode 100644 index 000000000000..89dfaa4ace8c --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2020 Boardsource + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, +}; + +// Readability keycodes +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = 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_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_RAISE] = 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, + RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ), + + [_LOWER] = 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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ) + +}; + diff --git a/keyboards/boardsource/technik_s/keymaps/default/readme.md b/keyboards/boardsource/technik_s/keymaps/default/readme.md new file mode 100644 index 000000000000..0e6753504bf0 --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Technik-S diff --git a/keyboards/boardsource/technik_s/keymaps/via/keymap.c b/keyboards/boardsource/technik_s/keymaps/via/keymap.c new file mode 100644 index 000000000000..89dfaa4ace8c --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2020 Boardsource + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, +}; + +// Readability keycodes +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = 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_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_RAISE] = 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, + RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ), + + [_LOWER] = 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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ) + +}; + diff --git a/keyboards/boardsource/technik_s/keymaps/via/readme.md b/keyboards/boardsource/technik_s/keymaps/via/readme.md new file mode 100644 index 000000000000..54e975a5aa79 --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for Technik-S diff --git a/keyboards/boardsource/technik_s/keymaps/via/rules.mk b/keyboards/boardsource/technik_s/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/boardsource/technik_s/readme.md b/keyboards/boardsource/technik_s/readme.md new file mode 100644 index 000000000000..9bc60d4018a0 --- /dev/null +++ b/keyboards/boardsource/technik_s/readme.md @@ -0,0 +1,22 @@ +# Technik-S + +![Technik-S](https://i.imgur.com/0QLgu5V.jpeg) + +The technik-s is a 40% staggard keyboard that is designed to fit in the same case as the technik-o a 4x12 ortho + +* Keyboard Maintainer: [Boardsource](https://github.com/boardsource) +* Hardware Supported: V1 pcb +* Hardware Availability: [boardsource](https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/technik_s:default + +Flashing example for this keyboard: + + make boardsource/technik_s:default:flash + +Reset keyboard by pushing reset button on back of pcb through access hole. Or hold down top left key while you plug in the usb cable. +Then run this command in your local qmk repo, or flash using qmk toolbox. + +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). diff --git a/keyboards/boardsource/technik_s/rules.mk b/keyboards/boardsource/technik_s/rules.mk new file mode 100644 index 000000000000..293f8de84075 --- /dev/null +++ b/keyboards/boardsource/technik_s/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +LTO_ENABLE = yes diff --git a/keyboards/boardsource/technik_s/technik_s.c b/keyboards/boardsource/technik_s/technik_s.c new file mode 100644 index 000000000000..63c77928aeeb --- /dev/null +++ b/keyboards/boardsource/technik_s/technik_s.c @@ -0,0 +1,38 @@ +/* Copyright 2020 Boardsource + * + * 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 "technik_s.h" +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + {11,12,13,14,15,16,17,18,19,20,21,22}, + {23,24,25,26,27,28,29,30,31,32,33}, + {34,35,36,37,38,39,40,41,42,43,44,45}, + {46,47,48,49,50,51,52,53,54,55} +}, { + {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}, + {10.5, 1}, {9.5, 1}, {8.5, 1}, {7.5, 1}, {6.5, 1}, {5.5, 1}, {4.5, 1}, {3.5, 1}, {2.5, 1}, {1.5, 1}, {0.5, 1}, + {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}, + {11, 3}, {10, 3}, {9, 3}, {8, 3}, {6.5, 3}, {5, 3}, {3.5, 3}, {2, 3}, {1, 3}, {0, 3}, +}, { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 1, 4, 4, 1, 1, 1, 1 + +} }; +#endif + diff --git a/keyboards/boardsource/technik_s/technik_s.h b/keyboards/boardsource/technik_s/technik_s.h new file mode 100644 index 000000000000..97ee9a7f5f94 --- /dev/null +++ b/keyboards/boardsource/technik_s/technik_s.h @@ -0,0 +1,31 @@ +/* Copyright 2020 Boardsource + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ + K12, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ + K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K40, K41, K42, K43, K44, K45 \ + ) { \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ + {K12, KC_NO, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ + {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ + {K36, K37, K38, K39,KC_NO,K40, K41,KC_NO,K42, K43, K44, K45} \ + } + From 17933a884aba358b250dc75278f1ca4fe2833afd Mon Sep 17 00:00:00 2001 From: yiancar Date: Tue, 20 Jul 2021 06:24:40 +0100 Subject: [PATCH 017/328] [Keyboard] mnk1800s initial commit (#13444) --- keyboards/mnk1800s/config.h | 76 ++++++++++++++++++++ keyboards/mnk1800s/info.json | 12 ++++ keyboards/mnk1800s/keymaps/default/keymap.c | 32 +++++++++ keyboards/mnk1800s/keymaps/default/readme.md | 5 ++ keyboards/mnk1800s/keymaps/via/keymap.c | 46 ++++++++++++ keyboards/mnk1800s/keymaps/via/readme.md | 5 ++ keyboards/mnk1800s/keymaps/via/rules.mk | 1 + keyboards/mnk1800s/mnk1800s.c | 16 +++++ keyboards/mnk1800s/mnk1800s.h | 34 +++++++++ keyboards/mnk1800s/readme.md | 32 +++++++++ keyboards/mnk1800s/rules.mk | 25 +++++++ 11 files changed, 284 insertions(+) create mode 100755 keyboards/mnk1800s/config.h create mode 100755 keyboards/mnk1800s/info.json create mode 100644 keyboards/mnk1800s/keymaps/default/keymap.c create mode 100755 keyboards/mnk1800s/keymaps/default/readme.md create mode 100644 keyboards/mnk1800s/keymaps/via/keymap.c create mode 100755 keyboards/mnk1800s/keymaps/via/readme.md create mode 100755 keyboards/mnk1800s/keymaps/via/rules.mk create mode 100755 keyboards/mnk1800s/mnk1800s.c create mode 100644 keyboards/mnk1800s/mnk1800s.h create mode 100755 keyboards/mnk1800s/readme.md create mode 100755 keyboards/mnk1800s/rules.mk diff --git a/keyboards/mnk1800s/config.h b/keyboards/mnk1800s/config.h new file mode 100755 index 000000000000..1c7ec21a29a3 --- /dev/null +++ b/keyboards/mnk1800s/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2021 Yiancar-Designs + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published byß +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x8968 +#define PRODUCT_ID 0x3138 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Yiancar-Designs +#define PRODUCT MNK1800s + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 18 + +#define MATRIX_ROW_PINS { B13, B12, A7, A6, A5 } +#define MATRIX_COL_PINS { B10, B2, B1, B0, B14, B15, A8, A9, A10, B9, B8, B7, B6, B5, B4, B3, A15, A14 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Ensure we jump to bootloader if the RESET keycode was pressed */ +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful 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 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/mnk1800s/info.json b/keyboards/mnk1800s/info.json new file mode 100755 index 000000000000..8d67aea76b72 --- /dev/null +++ b/keyboards/mnk1800s/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "MNK1800s", + "url": "https://yiancar-designs.com", + "maintainer": "Yiancar-Designs", + "width": 19.5, + "height": 5.25, + "layouts": { + "LAYOUT_all": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "y":0}, {"x":18.5, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4.5, "y":1, "w":1.5}, {"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":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1}, {"x":17, "y":1}, {"x":18, "y":1, "w":1.5}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4.5, "y":2, "w":1.75}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"x":11.25, "y":2}, {"x":12.25, "y":2}, {"x":13.25, "y":2}, {"x":14.25, "y":2}, {"x":15.25, "y":2}, {"x":16.25, "y":2}, {"x":17.25, "y":2, "w":2.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":5.5, "y":3, "w":1.25}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3}, {"x":14.75, "y":3}, {"x":15.75, "y":3}, {"x":16.75, "y":3, "w":1.75}, {"x":18.5, "y":3}, {"x":4.25, "y":3.25}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":6.5, "y":4, "w":1.5}, {"x":8, "y":4, "w":1.5}, {"x":9.5, "y":4, "w":7}, {"x":16.5, "y":4, "w":1.5}, {"x":18, "y":4, "w":1.5}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}] + } + } +} diff --git a/keyboards/mnk1800s/keymaps/default/keymap.c b/keyboards/mnk1800s/keymaps/default/keymap.c new file mode 100644 index 000000000000..24aa49ba84ef --- /dev/null +++ b/keyboards/mnk1800s/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2021 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, + KC_P7, KC_P8, KC_P9, KC_PPLS, 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_P4, KC_P5, KC_P6, KC_PENT, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP, 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_P0, KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_MENU), + +[1] = LAYOUT_all( /* FN */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, 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, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, 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_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/mnk1800s/keymaps/default/readme.md b/keyboards/mnk1800s/keymaps/default/readme.md new file mode 100755 index 000000000000..8d0f371ca3d3 --- /dev/null +++ b/keyboards/mnk1800s/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# The default keymap for MNK1800s. VIA support disabled. + +![Layer 0](https://i.imgur.com/7fk7pg6.png) + +![Layer 1](https://i.imgur.com/SLKK1Oa.png) diff --git a/keyboards/mnk1800s/keymaps/via/keymap.c b/keyboards/mnk1800s/keymaps/via/keymap.c new file mode 100644 index 000000000000..dba005494bd6 --- /dev/null +++ b/keyboards/mnk1800s/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2021 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, + KC_P7, KC_P8, KC_P9, KC_PPLS, 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_P4, KC_P5, KC_P6, KC_PENT, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP, 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_P0, KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_MENU), + +[1] = LAYOUT_all( /* FN */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, 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, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, 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_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[2] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/mnk1800s/keymaps/via/readme.md b/keyboards/mnk1800s/keymaps/via/readme.md new file mode 100755 index 000000000000..f4f03694cb50 --- /dev/null +++ b/keyboards/mnk1800s/keymaps/via/readme.md @@ -0,0 +1,5 @@ +# The default keymap for MNK1800s. VIA support enabled. + +![Layer 0](https://i.imgur.com/7fk7pg6.png) + +![Layer 1](https://i.imgur.com/SLKK1Oa.png) diff --git a/keyboards/mnk1800s/keymaps/via/rules.mk b/keyboards/mnk1800s/keymaps/via/rules.mk new file mode 100755 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/mnk1800s/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mnk1800s/mnk1800s.c b/keyboards/mnk1800s/mnk1800s.c new file mode 100755 index 000000000000..f7fcd20c2b82 --- /dev/null +++ b/keyboards/mnk1800s/mnk1800s.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "mnk1800s.h" diff --git a/keyboards/mnk1800s/mnk1800s.h b/keyboards/mnk1800s/mnk1800s.h new file mode 100644 index 000000000000..71716767b8cc --- /dev/null +++ b/keyboards/mnk1800s/mnk1800s.h @@ -0,0 +1,34 @@ +/* Copyright 2021 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define XXX KC_NO + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, KOG, K0H, K2H, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K48, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, \ + K40, K41, K42, K43, K44, K45, K46, K47, K4A, K4F, K4G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, KOG, K0H }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, XXX, K4A, XXX, XXX, XXX, XXX, K4F, K4G, XXX } \ +} diff --git a/keyboards/mnk1800s/readme.md b/keyboards/mnk1800s/readme.md new file mode 100755 index 000000000000..eb4e1b0ef594 --- /dev/null +++ b/keyboards/mnk1800s/readme.md @@ -0,0 +1,32 @@ +# MNK1800s + +This is a southpaw 65% keyboard. It supports VIA. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A TKL keyboard with STM32F072CB +* Hardware Availability: https://www.monokei.co + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make mnk1800s:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or CLI (`make mnk1800s::flash`) diff --git a/keyboards/mnk1800s/rules.mk b/keyboards/mnk1800s/rules.mk new file mode 100755 index 000000000000..3067704c5034 --- /dev/null +++ b/keyboards/mnk1800s/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F072 + +# Do not put the microcontroller into power saving mode +# when we get USB suspend event. We want it to keep updating +# backlight effects. +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in From 35ee990bd0293efbd5746671f1e58cec262a066b Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 19 Jul 2021 22:25:46 -0700 Subject: [PATCH 018/328] [Keyboard] fix LED issue BOCC keyboard (#13175) Co-authored-by: Michael Wamsley --- keyboards/dztech/bocc/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/dztech/bocc/config.h b/keyboards/dztech/bocc/config.h index e0effdd7b837..95362b01fc3a 100644 --- a/keyboards/dztech/bocc/config.h +++ b/keyboards/dztech/bocc/config.h @@ -51,7 +51,7 @@ #define RGB_DI_PIN E2 #ifdef RGB_DI_PIN # define RGBLIGHT_ANIMATIONS -# define RGBLED_NUM 16 +# define RGBLED_NUM 20 # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 From 125691558398c4bfff93b457147b2802365cbd3f Mon Sep 17 00:00:00 2001 From: Uy Bui Date: Tue, 20 Jul 2021 14:26:26 +0900 Subject: [PATCH 019/328] [Keyboard] Add we27 numpad (#13137) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/wekey/we27/config.h | 219 ++++++++++++++++++ keyboards/wekey/we27/encoder_actions.c | 57 +++++ keyboards/wekey/we27/encoder_actions.h | 21 ++ keyboards/wekey/we27/info.json | 29 +++ keyboards/wekey/we27/keymaps/default/keymap.c | 52 +++++ .../wekey/we27/keymaps/default/readme.md | 1 + keyboards/wekey/we27/keymaps/via/keymap.c | 52 +++++ keyboards/wekey/we27/keymaps/via/readme.md | 1 + keyboards/wekey/we27/keymaps/via/rules.mk | 2 + keyboards/wekey/we27/readme.md | 19 ++ keyboards/wekey/we27/rgb_matrix_kb.inc | 27 +++ keyboards/wekey/we27/rules.mk | 32 +++ keyboards/wekey/we27/we27.c | 58 +++++ keyboards/wekey/we27/we27.h | 53 +++++ 14 files changed, 623 insertions(+) create mode 100644 keyboards/wekey/we27/config.h create mode 100644 keyboards/wekey/we27/encoder_actions.c create mode 100644 keyboards/wekey/we27/encoder_actions.h create mode 100644 keyboards/wekey/we27/info.json create mode 100644 keyboards/wekey/we27/keymaps/default/keymap.c create mode 100644 keyboards/wekey/we27/keymaps/default/readme.md create mode 100644 keyboards/wekey/we27/keymaps/via/keymap.c create mode 100644 keyboards/wekey/we27/keymaps/via/readme.md create mode 100644 keyboards/wekey/we27/keymaps/via/rules.mk create mode 100644 keyboards/wekey/we27/readme.md create mode 100644 keyboards/wekey/we27/rgb_matrix_kb.inc create mode 100644 keyboards/wekey/we27/rules.mk create mode 100644 keyboards/wekey/we27/we27.c create mode 100644 keyboards/wekey/we27/we27.h diff --git a/keyboards/wekey/we27/config.h b/keyboards/wekey/we27/config.h new file mode 100644 index 000000000000..332b476a4df6 --- /dev/null +++ b/keyboards/wekey/we27/config.h @@ -0,0 +1,219 @@ +/* +Copyright 2021 @wekey + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5559 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER @wekey +#define PRODUCT We27 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 5 + +/* + * 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 { F1, D7, B4, B5, B6, F6 } +#define MATRIX_COL_PINS { F4, F5, C7, D6, D4 } +#define UNUSED_PINS + +/* 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 + +#ifdef RGB_MATRIX_ENABLE +// The pin connected to the data pin of the LEDs +#define RGB_DI_PIN C6 +// The number of LEDs connected +#define DRIVER_LED_TOTAL 27 + +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +#define RGB_MATRIX_STARTUP_HUE 108 // Sets the default hue value, if none has been set +#define RGB_MATRIX_STARTUP_SAT 255 // Sets the default saturation value, if none has been set +#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set +#define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR // Sets the default mode, if none has been set + +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_BREATHING +#define DISABLE_RGB_MATRIX_BAND_SAT // * +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +// #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // * +#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +#define DISABLE_RGB_MATRIX_DUAL_BEACON +#define DISABLE_RGB_MATRIX_RAINBOW_BEACON +#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define DISABLE_RGB_MATRIX_HUE_BREATHING +#define DISABLE_RGB_MATRIX_HUE_PENDULUM +#define DISABLE_RGB_MATRIX_HUE_WAVE +#define DISABLE_RGB_MATRIX_TYPING_HEATMAP +#define DISABLE_RGB_MATRIX_DIGITAL_RAIN +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define DISABLE_RGB_MATRIX_SPLASH +#define DISABLE_RGB_MATRIX_MULTISPLASH +#define DISABLE_RGB_MATRIX_SOLID_SPLASH +#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#endif + +#ifdef ENCODER_ENABLE +#define ENCODERS_PAD_A { D3 } +#define ENCODERS_PAD_B { D2 } +#define ENCODER_RESOLUTION 2 + +#define ENCODERS 1 +#define ENCODERS_CW_KEY { { 4, 5 } } +#define ENCODERS_CCW_KEY { { 4, 3 } } +#endif + +//#define LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/wekey/we27/encoder_actions.c b/keyboards/wekey/we27/encoder_actions.c new file mode 100644 index 000000000000..0f32ac2723ad --- /dev/null +++ b/keyboards/wekey/we27/encoder_actions.c @@ -0,0 +1,57 @@ +/* Copyright 2020 Neil Brian Ramirez + * Copyright 2021 drashna jael're (@drashna) + * Copyright 2021 uybv + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "encoder_actions.h" + +#ifdef ENCODER_ENABLE + +# ifdef ENCODERS +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; +static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; +# endif + +void encoder_action_unregister(void) { +# ifdef ENCODERS + for (int index = 0; index < ENCODERS; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t) { + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1) + }; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +# endif +} + +void encoder_action_register(uint8_t index, bool clockwise) { +# ifdef ENCODERS + keyevent_t encoder_event = (keyevent_t) { + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1) + }; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); +# endif +} + +#endif diff --git a/keyboards/wekey/we27/encoder_actions.h b/keyboards/wekey/we27/encoder_actions.h new file mode 100644 index 000000000000..2484af52ae18 --- /dev/null +++ b/keyboards/wekey/we27/encoder_actions.h @@ -0,0 +1,21 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +void encoder_action_unregister(void); + +void encoder_action_register(uint8_t index, bool clockwise); diff --git a/keyboards/wekey/we27/info.json b/keyboards/wekey/we27/info.json new file mode 100644 index 000000000000..e83f53b444f2 --- /dev/null +++ b/keyboards/wekey/we27/info.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "we27", + "url": "", + "maintainer": "@wekey.dev", + "width": 5, + "height": 6.25, + "layouts": { + "LAYOUT_numpad_6x5": { + "layout": [ + {"label":"ESC", "x":0, "y":0.75}, {"label":"PRTSC", "x":1, "y":0.75}, {"label":"F5", "x":2, "y":0.75}, {"label":"F11", "x":3, "y":0.75}, + {"label":"NLCK", "x":0, "y":2.25}, {"label":"DEL", "x":1, "y":2.25}, {"label":"/", "x":2, "y":2.25}, {"label":"*", "x":3, "y":2.25}, {"label":"-", "x":4, "y":2.25}, + {"label":"HOME", "x":0, "y":3.25}, {"label":"7", "x":1, "y":3.25}, {"label":"8", "x":2, "y":3.25}, {"label":"9", "x":3, "y":3.25}, + {"label":"END", "x":0, "y":4.25}, {"label":"4", "x":1, "y":4.25}, {"label":"5", "x":2, "y":4.25}, {"label":"6", "x":3, "y":4.25}, {"label":"+", "x":4, "y":3.25, "h":2}, + {"label":"ANY", "x":0, "y":5.25}, {"label":"1", "x":1, "y":5.25}, {"label":"2", "x":2, "y":5.25}, {"label":"3", "x":3, "y":5.25}, + {"label":"FN", "x":0, "y":6.25}, {"label":"0", "x":1, "y":6.25, "w":2}, {"label":".", "x":3, "y":6.25}, {"label":"ENTER", "x":4, "y":5.25, "h":2} + ] + }, + "LAYOUT_numpad_6x5_encoder": { + "layout": [ + {"label":"ESC", "x":0, "y":0.75}, {"label":"PRTSC", "x":1, "y":0.75}, {"label":"F5", "x":2, "y":0.75}, {"label":"F11", "x":3, "y":0.75}, {"label":"MUTE", "x":4, "y":0.75}, {"label":"VOLD", "x":3.75, "y":0, "w":0.75, "h":0.75}, {"label":"VOLU", "x":4.5, "y":0, "w":0.75, "h":0.75}, + {"label":"NLCK", "x":0, "y":2.25}, {"label":"DEL", "x":1, "y":2.25}, {"label":"/", "x":2, "y":2.25}, {"label":"*", "x":3, "y":2.25}, {"label":"-", "x":4, "y":2.25}, + {"label":"HOME", "x":0, "y":3.25}, {"label":"7", "x":1, "y":3.25}, {"label":"8", "x":2, "y":3.25}, {"label":"9", "x":3, "y":3.25}, + {"label":"END", "x":0, "y":4.25}, {"label":"4", "x":1, "y":4.25}, {"label":"5", "x":2, "y":4.25}, {"label":"6", "x":3, "y":4.25}, {"label":"+", "x":4, "y":3.25, "h":2}, + {"label":"ANY", "x":0, "y":5.25}, {"label":"1", "x":1, "y":5.25}, {"label":"2", "x":2, "y":5.25}, {"label":"3", "x":3, "y":5.25}, + {"label":"FN", "x":0, "y":6.25}, {"label":"0", "x":1, "y":6.25, "w":2}, {"label":".", "x":3, "y":6.25}, {"label":"ENTER", "x":4, "y":5.25, "h":2} + ] + } + } +} diff --git a/keyboards/wekey/we27/keymaps/default/keymap.c b/keyboards/wekey/we27/keymaps/default/keymap.c new file mode 100644 index 000000000000..fdaafa7d82af --- /dev/null +++ b/keyboards/wekey/we27/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 @wekey + * + * 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] = { + /* Base */ + [0] = LAYOUT_numpad_6x5_encoder( + KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_VOLD, KC_VOLU, + KC_NLCK, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, + RGB_MOD, KC_P7 , KC_P8 , KC_P9 , + RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, + RGB_TOG, KC_P1 , KC_P2 , KC_P3 , + MO(1) , KC_P0 , KC_PDOT, KC_PENT + ), + [1] = LAYOUT_numpad_6x5_encoder( + _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + _______, _______, _______, _______, _______, + RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, + _______, _______, _______, _______, + _______, _______, _______, RESET + ), + [2] = LAYOUT_numpad_6x5_encoder( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT_numpad_6x5_encoder( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) +}; diff --git a/keyboards/wekey/we27/keymaps/default/readme.md b/keyboards/wekey/we27/keymaps/default/readme.md new file mode 100644 index 000000000000..8ad307a9c3aa --- /dev/null +++ b/keyboards/wekey/we27/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for we27 diff --git a/keyboards/wekey/we27/keymaps/via/keymap.c b/keyboards/wekey/we27/keymaps/via/keymap.c new file mode 100644 index 000000000000..fdaafa7d82af --- /dev/null +++ b/keyboards/wekey/we27/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 @wekey + * + * 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] = { + /* Base */ + [0] = LAYOUT_numpad_6x5_encoder( + KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_VOLD, KC_VOLU, + KC_NLCK, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, + RGB_MOD, KC_P7 , KC_P8 , KC_P9 , + RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, + RGB_TOG, KC_P1 , KC_P2 , KC_P3 , + MO(1) , KC_P0 , KC_PDOT, KC_PENT + ), + [1] = LAYOUT_numpad_6x5_encoder( + _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + _______, _______, _______, _______, _______, + RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, + _______, _______, _______, _______, + _______, _______, _______, RESET + ), + [2] = LAYOUT_numpad_6x5_encoder( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT_numpad_6x5_encoder( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) +}; diff --git a/keyboards/wekey/we27/keymaps/via/readme.md b/keyboards/wekey/we27/keymaps/via/readme.md new file mode 100644 index 000000000000..8ad307a9c3aa --- /dev/null +++ b/keyboards/wekey/we27/keymaps/via/readme.md @@ -0,0 +1 @@ +# The default keymap for we27 diff --git a/keyboards/wekey/we27/keymaps/via/rules.mk b/keyboards/wekey/we27/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/wekey/we27/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/wekey/we27/readme.md b/keyboards/wekey/we27/readme.md new file mode 100644 index 000000000000..3212f9505f8d --- /dev/null +++ b/keyboards/wekey/we27/readme.md @@ -0,0 +1,19 @@ +# we27 + +![we27](https://i.imgur.com/DvZ3EBah.jpg) + +A customizable 20% hot-swap, RGB numpad and encoder. + +* Keyboard Maintainer: [@wekey](https://github.com/wekey-dev) +* Hardware Supported: WE27 PCB rev1 +* Hardware Availability: custom pcb group buys + +Make example for this keyboard (after setting up your build environment): + + make wekey/we27:default + +Flashing example for this keyboard: + + make wekey/we27: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). diff --git a/keyboards/wekey/we27/rgb_matrix_kb.inc b/keyboards/wekey/we27/rgb_matrix_kb.inc new file mode 100644 index 000000000000..a7eeffbbe935 --- /dev/null +++ b/keyboards/wekey/we27/rgb_matrix_kb.inc @@ -0,0 +1,27 @@ + +//RGB_MATRIX_EFFECT(SOLID_REACTIVE_WIDE2) +RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTIWIDE2) +//RGB_MATRIX_EFFECT(SOLID_REACTIVE_NEXUS2) +//RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTINEXUS2) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +static HSV SOLID_REACTIVE_WIDE_math2(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { + uint16_t effect = tick - dist > 255 || dist > 32 ? 255 : tick - dist; + hsv.v = qadd8(hsv.v, 255 - effect); + return hsv; +} + +static HSV SOLID_REACTIVE_NEXUS_math2(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { + uint16_t effect = tick - dist > 255 || ((dx > 8 || dx < -8) && (dy > 8 || dy < -8)) ? 255 : tick - dist; + hsv.v = qadd8(hsv.v, 255 - effect); + hsv.h = rgb_matrix_config.hsv.h + dy / 4; + return hsv; +} + +bool SOLID_REACTIVE_WIDE2(effect_params_t* params) { return effect_runner_reactive_splash(qsub8(g_last_hit_tracker.count, 1), params, &SOLID_REACTIVE_WIDE_math2); } +bool SOLID_REACTIVE_MULTIWIDE2(effect_params_t* params) { return effect_runner_reactive_splash(0, params, &SOLID_REACTIVE_WIDE_math2); } +bool SOLID_REACTIVE_NEXUS2(effect_params_t* params) { return effect_runner_reactive_splash(qsub8(g_last_hit_tracker.count, 1), params, &SOLID_REACTIVE_NEXUS_math2); } +bool SOLID_REACTIVE_MULTINEXUS2(effect_params_t* params) { return effect_runner_reactive_splash(0, params, &SOLID_REACTIVE_NEXUS_math2); } + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/wekey/we27/rules.mk b/keyboards/wekey/we27/rules.mk new file mode 100644 index 000000000000..f510969bf677 --- /dev/null +++ b/keyboards/wekey/we27/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = WS2812 + +DEBOUNCE_TYPE = sym_defer_pk +RGB_MATRIX_CUSTOM_KB = yes + +SRC += encoder_actions.c + +LAYOUTS = numpad_6x5 diff --git a/keyboards/wekey/we27/we27.c b/keyboards/wekey/we27/we27.c new file mode 100644 index 000000000000..2765e6f3bd1e --- /dev/null +++ b/keyboards/wekey/we27/we27.c @@ -0,0 +1,58 @@ +/* Copyright 2021 @wekey + * + * 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 "we27.h" +#include "encoder_actions.h" + +#ifdef RGB_MATRIX_ENABLE + +#define __ NO_LED + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4 }, + { 9, 8, 7, 6, 5 }, + { 10, 11, 12, 13, 14 }, + { 18, 17, 16, 15, __ }, + { 19, 20, 21, 22, 23 }, + { 26, 25, __, 24, __ } +}, { + {0,1},{56,1},{112,1},{168,1},{224,1}, + {0,16},{56,16},{112,16},{168,16},{224,16}, + {0,28},{56,28},{112,28},{168,28},{224,28}, + {0,40},{56,40},{112,40},{168,40}, + {0,52},{56,52},{112,52},{168,52},{224,52}, + {0,64},{56,64},{168,64} +}, { + 1, 1, 1, 1, 1, + 1, 1, 4, 4, 4, + 1, 4, 4, 4, 4, + 1, 4, 4, 4, + 1, 4, 4, 4, 4, + 1, 4, 4 +} }; + +#endif + +void matrix_scan_kb(void) { + encoder_action_unregister(); + matrix_scan_user(); +} + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + encoder_action_register(index, clockwise); + return true; +}; diff --git a/keyboards/wekey/we27/we27.h b/keyboards/wekey/we27/we27.h new file mode 100644 index 000000000000..5542a52d2fe3 --- /dev/null +++ b/keyboards/wekey/we27/we27.h @@ -0,0 +1,53 @@ +/* Copyright 2021 @wekey + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_numpad_6x5( \ + K00, K01, K02, K03, K04, \ + K10, K11, K12, K13, K14, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, K24, \ + K40, K41, K42, K43, \ + K50, K51, K53, K44 \ +) { \ + { K00, K01, K02, K03, K04 }, \ + { K10, K11, K12, K13, K14 }, \ + { K20, K21, K22, K23, K24 }, \ + { K30, K31, K32, K33, ___ }, \ + { K40, K41, K42, K43, K44 }, \ + { K50, K51, ___, K53, ___ } \ +} + +#define LAYOUT_numpad_6x5_encoder( \ + K00, K01, K02, K03, K04, K34, K54, \ + K10, K11, K12, K13, K14, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, K24, \ + K40, K41, K42, K43, \ + K50, K51, K53, K44 \ +) { \ + { K00, K01, K02, K03, K04 }, \ + { K10, K11, K12, K13, K14 }, \ + { K20, K21, K22, K23, K24 }, \ + { K30, K31, K32, K33, K34 }, \ + { K40, K41, K42, K43, K44 }, \ + { K50, K51, ___, K53, K54 } \ +} From b887a1b9957664200363fc8feeb2865464c468a2 Mon Sep 17 00:00:00 2001 From: Ryan Boone <70921559+rjboone@users.noreply.github.com> Date: Tue, 20 Jul 2021 00:27:18 -0500 Subject: [PATCH 020/328] [Keyboard] Add q4z keyboard (#13198) Co-authored-by: Ryan --- keyboards/q4z/config.h | 54 ++++++++++++ keyboards/q4z/info.json | 55 ++++++++++++ keyboards/q4z/keymaps/default/config.h | 23 +++++ keyboards/q4z/keymaps/default/keymap.c | 101 ++++++++++++++++++++++ keyboards/q4z/keymaps/default/readme.md | 1 + keyboards/q4z/keymaps/default/rules.mk | 1 + keyboards/q4z/keymaps/rjboone/config.h | 25 ++++++ keyboards/q4z/keymaps/rjboone/keymap.c | 107 ++++++++++++++++++++++++ keyboards/q4z/keymaps/rjboone/readme.md | 1 + keyboards/q4z/keymaps/rjboone/rules.mk | 1 + keyboards/q4z/q4z.c | 16 ++++ keyboards/q4z/q4z.h | 34 ++++++++ keyboards/q4z/readme.md | 20 +++++ keyboards/q4z/rules.mk | 22 +++++ 14 files changed, 461 insertions(+) create mode 100644 keyboards/q4z/config.h create mode 100644 keyboards/q4z/info.json create mode 100644 keyboards/q4z/keymaps/default/config.h create mode 100644 keyboards/q4z/keymaps/default/keymap.c create mode 100644 keyboards/q4z/keymaps/default/readme.md create mode 100644 keyboards/q4z/keymaps/default/rules.mk create mode 100644 keyboards/q4z/keymaps/rjboone/config.h create mode 100644 keyboards/q4z/keymaps/rjboone/keymap.c create mode 100644 keyboards/q4z/keymaps/rjboone/readme.md create mode 100644 keyboards/q4z/keymaps/rjboone/rules.mk create mode 100644 keyboards/q4z/q4z.c create mode 100644 keyboards/q4z/q4z.h create mode 100644 keyboards/q4z/readme.md create mode 100644 keyboards/q4z/rules.mk diff --git a/keyboards/q4z/config.h b/keyboards/q4z/config.h new file mode 100644 index 000000000000..8a591a9a8989 --- /dev/null +++ b/keyboards/q4z/config.h @@ -0,0 +1,54 @@ +/* Copyright 2021 rjboone + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x0001 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER drmmr +#define PRODUCT q4z keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 10 + +/* + * 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 { F4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { D1, D0, D4, B6, B2, B3, B1, F7, F6, F5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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/q4z/info.json b/keyboards/q4z/info.json new file mode 100644 index 000000000000..5abab4db9808 --- /dev/null +++ b/keyboards/q4z/info.json @@ -0,0 +1,55 @@ +{ + "keyboard_name": "q4z", + "url": "", + "maintainer": "rjboone", + "width": 10.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (F4,D1)", "x":0.5, "y":0}, + {"label":"K01 (F4,D0)", "x":1.5, "y":0}, + {"label":"K02 (F4,D4)", "x":2.5, "y":0}, + {"label":"K03 (F4,B6)", "x":3.5, "y":0}, + {"label":"K04 (F4,B2)", "x":4.5, "y":0}, + {"label":"K10 (C6,D1)", "x":0, "y":1}, + {"label":"K11 (C6,D0)", "x":1, "y":1}, + {"label":"K12 (C6,D4)", "x":2, "y":1}, + {"label":"K13 (C6,B6)", "x":3, "y":1}, + {"label":"K14 (C6,B2)", "x":4, "y":1}, + {"label":"K15 (C6,B3)", "x":5, "y":1}, + {"label":"K16 (C6,B1)", "x":6, "y":1}, + {"label":"K17 (C6,F7)", "x":7, "y":1}, + {"label":"K18 (C6,F6)", "x":8, "y":1}, + {"label":"K19 (C6,F5)", "x":9, "y":1, "w":1.25}, + {"label":"K20 (D7,D1)", "x":0, "y":2, "w":1.25}, + {"label":"K21 (D7,D0)", "x":1.25, "y":2}, + {"label":"K22 (D7,D4)", "x":2.25, "y":2}, + {"label":"K23 (D7,B6)", "x":3.25, "y":2}, + {"label":"K24 (D7,B2)", "x":4.25, "y":2}, + {"label":"K25 (D7,B3)", "x":5.25, "y":2}, + {"label":"K26 (D7,B1)", "x":6.25, "y":2}, + {"label":"K27 (D7,F7)", "x":7.25, "y":2}, + {"label":"K28 (D7,F6)", "x":8.25, "y":2}, + {"label":"K29 (D7,F5)", "x":9.25, "y":2}, + {"label":"K30 (E6,D1)", "x":0, "y":3, "w":1.75}, + {"label":"K31 (E6,D0)", "x":1.75, "y":3}, + {"label":"K32 (E6,D4)", "x":2.75, "y":3}, + {"label":"K33 (E6,B6)", "x":3.75, "y":3}, + {"label":"K34 (E6,B2)", "x":4.75, "y":3}, + {"label":"K35 (E6,B3)", "x":5.75, "y":3}, + {"label":"K36 (E6,B1)", "x":6.75, "y":3}, + {"label":"K37 (E6,F7)", "x":7.75, "y":3}, + {"label":"K38 (E6,F6)", "x":8.75, "y":3, "w":1.5}, + {"label":"K40 (B4,D1)", "x":0, "y":4}, + {"label":"K41 (B4,D0)", "x":1, "y":4}, + {"label":"K42 (B4,D4)", "x":2, "y":4}, + {"label":"K43 (B4,B6)", "x":3, "y":4, "w":2.25}, + {"label":"K44 (B4,B2)", "x":5.25, "y":4, "w":2}, + {"label":"K45 (B4,B3)", "x":7.25, "y":4}, + {"label":"K46 (B4,B1)", "x":8.25, "y":4}, + {"label":"K47 (B4,F7)", "x":9.25, "y":4} + ] + } + } +} diff --git a/keyboards/q4z/keymaps/default/config.h b/keyboards/q4z/keymaps/default/config.h new file mode 100644 index 000000000000..ac3a08778dbf --- /dev/null +++ b/keyboards/q4z/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* Copyright 2021 rjboone + * + * 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 IGNORE_MOD_TAP_INTERRUPT //helps with homerow mods + +#ifdef COMBO_ENABLE +#define COMBO_COUNT 5 +#define COMBO_TERM 200 +#endif diff --git a/keyboards/q4z/keymaps/default/keymap.c b/keyboards/q4z/keymaps/default/keymap.c new file mode 100644 index 000000000000..21d0c4ffcb4e --- /dev/null +++ b/keyboards/q4z/keymaps/default/keymap.c @@ -0,0 +1,101 @@ +/* Copyright 2021 rjboone + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _NUM_SYM, + _NAV, + _GAME +}; + +enum combo_events { + COMBO_BSPC, + COMBO_NUMBAK, + COMBO_TAB, + COMBO_ESC, + COMBO_DEL, +}; + +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, + 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_SF, KC_G, KC_H, KC_SJ, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, + KC_LCTL, KC_LALT, KC_LGUI, LT(_NUM_SYM, KC_ENT), KC_SPC, MO(_NAV), TG(_GAME), KC_SLSH + ), + + [_NUM_SYM] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_BSLS + ), + + [_NAV] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_GAME] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_ENT, KC_NO, TG(_GAME), KC_NO + ), +}; + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END}; +const uint16_t PROGMEM combo_tab[] = {KC_A, KC_S, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), + [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL), + +}; +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + +#ifdef COMBO_ENABLE + switch(get_highest_layer(state)) { + case _GAME: + combo_disable(); + break; + default: + combo_enable(); + break; + } +#endif // COMBO_ENABLE + + return state; +} diff --git a/keyboards/q4z/keymaps/default/readme.md b/keyboards/q4z/keymaps/default/readme.md new file mode 100644 index 000000000000..28186f64d868 --- /dev/null +++ b/keyboards/q4z/keymaps/default/readme.md @@ -0,0 +1 @@ +# Default Q4Z Keymap diff --git a/keyboards/q4z/keymaps/default/rules.mk b/keyboards/q4z/keymaps/default/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/q4z/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/q4z/keymaps/rjboone/config.h b/keyboards/q4z/keymaps/rjboone/config.h new file mode 100644 index 000000000000..9921a1917883 --- /dev/null +++ b/keyboards/q4z/keymaps/rjboone/config.h @@ -0,0 +1,25 @@ +/* Copyright 2021 rjboone + * + * 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 IGNORE_MOD_TAP_INTERRUPT //helps with homerow mods + +#undef TAPPING_TERM +#define TAPPING_TERM 300 + +#undef COMBO_COUNT +#define COMBO_COUNT 5 +#define COMBO_TERM 50 diff --git a/keyboards/q4z/keymaps/rjboone/keymap.c b/keyboards/q4z/keymaps/rjboone/keymap.c new file mode 100644 index 000000000000..aa8a77dae679 --- /dev/null +++ b/keyboards/q4z/keymaps/rjboone/keymap.c @@ -0,0 +1,107 @@ +/* Copyright 2021 rjboone + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _NUM_SYM, + _NAV, + _GAME +}; + +enum combo_events { + COMBO_BSPC, + COMBO_NUMBAK, + COMBO_TAB, + COMBO_ESC, + COMBO_DEL, +}; + +#define KC_GA LGUI_T(KC_A) +#define KC_AS LALT_T(KC_S) +#define KC_CD LCTL_T(KC_D) +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) +#define KC_CK RCTL_T(KC_K) +#define KC_AL RALT_T(KC_L) +#define KC_GSCLN RGUI_T(KC_SCLN) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, + 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_SF, KC_G, KC_H, KC_SJ, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, + KC_LCTL, KC_LALT, KC_LGUI, LT(_NUM_SYM, KC_ENT), KC_SPC, MO(_NAV), TG(_GAME), KC_SLSH + ), + + [_NUM_SYM] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_LBRC, KC_RBRC, KC_EQL, KC_TRNS, KC_TRNS, KC_QUOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_BSLS + ), + + [_NAV] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_GAME] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_ENT, KC_NO, TG(_GAME), KC_NO + ), +}; + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END}; +const uint16_t PROGMEM combo_tab[] = {KC_A, KC_S, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), + [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL), + +}; +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + +#ifdef COMBO_ENABLE + switch(get_highest_layer(state)) { + case _GAME: + combo_disable(); + break; + default: + combo_enable(); + break; + } +#endif // COMBO_ENABLE + + return state; +} diff --git a/keyboards/q4z/keymaps/rjboone/readme.md b/keyboards/q4z/keymaps/rjboone/readme.md new file mode 100644 index 000000000000..29f2d31f6ff4 --- /dev/null +++ b/keyboards/q4z/keymaps/rjboone/readme.md @@ -0,0 +1 @@ +# Default Le Chiffre Keymap diff --git a/keyboards/q4z/keymaps/rjboone/rules.mk b/keyboards/q4z/keymaps/rjboone/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/q4z/keymaps/rjboone/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/q4z/q4z.c b/keyboards/q4z/q4z.c new file mode 100644 index 000000000000..537f1f57800d --- /dev/null +++ b/keyboards/q4z/q4z.c @@ -0,0 +1,16 @@ +/* Copyright 2021 rjboone + * + * 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 "q4z.h" diff --git a/keyboards/q4z/q4z.h b/keyboards/q4z/q4z.h new file mode 100644 index 000000000000..465178fdb130 --- /dev/null +++ b/keyboards/q4z/q4z.h @@ -0,0 +1,34 @@ +/* Copyright 2021 rjboone + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K01, K06, K11, K16, K21, \ + K02, K07, K12, K17, K22, K26, K30, K34, K38, K41, \ + K03, K08, K13, K18, K23, K27, K31, K35, K39, K42, \ + K04, K09, K14, K19, K24, K28, K32, K36, K40, \ + K05, K10, K15, K20, K25, K29, K33, K37 \ +) { \ + { K01, K06, K11, K16, K21, XXX, XXX, XXX, XXX, XXX }, \ + { K02, K07, K12, K17, K22, K26, K30, K34, K38, K41 }, \ + { K03, K08, K13, K18, K23, K27, K31, K35, K39, K42 }, \ + { K04, K09, K14, K19, K24, K28, K32, K36, K40, XXX }, \ + { K05, K10, K15, K20, K25, K29, K33, K37, XXX, XXX } \ +} diff --git a/keyboards/q4z/readme.md b/keyboards/q4z/readme.md new file mode 100644 index 000000000000..6b3839a2cb95 --- /dev/null +++ b/keyboards/q4z/readme.md @@ -0,0 +1,20 @@ +# Q4Z + +![Q4Z](https://cdn.shopify.com/s/files/1/0501/7537/7592/products/q4n-6_470x.jpg?v=1623373518) + +Q4Z is a play on everybody's favorite 10.25u layout. With the addition of 5 number keys and a handle, +this little board is ready for whatever a raging gamer can throw it at. + +* Keyboard Maintainer: [Ryan Boone](https://github.com/rjboone) (Drmmr#0004) +* Hardware Supported: Pro Micro or equivalent +* Hardware Availability: This board is available to purchase from [P3D Store](https://p3dstore.com) + +Make example for this keyboard (after setting up your build environment): + + make q4z:default + +Flashing example for this keyboard: + + make q4z: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). diff --git a/keyboards/q4z/rules.mk b/keyboards/q4z/rules.mk new file mode 100644 index 000000000000..5e84c7512383 --- /dev/null +++ b/keyboards/q4z/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 815c17b726918bdb4ebff2877d83bff72d81c443 Mon Sep 17 00:00:00 2001 From: projectcain <71684775+projectcain@users.noreply.github.com> Date: Tue, 20 Jul 2021 00:28:32 -0500 Subject: [PATCH 021/328] [Keyboard] Add vault45 (#13119) * adding my keymap * Update keyboards/projectcain/vault45/keymaps/default/config.h Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/vault45.c Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update readme.md * Update keyboards/projectcain/vault45/keymaps/default/config.h Co-authored-by: Drashna Jaelre * Update keymap.c * Update keyboards/projectcain/vault45/keymaps/default/config.h Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/readme.md Co-authored-by: ridingqwerty * Update info.json * Update keyboards/projectcain/vault45/vault45.c Co-authored-by: ridingqwerty * Update keyboards/projectcain/vault45/readme.md Co-authored-by: Ryan * Update keyboards/projectcain/vault45/readme.md Co-authored-by: Ryan * Update keyboards/projectcain/vault45/readme.md Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: ridingqwerty Co-authored-by: Ryan --- keyboards/projectcain/vault45/config.h | 152 ++++++++++++++++++ keyboards/projectcain/vault45/info.json | 60 +++++++ .../vault45/keymaps/default/config.h | 24 +++ .../vault45/keymaps/default/keymap.c | 59 +++++++ .../vault45/keymaps/default/readme.md | 1 + .../vault45/keymaps/default/rules.mk | 2 + keyboards/projectcain/vault45/readme.md | 21 +++ keyboards/projectcain/vault45/rules.mk | 22 +++ keyboards/projectcain/vault45/vault45.c | 35 ++++ keyboards/projectcain/vault45/vault45.h | 40 +++++ 10 files changed, 416 insertions(+) create mode 100644 keyboards/projectcain/vault45/config.h create mode 100644 keyboards/projectcain/vault45/info.json create mode 100644 keyboards/projectcain/vault45/keymaps/default/config.h create mode 100644 keyboards/projectcain/vault45/keymaps/default/keymap.c create mode 100644 keyboards/projectcain/vault45/keymaps/default/readme.md create mode 100644 keyboards/projectcain/vault45/keymaps/default/rules.mk create mode 100644 keyboards/projectcain/vault45/readme.md create mode 100644 keyboards/projectcain/vault45/rules.mk create mode 100644 keyboards/projectcain/vault45/vault45.c create mode 100644 keyboards/projectcain/vault45/vault45.h diff --git a/keyboards/projectcain/vault45/config.h b/keyboards/projectcain/vault45/config.h new file mode 100644 index 000000000000..2cbf55dd0f8a --- /dev/null +++ b/keyboards/projectcain/vault45/config.h @@ -0,0 +1,152 @@ +/* +Copyright 2021 projectcain + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER projectcain +#define PRODUCT vault45 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 13 + +/* + * 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 { C6, B6, B5, C7 } +#define MATRIX_COL_PINS { B0, D5, D4, D6, D7, B4, D3, F0, F1, F4, F5, F6, F7 } +#define UNUSED_PINS + +/* 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/projectcain/vault45/info.json b/keyboards/projectcain/vault45/info.json new file mode 100644 index 000000000000..a9627895c9b7 --- /dev/null +++ b/keyboards/projectcain/vault45/info.json @@ -0,0 +1,60 @@ +{ + "keyboard_name": "vault 45", + "url": "", + "maintainer": "projectcain", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Tab", "x": 0, "y": 0 }, + { "label": "Q", "x": 1, "y": 0 }, + { "label": "W", "x": 2, "y": 0 }, + { "label": "E", "x": 3, "y": 0 }, + { "label": "R", "x": 4, "y": 0 }, + { "label": "T", "x": 5, "y": 0 }, + { "label": "Y", "x": 6, "y": 0 }, + { "label": "U", "x": 7, "y": 0 }, + { "label": "I", "x": 8, "y": 0 }, + { "label": "O", "x": 9, "y": 0 }, + { "label": "P", "x": 10, "y": 0 }, + { "label": "Back
Space", "x": 11, "y": 0 }, + { "x": 12, "y": 0 }, + { "label": "Caps", "x": 0, "y": 1, "w": 1.25 }, + { "label": "A", "x": 1.25, "y": 1 }, + { "label": "S", "x": 2.25, "y": 1 }, + { "label": "D", "x": 3.25, "y": 1 }, + { "label": "F", "x": 4.25, "y": 1 }, + { "label": "G", "x": 5.25, "y": 1 }, + { "label": "H", "x": 6.25, "y": 1 }, + { "label": "J", "x": 7.25, "y": 1 }, + { "label": "K", "x": 8.25, "y": 1 }, + { "label": "L", "x": 9.25, "y": 1 }, + { "label": ":", "x": 10.25, "y": 1 }, + { "label": "Enter", "x": 11.25, "y": 1, "w": 1.75 }, + { "label": "Shift", "x": 0, "y": 2, "w": 1.75 }, + { "label": "Z", "x": 1.75, "y": 2 }, + { "label": "X", "x": 2.75, "y": 2 }, + { "label": "C", "x": 3.75, "y": 2 }, + { "label": "V", "x": 4.75, "y": 2 }, + { "label": "B", "x": 5.75, "y": 2 }, + { "label": "N", "x": 6.75, "y": 2 }, + { "label": "M", "x": 7.75, "y": 2 }, + { "label": "<", "x": 8.75, "y": 2 }, + { "label": ">", "x": 9.75, "y": 2 }, + { "label": "?", "x": 10.75, "y": 2 }, + { "label": "Shift", "x": 11.75, "y": 2, "w": 1.25 }, + { "label": "Hyper", "x": 0, "y": 3, "w": 1.25 }, + { "label": "Super", "x": 1.25, "y": 3 }, + { "label": "Meta", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 3, "w": 1.25 }, + { "x": 4.75, "y": 3, "w": 1.75 }, + { "x": 6.5, "y": 3, "w": 1.75 }, + { "label": "Meta", "x": 8.25, "y": 3, "w": 1.25 }, + { "label": "Super", "x": 9.5, "y": 3, "w": 1.25 }, + { "label": "Fn2", "x": 10.75, "y": 3 }, + { "label": "Ctrl", "x": 11.75, "y": 3, "w": 1.25 } + ] + } + } +} diff --git a/keyboards/projectcain/vault45/keymaps/default/config.h b/keyboards/projectcain/vault45/keymaps/default/config.h new file mode 100644 index 000000000000..81321715af52 --- /dev/null +++ b/keyboards/projectcain/vault45/keymaps/default/config.h @@ -0,0 +1,24 @@ + /* Copyright 2021 projectcain + * + * 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 ENCODERS_PAD_A { B3, D1 } +#define ENCODERS_PAD_B { B2, D2 } +#define ENCODER_RESOLUTION 2 +#define COMBO_COUNT 2 +#define COMBO_TERM 50 +#define TAPPING_FORCE_HOLD diff --git a/keyboards/projectcain/vault45/keymaps/default/keymap.c b/keyboards/projectcain/vault45/keymaps/default/keymap.c new file mode 100644 index 000000000000..9307370200a8 --- /dev/null +++ b/keyboards/projectcain/vault45/keymaps/default/keymap.c @@ -0,0 +1,59 @@ + /* Copyright 2021 projectcain + * + * 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. + * */ + +#include QMK_KEYBOARD_H +enum layers{ + BASE, + NUM, + SYM, + META +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_F5, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, LT(SYM, KC_ENT), + RCTL_T(S(KC_9)), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, S(KC_0), + LALT(KC_TAB), LALT(KC_TAB), MO(1), SFT_T(KC_BSPC), KC_SPACE, KC_SPACE, MO(2), KC_LGUI, G(KC_TAB) + ), + + [NUM] = LAYOUT( + KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_WBAK, KC_PSLS, KC_7, KC_8, KC_9, KC_PMNS, KC_DEL, RESET, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_WFWD, KC_PAST, KC_4, KC_5, KC_6, KC_PPLS, KC_TRNS, + KC_LBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_PDOT, KC_RBRC, + KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_RCTRL), RALT(KC_F4), RALT(KC_F4) + ), + + [SYM] = LAYOUT( + RGB_TOG, S(KC_GRV), KC_GRV, KC_BSLS, S(KC_BSLS), KC_TRNS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), C(KC_T), KC_TRNS, + KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN), KC_TRNS, + S(KC_LBRC), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_RBRC), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPSLOCK, KC_NUMLOCK, KC_TRNS + ), + +}; + + +enum combos { + KL_SLSH, + JK_MINUS +}; + +const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END}; +const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)), + [JK_MINUS] = COMBO(jk_combo, KC_MINUS) +}; diff --git a/keyboards/projectcain/vault45/keymaps/default/readme.md b/keyboards/projectcain/vault45/keymaps/default/readme.md new file mode 100644 index 000000000000..ce333c3b81c9 --- /dev/null +++ b/keyboards/projectcain/vault45/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for vault45 diff --git a/keyboards/projectcain/vault45/keymaps/default/rules.mk b/keyboards/projectcain/vault45/keymaps/default/rules.mk new file mode 100644 index 000000000000..dca6713d4fa6 --- /dev/null +++ b/keyboards/projectcain/vault45/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +ENCODER_ENABLE = yes +COMBO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/projectcain/vault45/readme.md b/keyboards/projectcain/vault45/readme.md new file mode 100644 index 000000000000..a84feaf22415 --- /dev/null +++ b/keyboards/projectcain/vault45/readme.md @@ -0,0 +1,21 @@ +# vault45 + +![vault45](https://i.imgur.com/SYrsbQEh.jpeg) + +This is a 40% HHKB-style keyboard inspired by the JD45 with updated bottom row options and rotary encoders. + +* Keyboard Maintainer: [projectcain](https://github.com/projectcain) +* Hardware Supported: Vault 45 PCB +* Hardware Availability: mechvault.net + +To reset the keyboard into bootloader mode, short the two pads labeled "Reset" on the left side of the pcb + +Make example for this keyboard (after setting up your build environment): + + make projectcain/vault45:default + +Flashing example for this keyboard: + + make projectcain/vault45: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). diff --git a/keyboards/projectcain/vault45/rules.mk b/keyboards/projectcain/vault45/rules.mk new file mode 100644 index 000000000000..5c0d8f307c54 --- /dev/null +++ b/keyboards/projectcain/vault45/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/projectcain/vault45/vault45.c b/keyboards/projectcain/vault45/vault45.c new file mode 100644 index 000000000000..fa82335492d7 --- /dev/null +++ b/keyboards/projectcain/vault45/vault45.c @@ -0,0 +1,35 @@ +/* Copyright 2021 projectcain + * + * 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 "vault45.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + return true; +} diff --git a/keyboards/projectcain/vault45/vault45.h b/keyboards/projectcain/vault45/vault45.h new file mode 100644 index 000000000000..031de0003a41 --- /dev/null +++ b/keyboards/projectcain/vault45/vault45.h @@ -0,0 +1,40 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K112, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K301, K302, K304, K305, K306, K307, K308, K310, K311 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, KC_NO, K112 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 }, \ + { KC_NO, K301, K302, KC_NO, K304, K305, K306, K307, K308, KC_NO, K310, K311, KC_NO }, \ +} From 7ea1b97785da1bdf16b5f144b50121f1a0adfa2b Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 20 Jul 2021 23:04:36 +1000 Subject: [PATCH 022/328] Fix CRLF in xbows/knight:via config.h (#13614) --- keyboards/xbows/knight/keymaps/via/config.h | 128 ++++++++++---------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/keyboards/xbows/knight/keymaps/via/config.h b/keyboards/xbows/knight/keymaps/via/config.h index 4fafee0a94c2..aa5e4c1cd206 100644 --- a/keyboards/xbows/knight/keymaps/via/config.h +++ b/keyboards/xbows/knight/keymaps/via/config.h @@ -1,64 +1,64 @@ -/* Copyright 2021 Shulin Huang - * - * 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 - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set -# define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue -# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes -# define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes -//# define DISABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation -# define DISABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right -# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right -# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation -# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness -# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation -# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness -//# define DISABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient -//# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right -# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom -//# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in -# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in -# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right -# define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard -# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard -# define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard -//# define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard -# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard -# define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue -# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation -//# define DISABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time, then shifts back -# define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left -//# define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right - -# define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation -# define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! - -//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out -//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out -//# define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out -# define DISABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out -# define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out -//# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out - - -#endif +/* Copyright 2021 Shulin Huang + * + * 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 + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set +# define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue +# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes +# define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes +//# define DISABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +# define DISABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +//# define DISABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +//# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +//# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right +# define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +# define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +//# define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard +# define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue +# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +//# define DISABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time, then shifts back +# define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left +//# define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right + +# define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +# define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! + +//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out +//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +//# define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +# define DISABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +//# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out + + +#endif From 3486870ee42a65055d8f60a2f371bd84aa924f4f Mon Sep 17 00:00:00 2001 From: Carl-Fredrik Arvidson Date: Tue, 20 Jul 2021 18:16:17 +0200 Subject: [PATCH 023/328] Adds Swedish Mac ISO and ANSI keymaps (#13055) * Adds Swedish Mac ISO and ANSI keymaps * Replaces NBSP with space * Adds missing keys * Remove duplicates * Remove duplicates * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Change case and remove whitespace * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Fix uppercase * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Add specific files for Swedish Pro * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Remove whitespace Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan Co-authored-by: Ryan --- .../keymap_extras/keymap_swedish_osx_ansi.h | 240 ++++++++++++++++++ .../keymap_extras/keymap_swedish_osx_iso.h | 239 +++++++++++++++++ .../keymap_swedish_pro_osx_ansi.h | 240 ++++++++++++++++++ .../keymap_swedish_pro_osx_iso.h | 239 +++++++++++++++++ 4 files changed, 958 insertions(+) create mode 100644 quantum/keymap_extras/keymap_swedish_osx_ansi.h create mode 100644 quantum/keymap_extras/keymap_swedish_osx_iso.h create mode 100644 quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h create mode 100644 quantum/keymap_extras/keymap_swedish_pro_osx_iso.h diff --git a/quantum/keymap_extras/keymap_swedish_osx_ansi.h b/quantum/keymap_extras/keymap_swedish_osx_ansi.h new file mode 100644 index 000000000000..0d0426f866ad --- /dev/null +++ b/quantum/keymap_extras/keymap_swedish_osx_ansi.h @@ -0,0 +1,240 @@ +/* Copyright 2021 + * + * 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 "keymap.h" + +// clang-format off + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ < │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ ' │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_LABK KC_GRV // < +#define SE_1 KC_1 // 1 +#define SE_2 KC_2 // 2 +#define SE_3 KC_3 // 3 +#define SE_4 KC_4 // 4 +#define SE_5 KC_5 // 5 +#define SE_6 KC_6 // 6 +#define SE_7 KC_7 // 7 +#define SE_8 KC_8 // 8 +#define SE_9 KC_9 // 9 +#define SE_0 KC_0 // 0 +#define SE_PLUS KC_MINS // + +#define SE_ACUT KC_EQL // ´ (dead) +// Row 2 +#define SE_Q KC_Q // Q +#define SE_W KC_W // W +#define SE_E KC_E // E +#define SE_R KC_R // R +#define SE_T KC_T // T +#define SE_Y KC_Y // Y +#define SE_U KC_U // U +#define SE_I KC_I // I +#define SE_O KC_O // O +#define SE_P KC_P // P +#define SE_ARNG KC_LBRC // Å +#define SE_DIAE KC_RBRC // ¨ (dead) +#define SE_QUOT KC_NUHS // ' +// Row 3 +#define SE_A KC_A // A +#define SE_S KC_S // S +#define SE_D KC_D // D +#define SE_F KC_F // F +#define SE_G KC_G // G +#define SE_H KC_H // H +#define SE_J KC_J // J +#define SE_K KC_K // K +#define SE_L KC_L // L +#define SE_ODIA KC_SCLN // Ö +#define SE_ADIA KC_QUOT // Ä +// Row 4 +#define SE_Z KC_Z // Z +#define SE_X KC_X // X +#define SE_C KC_C // C +#define SE_V KC_V // V +#define SE_B KC_B // B +#define SE_N KC_N // N +#define SE_M KC_M // M +#define SE_COMM KC_COMM // , +#define SE_DOT KC_DOT // . +#define SE_MINS KC_SLSH // - + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ > │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ * │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ │ │ │ │ │ │ │ ; │ : │ _ │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_RABK S(SE_LABK) // > +#define SE_EXLM S(SE_1) // ! +#define SE_DQUO S(SE_2) // " +#define SE_HASH S(SE_3) // # +#define SE_EURO S(SE_4) // € +#define SE_PERC S(SE_5) // % +#define SE_AMPR S(SE_6) // & +#define SE_SLSH S(SE_7) // / +#define SE_LPRN S(SE_8) // ( +#define SE_RPRN S(SE_9) // ) +#define SE_EQL S(SE_0) // = +#define SE_QUES S(SE_PLUS) // ? +#define SE_GRV S(SE_ACUT) // ` +// Row 2 +#define SE_CIRC S(SE_DIAE) // ^ (dead) +#define SE_ASTR S(SE_QUOT) // * +// Row 4 +#define SE_SCLN S(SE_COMM) // ; +#define SE_COLN S(SE_DOT) // : +#define SE_UNDS S(SE_MINS) // _ + +/* Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ≤ │ © │ ™ │ £ │ $ │ ∞ │ § │ | │ [ │ ] │ ≈ │ ± │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ @ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ ÷ │ │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + * + */ +// Row 1 +#define SE_LTEQ A(SE_LABK) // ≤ +#define SE_COPY A(SE_1) // © +#define SE_TM A(SE_2) // ™ +#define SE_PND A(SE_3) // £ +#define SE_DLR A(SE_4) // $ +#define SE_INFN A(SE_5) // ∞ +#define SE_SECT A(SE_6) // § +#define SE_PIPE A(SE_7) // | +#define SE_LBRC A(SE_8) // [ +#define SE_RBRC A(SE_9) // ] +#define SE_AEQL A(SE_0) // ≈ +#define SE_PLMN A(SE_PLUS) // ± +// Row 2 +#define SE_BULT A(SE_Q) // • +#define SE_OMEG A(SE_W) // Ω +#define SE_EACU A(SE_E) // É +#define SE_REGD A(SE_R) // ® +#define SE_DAGG A(SE_T) // † +#define SE_MICR A(SE_Y) // µ +#define SE_UDIA A(SE_U) // Ü +#define SE_DLSI A(SE_I) // ı +#define SE_OE A(SE_O) // Œ +#define SE_PI A(SE_P) // π +#define SE_DOTA A(SE_ARNG) // ˙ +#define SE_TILD A(SE_DIAE) // ~ (dead) +#define SE_AT A(SE_QUOT) // @ +// Row 3 +#define SE_APPL A(SE_A) //  (Apple logo) +#define SE_SS A(SE_S) // ß +#define SE_PDIF A(SE_D) // ∂ +#define SE_FHK A(SE_F) // ƒ +#define SE_CEDL A(SE_G) // ¸ +#define SE_OGON A(SE_H) // ˛ +#define SE_SQRT A(SE_J) // √ +#define SE_FORD A(SE_K) // ª +#define SE_FI A(SE_L) // fi +#define SE_OSTR A(SE_ODIA) // Ø +#define SE_AE A(SE_ADIA) // Æ +// Row 4 +#define SE_DIV A(SE_Z) // ÷ +#define SE_CCED A(SE_C) // Ç +#define SE_LSAQ A(SE_V) // ‹ +#define SE_RSAQ A(SE_B) // › +#define SE_LSQU A(SE_N) // ‘ +#define SE_RSQU A(SE_M) // ’ +#define SE_SLQU A(SE_COMM) // ‚ +#define SE_ELLP A(SE_DOT) // … +#define SE_NDSH A(SE_MINS) // – + +/* Shift+Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ≥ │ ¡ │ │ ¥ │ ¢ │ ‰ │ ¶ │ \ │ { │ } │ ≠ │ ¿ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ ° │ ˝ │ │ │ ‡ │ ˜ │ │ ˆ │ │ ∏ │ ˚ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ ⁄ │ ˇ │ │ « │ » │ “ │ ” │ „ │ · │ — │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + * + */ +// Row 1 +#define SE_GTEQ S(A(SE_LABK)) // ≥ +#define SE_IEXL S(A(SE_1)) // ¡ +#define SE_YEN S(A(SE_3)) // ¥ +#define SE_CENT S(A(SE_4)) // ¢ +#define SE_PERM S(A(SE_5)) // ‰ +#define SE_PILC S(A(SE_6)) // ¶ +#define SE_BSLS S(A(SE_7)) // (backslash) +#define SE_LCBR S(A(SE_8)) // { +#define SE_RCBR S(A(SE_9)) // } +#define SE_NEQL S(A(SE_0)) // ≠ +#define SE_IQUE S(A(SE_PLUS)) // ¿ +// Row 2 +#define SE_DEG S(A(SE_Q)) // ° +#define SE_DACU S(A(SE_W)) // ˝ +#define SE_DDAG S(A(SE_T)) // ‡ +#define SE_STIL S(A(SE_Y)) // ˜ +#define SE_DCIR S(A(SE_I)) // ˆ +#define SE_NARP S(A(SE_P)) // ∏ +#define SE_RNGA S(A(SE_ARNG)) // ˚ +// Row 3 +#define SE_LOZN S(A(SE_A)) // ◊ +#define SE_NARS S(A(SE_S)) // ∑ +#define SE_INCR S(A(SE_D)) // ∆ +#define SE_INTG S(A(SE_F)) // ∫ +#define SE_MACR S(A(SE_G)) // ¯ +#define SE_BREV S(A(SE_H)) // ˘ +#define SE_NOT S(A(SE_J)) // ¬ +#define SE_MORD S(A(SE_K)) // º +#define SE_FL S(A(SE_L)) // fl +// Row 4 +#define SE_FRSL S(A(SE_Z)) // ⁄ +#define SE_CARN S(A(SE_X)) // ˇ +#define SE_LDAQ S(A(SE_V)) // « +#define SE_RDAQ S(A(SE_B)) // » +#define SE_LDQU S(A(SE_N)) // “ +#define SE_RDQU S(A(SE_M)) // ” +#define SE_DLQU S(A(SE_COMM)) // „ +#define SE_MDDT S(A(SE_DOT)) // · +#define SE_MDSH S(A(SE_MINS)) // — diff --git a/quantum/keymap_extras/keymap_swedish_osx_iso.h b/quantum/keymap_extras/keymap_swedish_osx_iso.h new file mode 100644 index 000000000000..ab155530ae73 --- /dev/null +++ b/quantum/keymap_extras/keymap_swedish_osx_iso.h @@ -0,0 +1,239 @@ +/* Copyright 2021 + * + * 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 "keymap.h" + +// clang-format off + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_SECT KC_GRV // § +#define SE_1 KC_1 // 1 +#define SE_2 KC_2 // 2 +#define SE_3 KC_3 // 3 +#define SE_4 KC_4 // 4 +#define SE_5 KC_5 // 5 +#define SE_6 KC_6 // 6 +#define SE_7 KC_7 // 7 +#define SE_8 KC_8 // 8 +#define SE_9 KC_9 // 9 +#define SE_0 KC_0 // 0 +#define SE_PLUS KC_MINS // + +#define SE_ACUT KC_EQL // ´ (dead) +// Row 2 +#define SE_Q KC_Q // Q +#define SE_W KC_W // W +#define SE_E KC_E // E +#define SE_R KC_R // R +#define SE_T KC_T // T +#define SE_Y KC_Y // Y +#define SE_U KC_U // U +#define SE_I KC_I // I +#define SE_O KC_O // O +#define SE_P KC_P // P +#define SE_ARNG KC_LBRC // Å +#define SE_DIAE KC_RBRC // ¨ (dead) +// Row 3 +#define SE_A KC_A // A +#define SE_S KC_S // S +#define SE_D KC_D // D +#define SE_F KC_F // F +#define SE_G KC_G // G +#define SE_H KC_H // H +#define SE_J KC_J // J +#define SE_K KC_K // K +#define SE_L KC_L // L +#define SE_ODIA KC_SCLN // Ö +#define SE_ADIA KC_QUOT // Ä +#define SE_QUOT KC_NUHS // ' +// Row 4 +#define SE_LABK KC_NUBS // < +#define SE_Z KC_Z // Z +#define SE_X KC_X // X +#define SE_C KC_C // C +#define SE_V KC_V // V +#define SE_B KC_B // B +#define SE_N KC_N // N +#define SE_M KC_M // M +#define SE_COMM KC_COMM // , +#define SE_DOT KC_DOT // . +#define SE_MINS KC_SLSH // - + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ° │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_DEG S(SE_SECT) // ° +#define SE_EXLM S(SE_1) // ! +#define SE_DQUO S(SE_2) // " +#define SE_HASH S(SE_3) // # +#define SE_EURO S(SE_4) // € +#define SE_PERC S(SE_5) // % +#define SE_AMPR S(SE_6) // & +#define SE_SLSH S(SE_7) // / +#define SE_LPRN S(SE_8) // ( +#define SE_RPRN S(SE_9) // ) +#define SE_EQL S(SE_0) // = +#define SE_QUES S(SE_PLUS) // ? +#define SE_GRV S(SE_ACUT) // ` +// Row 2 +#define SE_CIRC S(SE_DIAE) // ^ (dead) +// Row 3 +#define SE_ASTR S(SE_QUOT) // * +// Row 4 +#define SE_RABK S(SE_LABK) // > +#define SE_SCLN S(SE_COMM) // ; +#define SE_COLN S(SE_DOT) // : +#define SE_UNDS S(SE_MINS) // _ + +/* Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ¶ │ © │ ™ │ £ │ $ │ ∞ │ │ | │ [ │ ] │ ≈ │ ± │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ @ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ ≤ │ ÷ │ │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_PILC A(SE_SECT) // ¶ +#define SE_COPY A(SE_1) // © +#define SE_TM A(SE_2) // ™ +#define SE_PND A(SE_3) // £ +#define SE_DLR A(SE_4) // $ +#define SE_INFN A(SE_5) // ∞ +#define SE_PIPE A(SE_7) // | +#define SE_LBRC A(SE_8) // [ +#define SE_RBRC A(SE_9) // ] +#define SE_AEQL A(SE_0) // ≈ +#define SE_PLMN A(SE_PLUS) // ± +// Row 2 +#define SE_BULT A(SE_Q) // • +#define SE_OMEG A(SE_W) // Ω +#define SE_EACU A(SE_E) // É +#define SE_REGD A(SE_R) // ® +#define SE_DAGG A(SE_T) // † +#define SE_MICR A(SE_Y) // µ +#define SE_UDIA A(SE_U) // Ü +#define SE_DLSI A(SE_I) // ı +#define SE_OE A(SE_O) // Œ +#define SE_PI A(SE_P) // π +#define SE_DOTA A(SE_ARNG) // ˙ +#define SE_TILD A(SE_DIAE) // ~ (dead) +// Row 3 +#define SE_APPL A(SE_A) //  (Apple logo) +#define SE_SS A(SE_S) // ß +#define SE_PDIF A(SE_D) // ∂ +#define SE_FHK A(SE_F) // ƒ +#define SE_CEDL A(SE_G) // ¸ +#define SE_OGON A(SE_H) // ˛ +#define SE_SQRT A(SE_J) // √ +#define SE_FORD A(SE_K) // ª +#define SE_FI A(SE_L) // fi +#define SE_OSTR A(SE_ODIA) // Ø +#define SE_AE A(SE_ADIA) // Æ +#define SE_AT A(SE_QUOT) // @ +// Row 4 +#define SE_LTEQ A(SE_LABK) // ≤ +#define SE_DIV A(SE_Z) // ÷ +#define SE_CCED A(SE_C) // Ç +#define SE_LSAQ A(SE_V) // ‹ +#define SE_RSAQ A(SE_B) // › +#define SE_LSQU A(SE_N) // ‘ +#define SE_RSQU A(SE_M) // ’ +#define SE_SLQU A(SE_COMM) // ‚ +#define SE_ELLP A(SE_DOT) // … +#define SE_NDSH A(SE_MINS) // – + +/* Shift+Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ │ ¡ │ ” │ ¥ │ ¢ │ ‰ │ │ \ │ { │ } │ ≠ │ ¿ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ ˝ │ │ │ ‡ │ ˜ │ │ ˆ │ │ ∏ │ ˚ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │ │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ ≥ │ ⁄ │ ˇ │ │ « │ » │ “ │ ” │ „ │ · │ — │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_IEXL S(A(SE_1)) // ¡ +#define SE_YEN S(A(SE_3)) // ¥ +#define SE_CENT S(A(SE_4)) // ¢ +#define SE_PERM S(A(SE_5)) // ‰ +#define SE_BSLS S(A(SE_7)) // (backslash) +#define SE_LCBR S(A(SE_8)) // { +#define SE_RCBR S(A(SE_9)) // } +#define SE_NEQL S(A(SE_0)) // ≠ +#define SE_IQUE S(A(SE_PLUS)) // ¿ +// Row 2 +#define SE_DACU S(A(SE_W)) // ˝ +#define SE_DDAG S(A(SE_T)) // ‡ +#define SE_STIL S(A(SE_Y)) // ˜ +#define SE_DCIR S(A(SE_I)) // ˆ +#define SE_NARP S(A(SE_P)) // ∏ +#define SE_RNGA S(A(SE_ARNG)) // ˚ +// Row 3 +#define SE_LOZN S(A(SE_A)) // ◊ +#define SE_NARS S(A(SE_S)) // ∑ +#define SE_INCR S(A(SE_D)) // ∆ +#define SE_INTG S(A(SE_F)) // ∫ +#define SE_MACR S(A(SE_G)) // ¯ +#define SE_BREV S(A(SE_H)) // ˘ +#define SE_NOT S(A(SE_J)) // ¬ +#define SE_MORD S(A(SE_K)) // º +#define SE_FL S(A(SE_L)) // fl +// Row 4 +#define SE_GTEQ S(A(SE_LABK)) // ≥ +#define SE_FRSL S(A(SE_Z)) // ⁄ +#define SE_CARN S(A(SE_X)) // ˇ +#define SE_LDAQ S(A(SE_V)) // « +#define SE_RDAQ S(A(SE_B)) // » +#define SE_LDQU S(A(SE_N)) // “ +#define SE_RDQU S(A(SE_M)) // ” +#define SE_DLQU S(A(SE_COMM)) // „ +#define SE_MDDT S(A(SE_DOT)) // · +#define SE_MDSH S(A(SE_MINS)) // — diff --git a/quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h b/quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h new file mode 100644 index 000000000000..9b445176254d --- /dev/null +++ b/quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h @@ -0,0 +1,240 @@ +/* Copyright 2021 + * + * 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 "keymap.h" + +// clang-format off + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ < │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ ' │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_LABK KC_GRV // < +#define SE_1 KC_1 // 1 +#define SE_2 KC_2 // 2 +#define SE_3 KC_3 // 3 +#define SE_4 KC_4 // 4 +#define SE_5 KC_5 // 5 +#define SE_6 KC_6 // 6 +#define SE_7 KC_7 // 7 +#define SE_8 KC_8 // 8 +#define SE_9 KC_9 // 9 +#define SE_0 KC_0 // 0 +#define SE_PLUS KC_MINS // + +#define SE_ACUT KC_EQL // ´ (dead) +// Row 2 +#define SE_Q KC_Q // Q +#define SE_W KC_W // W +#define SE_E KC_E // E +#define SE_R KC_R // R +#define SE_T KC_T // T +#define SE_Y KC_Y // Y +#define SE_U KC_U // U +#define SE_I KC_I // I +#define SE_O KC_O // O +#define SE_P KC_P // P +#define SE_ARNG KC_LBRC // Å +#define SE_DIAE KC_RBRC // ¨ (dead) +#define SE_QUOT KC_NUHS // ' +// Row 3 +#define SE_A KC_A // A +#define SE_S KC_S // S +#define SE_D KC_D // D +#define SE_F KC_F // F +#define SE_G KC_G // G +#define SE_H KC_H // H +#define SE_J KC_J // J +#define SE_K KC_K // K +#define SE_L KC_L // L +#define SE_ODIA KC_SCLN // Ö +#define SE_ADIA KC_QUOT // Ä +// Row 4 +#define SE_Z KC_Z // Z +#define SE_X KC_X // X +#define SE_C KC_C // C +#define SE_V KC_V // V +#define SE_B KC_B // B +#define SE_N KC_N // N +#define SE_M KC_M // M +#define SE_COMM KC_COMM // , +#define SE_DOT KC_DOT // . +#define SE_MINS KC_SLSH // - + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ > │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ * │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ │ │ │ │ │ │ │ ; │ : │ _ │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_RABK S(SE_LABK) // > +#define SE_EXLM S(SE_1) // ! +#define SE_DQUO S(SE_2) // " +#define SE_HASH S(SE_3) // # +#define SE_EURO S(SE_4) // € +#define SE_PERC S(SE_5) // % +#define SE_AMPR S(SE_6) // & +#define SE_SLSH S(SE_7) // / +#define SE_LPRN S(SE_8) // ( +#define SE_RPRN S(SE_9) // ) +#define SE_EQL S(SE_0) // = +#define SE_QUES S(SE_PLUS) // ? +#define SE_GRV S(SE_ACUT) // ` +// Row 2 +#define SE_CIRC S(SE_DIAE) // ^ (dead) +#define SE_ASTR S(SE_QUOT) // * +// Row 4 +#define SE_SCLN S(SE_COMM) // ; +#define SE_COLN S(SE_DOT) // : +#define SE_UNDS S(SE_MINS) // _ + +/* Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ≤ │ © │ @ │ £ │ $ │ ∞ │ § │ | │ [ │ ] │ ≈ │ ± │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ ™ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ ÷ │ │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + * + */ +// Row 1 +#define SE_LTEQ A(SE_LABK) // ≤ +#define SE_COPY A(SE_1) // © +#define SE_AT A(SE_2) // @ +#define SE_PND A(SE_3) // £ +#define SE_DLR A(SE_4) // $ +#define SE_INFN A(SE_5) // ∞ +#define SE_SECT A(SE_6) // § +#define SE_PIPE A(SE_7) // | +#define SE_LBRC A(SE_8) // [ +#define SE_RBRC A(SE_9) // ] +#define SE_AEQL A(SE_0) // ≈ +#define SE_PLMN A(SE_PLUS) // ± +// Row 2 +#define SE_BULT A(SE_Q) // • +#define SE_OMEG A(SE_W) // Ω +#define SE_EACU A(SE_E) // É +#define SE_REGD A(SE_R) // ® +#define SE_DAGG A(SE_T) // † +#define SE_MICR A(SE_Y) // µ +#define SE_UDIA A(SE_U) // Ü +#define SE_DLSI A(SE_I) // ı +#define SE_OE A(SE_O) // Œ +#define SE_PI A(SE_P) // π +#define SE_DOTA A(SE_ARNG) // ˙ +#define SE_TILD A(SE_DIAE) // ~ (dead) +#define SE_TM A(SE_QUOT) // ™ +// Row 3 +#define SE_APPL A(SE_A) //  (Apple logo) +#define SE_SS A(SE_S) // ß +#define SE_PDIF A(SE_D) // ∂ +#define SE_FHK A(SE_F) // ƒ +#define SE_CEDL A(SE_G) // ¸ +#define SE_OGON A(SE_H) // ˛ +#define SE_SQRT A(SE_J) // √ +#define SE_FORD A(SE_K) // ª +#define SE_FI A(SE_L) // fi +#define SE_OSTR A(SE_ODIA) // Ø +#define SE_AE A(SE_ADIA) // Æ +// Row 4 +#define SE_DIV A(SE_Z) // ÷ +#define SE_CCED A(SE_C) // Ç +#define SE_LSAQ A(SE_V) // ‹ +#define SE_RSAQ A(SE_B) // › +#define SE_LSQU A(SE_N) // ‘ +#define SE_RSQU A(SE_M) // ’ +#define SE_SLQU A(SE_COMM) // ‚ +#define SE_ELLP A(SE_DOT) // … +#define SE_NDSH A(SE_MINS) // – + +/* Shift+Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ≥ │ ¡ │ │ ¥ │ ¢ │ ‰ │ ¶ │ \ │ { │ } │ ≠ │ ¿ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ ° │ ˝ │ │ │ ‡ │ ˜ │ │ ˆ │ │ ∏ │ ˚ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ ⁄ │ ˇ │ │ « │ » │ “ │ ” │ „ │ · │ — │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + * + */ +// Row 1 +#define SE_GTEQ S(A(SE_LABK)) // ≥ +#define SE_IEXL S(A(SE_1)) // ¡ +#define SE_YEN S(A(SE_3)) // ¥ +#define SE_CENT S(A(SE_4)) // ¢ +#define SE_PERM S(A(SE_5)) // ‰ +#define SE_PILC S(A(SE_6)) // ¶ +#define SE_BSLS S(A(SE_7)) // (backslash) +#define SE_LCBR S(A(SE_8)) // { +#define SE_RCBR S(A(SE_9)) // } +#define SE_NEQL S(A(SE_0)) // ≠ +#define SE_IQUE S(A(SE_PLUS)) // ¿ +// Row 2 +#define SE_DEG S(A(SE_Q)) // ° +#define SE_DACU S(A(SE_W)) // ˝ +#define SE_DDAG S(A(SE_T)) // ‡ +#define SE_STIL S(A(SE_Y)) // ˜ +#define SE_DCIR S(A(SE_I)) // ˆ +#define SE_NARP S(A(SE_P)) // ∏ +#define SE_RNGA S(A(SE_ARNG)) // ˚ +// Row 3 +#define SE_LOZN S(A(SE_A)) // ◊ +#define SE_NARS S(A(SE_S)) // ∑ +#define SE_INCR S(A(SE_D)) // ∆ +#define SE_INTG S(A(SE_F)) // ∫ +#define SE_MACR S(A(SE_G)) // ¯ +#define SE_BREV S(A(SE_H)) // ˘ +#define SE_NOT S(A(SE_J)) // ¬ +#define SE_MORD S(A(SE_K)) // º +#define SE_FL S(A(SE_L)) // fl +// Row 4 +#define SE_FRSL S(A(SE_Z)) // ⁄ +#define SE_CARN S(A(SE_X)) // ˇ +#define SE_LDAQ S(A(SE_V)) // « +#define SE_RDAQ S(A(SE_B)) // » +#define SE_LDQU S(A(SE_N)) // “ +#define SE_RDQU S(A(SE_M)) // ” +#define SE_DLQU S(A(SE_COMM)) // „ +#define SE_MDDT S(A(SE_DOT)) // · +#define SE_MDSH S(A(SE_MINS)) // — diff --git a/quantum/keymap_extras/keymap_swedish_pro_osx_iso.h b/quantum/keymap_extras/keymap_swedish_pro_osx_iso.h new file mode 100644 index 000000000000..f2d66058654d --- /dev/null +++ b/quantum/keymap_extras/keymap_swedish_pro_osx_iso.h @@ -0,0 +1,239 @@ +/* Copyright 2021 + * + * 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 "keymap.h" + +// clang-format off + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_SECT KC_GRV // § +#define SE_1 KC_1 // 1 +#define SE_2 KC_2 // 2 +#define SE_3 KC_3 // 3 +#define SE_4 KC_4 // 4 +#define SE_5 KC_5 // 5 +#define SE_6 KC_6 // 6 +#define SE_7 KC_7 // 7 +#define SE_8 KC_8 // 8 +#define SE_9 KC_9 // 9 +#define SE_0 KC_0 // 0 +#define SE_PLUS KC_MINS // + +#define SE_ACUT KC_EQL // ´ (dead) +// Row 2 +#define SE_Q KC_Q // Q +#define SE_W KC_W // W +#define SE_E KC_E // E +#define SE_R KC_R // R +#define SE_T KC_T // T +#define SE_Y KC_Y // Y +#define SE_U KC_U // U +#define SE_I KC_I // I +#define SE_O KC_O // O +#define SE_P KC_P // P +#define SE_ARNG KC_LBRC // Å +#define SE_DIAE KC_RBRC // ¨ (dead) +// Row 3 +#define SE_A KC_A // A +#define SE_S KC_S // S +#define SE_D KC_D // D +#define SE_F KC_F // F +#define SE_G KC_G // G +#define SE_H KC_H // H +#define SE_J KC_J // J +#define SE_K KC_K // K +#define SE_L KC_L // L +#define SE_ODIA KC_SCLN // Ö +#define SE_ADIA KC_QUOT // Ä +#define SE_QUOT KC_NUHS // ' +// Row 4 +#define SE_LABK KC_NUBS // < +#define SE_Z KC_Z // Z +#define SE_X KC_X // X +#define SE_C KC_C // C +#define SE_V KC_V // V +#define SE_B KC_B // B +#define SE_N KC_N // N +#define SE_M KC_M // M +#define SE_COMM KC_COMM // , +#define SE_DOT KC_DOT // . +#define SE_MINS KC_SLSH // - + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ° │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_DEG S(SE_SECT) // ° +#define SE_EXLM S(SE_1) // ! +#define SE_DQUO S(SE_2) // " +#define SE_HASH S(SE_3) // # +#define SE_EURO S(SE_4) // € +#define SE_PERC S(SE_5) // % +#define SE_AMPR S(SE_6) // & +#define SE_SLSH S(SE_7) // / +#define SE_LPRN S(SE_8) // ( +#define SE_RPRN S(SE_9) // ) +#define SE_EQL S(SE_0) // = +#define SE_QUES S(SE_PLUS) // ? +#define SE_GRV S(SE_ACUT) // ` +// Row 2 +#define SE_CIRC S(SE_DIAE) // ^ (dead) +// Row 3 +#define SE_ASTR S(SE_QUOT) // * +// Row 4 +#define SE_RABK S(SE_LABK) // > +#define SE_SCLN S(SE_COMM) // ; +#define SE_COLN S(SE_DOT) // : +#define SE_UNDS S(SE_MINS) // _ + +/* Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ¶ │ © │ @ │ £ │ $ │ ∞ │ │ | │ [ │ ] │ ≈ │ ± │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ ™ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ ≤ │ ÷ │ │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_PILC A(SE_SECT) // ¶ +#define SE_COPY A(SE_1) // © +#define SE_AT A(SE_2) // @ +#define SE_PND A(SE_3) // £ +#define SE_DLR A(SE_4) // $ +#define SE_INFN A(SE_5) // ∞ +#define SE_PIPE A(SE_7) // | +#define SE_LBRC A(SE_8) // [ +#define SE_RBRC A(SE_9) // ] +#define SE_AEQL A(SE_0) // ≈ +#define SE_PLMN A(SE_PLUS) // ± +// Row 2 +#define SE_BULT A(SE_Q) // • +#define SE_OMEG A(SE_W) // Ω +#define SE_EACU A(SE_E) // É +#define SE_REGD A(SE_R) // ® +#define SE_DAGG A(SE_T) // † +#define SE_MICR A(SE_Y) // µ +#define SE_UDIA A(SE_U) // Ü +#define SE_DLSI A(SE_I) // ı +#define SE_OE A(SE_O) // Œ +#define SE_PI A(SE_P) // π +#define SE_DOTA A(SE_ARNG) // ˙ +#define SE_TILD A(SE_DIAE) // ~ (dead) +// Row 3 +#define SE_APPL A(SE_A) //  (Apple logo) +#define SE_SS A(SE_S) // ß +#define SE_PDIF A(SE_D) // ∂ +#define SE_FHK A(SE_F) // ƒ +#define SE_CEDL A(SE_G) // ¸ +#define SE_OGON A(SE_H) // ˛ +#define SE_SQRT A(SE_J) // √ +#define SE_FORD A(SE_K) // ª +#define SE_FI A(SE_L) // fi +#define SE_OSTR A(SE_ODIA) // Ø +#define SE_AE A(SE_ADIA) // Æ +#define SE_TM A(SE_QUOT) // ™ +// Row 4 +#define SE_LTEQ A(SE_LABK) // ≤ +#define SE_DIV A(SE_Z) // ÷ +#define SE_CCED A(SE_C) // Ç +#define SE_LSAQ A(SE_V) // ‹ +#define SE_RSAQ A(SE_B) // › +#define SE_LSQU A(SE_N) // ‘ +#define SE_RSQU A(SE_M) // ’ +#define SE_SLQU A(SE_COMM) // ‚ +#define SE_ELLP A(SE_DOT) // … +#define SE_NDSH A(SE_MINS) // – + +/* Shift+Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ │ ¡ │ ” │ ¥ │ ¢ │ ‰ │ │ \ │ { │ } │ ≠ │ ¿ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ ˝ │ │ │ ‡ │ ˜ │ │ ˆ │ │ ∏ │ ˚ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │ │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ ≥ │ ⁄ │ ˇ │ │ « │ » │ “ │ ” │ „ │ · │ — │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define SE_IEXL S(A(SE_1)) // ¡ +#define SE_YEN S(A(SE_3)) // ¥ +#define SE_CENT S(A(SE_4)) // ¢ +#define SE_PERM S(A(SE_5)) // ‰ +#define SE_BSLS S(A(SE_7)) // (backslash) +#define SE_LCBR S(A(SE_8)) // { +#define SE_RCBR S(A(SE_9)) // } +#define SE_NEQL S(A(SE_0)) // ≠ +#define SE_IQUE S(A(SE_PLUS)) // ¿ +// Row 2 +#define SE_DACU S(A(SE_W)) // ˝ +#define SE_DDAG S(A(SE_T)) // ‡ +#define SE_STIL S(A(SE_Y)) // ˜ +#define SE_DCIR S(A(SE_I)) // ˆ +#define SE_NARP S(A(SE_P)) // ∏ +#define SE_RNGA S(A(SE_ARNG)) // ˚ +// Row 3 +#define SE_LOZN S(A(SE_A)) // ◊ +#define SE_NARS S(A(SE_S)) // ∑ +#define SE_INCR S(A(SE_D)) // ∆ +#define SE_INTG S(A(SE_F)) // ∫ +#define SE_MACR S(A(SE_G)) // ¯ +#define SE_BREV S(A(SE_H)) // ˘ +#define SE_NOT S(A(SE_J)) // ¬ +#define SE_MORD S(A(SE_K)) // º +#define SE_FL S(A(SE_L)) // fl +// Row 4 +#define SE_GTEQ S(A(SE_LABK)) // ≥ +#define SE_FRSL S(A(SE_Z)) // ⁄ +#define SE_CARN S(A(SE_X)) // ˇ +#define SE_LDAQ S(A(SE_V)) // « +#define SE_RDAQ S(A(SE_B)) // » +#define SE_LDQU S(A(SE_N)) // “ +#define SE_RDQU S(A(SE_M)) // ” +#define SE_DLQU S(A(SE_COMM)) // „ +#define SE_MDDT S(A(SE_DOT)) // · +#define SE_MDSH S(A(SE_MINS)) // — From 388a4ae8172e8dda6d3a5fffa1e4f520d8192c62 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Tue, 20 Jul 2021 12:19:26 -0400 Subject: [PATCH 024/328] [Keyboard] Add Vicious40 to QMK (#12981) Co-authored-by: Ryan --- keyboards/cannonkeys/vicious40/chconf.h | 31 ++++++++ keyboards/cannonkeys/vicious40/config.h | 70 +++++++++++++++++++ keyboards/cannonkeys/vicious40/halconf.h | 27 +++++++ keyboards/cannonkeys/vicious40/info.json | 12 ++++ .../vicious40/keymaps/default/keymap.c | 52 ++++++++++++++ .../cannonkeys/vicious40/keymaps/via/keymap.c | 60 ++++++++++++++++ .../cannonkeys/vicious40/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/vicious40/mcuconf.h | 28 ++++++++ keyboards/cannonkeys/vicious40/readme.md | 12 ++++ keyboards/cannonkeys/vicious40/rules.mk | 28 ++++++++ keyboards/cannonkeys/vicious40/vicious40.c | 17 +++++ keyboards/cannonkeys/vicious40/vicious40.h | 33 +++++++++ 12 files changed, 371 insertions(+) create mode 100644 keyboards/cannonkeys/vicious40/chconf.h create mode 100644 keyboards/cannonkeys/vicious40/config.h create mode 100644 keyboards/cannonkeys/vicious40/halconf.h create mode 100644 keyboards/cannonkeys/vicious40/info.json create mode 100644 keyboards/cannonkeys/vicious40/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/vicious40/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/vicious40/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/vicious40/mcuconf.h create mode 100644 keyboards/cannonkeys/vicious40/readme.md create mode 100644 keyboards/cannonkeys/vicious40/rules.mk create mode 100644 keyboards/cannonkeys/vicious40/vicious40.c create mode 100644 keyboards/cannonkeys/vicious40/vicious40.h diff --git a/keyboards/cannonkeys/vicious40/chconf.h b/keyboards/cannonkeys/vicious40/chconf.h new file mode 100644 index 000000000000..f3eb1c05e539 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/cannonkeys/vicious40/config.h b/keyboards/cannonkeys/vicious40/config.h new file mode 100644 index 000000000000..768ee7397d64 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/config.h @@ -0,0 +1,70 @@ +/* +Copyright 2015 Jun Wako + +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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Vicious40 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define MATRIX_COL_PINS { B0, A7, A5, B1, B2, B10, B11, A9, B6, B7, B8, B9 } +#define MATRIX_ROW_PINS { A15, B3, B4, B5 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/vicious40/halconf.h b/keyboards/cannonkeys/vicious40/halconf.h new file mode 100644 index 000000000000..63f5cf44a1aa --- /dev/null +++ b/keyboards/cannonkeys/vicious40/halconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next + diff --git a/keyboards/cannonkeys/vicious40/info.json b/keyboards/cannonkeys/vicious40/info.json new file mode 100644 index 000000000000..657f18bfbe88 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Vicious40", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "width": 12.75, + "height": 4, + "layouts": { + "LAYOUT_default": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Backspace", "x":11, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"Up", "x":10.75, "y":2}, {"label":"?", "x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Super", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Space", "x":3, "y":3, "w":2.25}, {"label":"Space", "x":5.25, "y":3, "w":1.25}, {"label":"Space", "x":6.5, "y":3, "w":2.75}, {"label":"Left", "x":9.75, "y":3}, {"label":"Down", "x":10.75, "y":3}, {"label":"Right", "x":11.75, "y":3}] + } + } +} diff --git a/keyboards/cannonkeys/vicious40/keymaps/default/keymap.c b/keyboards/cannonkeys/vicious40/keymaps/default/keymap.c new file mode 100644 index 000000000000..25959e719eca --- /dev/null +++ b/keyboards/cannonkeys/vicious40/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_SPC, LT(_FN2, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, 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_HOME, KC_PGDN, KC_END + ), + + [_FN2] = LAYOUT_default( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_INS, + KC_TRNS, 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, BL_INC, BL_TOGG, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_BRTG + ) +}; diff --git a/keyboards/cannonkeys/vicious40/keymaps/via/keymap.c b/keyboards/cannonkeys/vicious40/keymaps/via/keymap.c new file mode 100644 index 000000000000..fa74f8271e42 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/keymaps/via/keymap.c @@ -0,0 +1,60 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_SPC, LT(_FN2, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, 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_HOME, KC_PGDN, KC_END + ), + + [_FN2] = LAYOUT_default( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_INS, + KC_TRNS, 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, BL_INC, BL_TOGG, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_BRTG + ), + + [_FN3] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/cannonkeys/vicious40/keymaps/via/rules.mk b/keyboards/cannonkeys/vicious40/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/vicious40/mcuconf.h b/keyboards/cannonkeys/vicious40/mcuconf.h new file mode 100644 index 000000000000..54e614d1c2c5 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + diff --git a/keyboards/cannonkeys/vicious40/readme.md b/keyboards/cannonkeys/vicious40/readme.md new file mode 100644 index 000000000000..741902fe2d59 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/readme.md @@ -0,0 +1,12 @@ +# CannonKeys Vicious40 + +Vicious40 Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 or APM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/vicious40:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/vicious40/rules.mk b/keyboards/cannonkeys/vicious40/rules.mk new file mode 100644 index 000000000000..3f1153074a66 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/vicious40/vicious40.c b/keyboards/cannonkeys/vicious40/vicious40.c new file mode 100644 index 000000000000..ae8ca5082b39 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/vicious40.c @@ -0,0 +1,17 @@ + /* Copyright 2021 Andrew Kannan + * + * 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 "vicious40.h" diff --git a/keyboards/cannonkeys/vicious40/vicious40.h b/keyboards/cannonkeys/vicious40/vicious40.h new file mode 100644 index 000000000000..fd48716748ab --- /dev/null +++ b/keyboards/cannonkeys/vicious40/vicious40.h @@ -0,0 +1,33 @@ + /* Copyright 2021 Andrew Kannan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXXX KC_NO + +#define LAYOUT_default( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K306, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, XXXX, K306, XXXX, XXXX, K309, K310, K311 } \ +} From 9d523499af110b58b1ec419477841c19985f25b9 Mon Sep 17 00:00:00 2001 From: lfgberg Date: Tue, 20 Jul 2021 12:34:18 -0400 Subject: [PATCH 025/328] [Keyboard] add anomalykb a65i (#12967) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/anomalykb/a65i/a65i.c | 17 +++ keyboards/anomalykb/a65i/a65i.h | 101 ++++++++++++++++++ keyboards/anomalykb/a65i/config.h | 46 ++++++++ keyboards/anomalykb/a65i/info.json | 20 ++++ .../a65i/keymaps/ansi_splitbs/keymap.c | 61 +++++++++++ .../anomalykb/a65i/keymaps/default/keymap.c | 61 +++++++++++ keyboards/anomalykb/a65i/keymaps/iso/keymap.c | 61 +++++++++++ .../a65i/keymaps/iso_splitbs/keymap.c | 61 +++++++++++ keyboards/anomalykb/a65i/keymaps/via/config.h | 19 ++++ keyboards/anomalykb/a65i/keymaps/via/keymap.c | 61 +++++++++++ keyboards/anomalykb/a65i/keymaps/via/rules.mk | 2 + keyboards/anomalykb/a65i/readme.md | 17 +++ keyboards/anomalykb/a65i/rules.mk | 22 ++++ 13 files changed, 549 insertions(+) create mode 100644 keyboards/anomalykb/a65i/a65i.c create mode 100644 keyboards/anomalykb/a65i/a65i.h create mode 100644 keyboards/anomalykb/a65i/config.h create mode 100644 keyboards/anomalykb/a65i/info.json create mode 100644 keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c create mode 100644 keyboards/anomalykb/a65i/keymaps/default/keymap.c create mode 100644 keyboards/anomalykb/a65i/keymaps/iso/keymap.c create mode 100644 keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c create mode 100644 keyboards/anomalykb/a65i/keymaps/via/config.h create mode 100644 keyboards/anomalykb/a65i/keymaps/via/keymap.c create mode 100644 keyboards/anomalykb/a65i/keymaps/via/rules.mk create mode 100644 keyboards/anomalykb/a65i/readme.md create mode 100644 keyboards/anomalykb/a65i/rules.mk diff --git a/keyboards/anomalykb/a65i/a65i.c b/keyboards/anomalykb/a65i/a65i.c new file mode 100644 index 000000000000..ed9a82938c52 --- /dev/null +++ b/keyboards/anomalykb/a65i/a65i.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Lfgberg + * + * 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 "a65i.h" diff --git a/keyboards/anomalykb/a65i/a65i.h b/keyboards/anomalykb/a65i/a65i.h new file mode 100644 index 000000000000..410fcaf2b134 --- /dev/null +++ b/keyboards/anomalykb/a65i/a65i.h @@ -0,0 +1,101 @@ +/* Copyright 2021 Lfgberg + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +#define LAYOUT_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, K2F }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +#define LAYOUT_ansi_splitbs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, K2F }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +#define LAYOUT_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, KC_NO, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +#define LAYOUT_iso_splitbs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, KC_NO, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} diff --git a/keyboards/anomalykb/a65i/config.h b/keyboards/anomalykb/a65i/config.h new file mode 100644 index 000000000000..b6ca4a8b8457 --- /dev/null +++ b/keyboards/anomalykb/a65i/config.h @@ -0,0 +1,46 @@ +/* +Copyright 2021 Lfgberg + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4C47 +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AnomalyKB +#define PRODUCT AnomalyKB A65I + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS { B3, B2, B1, B0, B5 } +#define MATRIX_COL_PINS { D7, D6, D4, B4, B6, E6, F1, B7, C6, C7, D5, D3, D2, F0, D1, D0 } +#define UNUSED_PINS + +/* 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/anomalykb/a65i/info.json b/keyboards/anomalykb/a65i/info.json new file mode 100644 index 000000000000..9a81b888b9d3 --- /dev/null +++ b/keyboards/anomalykb/a65i/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "A65I", + "maintainer": "Lfgberg", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_ansi": { + "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}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "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":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "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":"PgDn", "x":15, "y":2}, {"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":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + }, + "LAYOUT_ansi_splitbs": { + "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}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "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":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "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":"PgDn", "x":15, "y":2}, {"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":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + }, + "LAYOUT_iso": { + "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}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "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":"PgDn", "x":15, "y":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":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + }, + "LAYOUT_iso_splitbs": { + "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}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "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":"PgDn", "x":15, "y":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":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + } + } +} diff --git a/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c b/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c new file mode 100644 index 000000000000..741b7ff55fd4 --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|~ |Back|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_ansi_splitbs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PSCR, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_ansi_splitbs( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/anomalykb/a65i/keymaps/default/keymap.c b/keyboards/anomalykb/a65i/keymaps/default/keymap.c new file mode 100644 index 000000000000..162a57f8194b --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/default/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_ansi( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/anomalykb/a65i/keymaps/iso/keymap.c b/keyboards/anomalykb/a65i/keymaps/iso/keymap.c new file mode 100644 index 000000000000..21f34c06c429 --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/iso/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Delete|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp| + * |-----------------------------------------------------| N |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_iso( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, + 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_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Delete|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp| + * |-----------------------------------------------------| N |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_iso( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c b/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c new file mode 100644 index 000000000000..09c2a5093758 --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|~ |Back|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp| + * |-----------------------------------------------------| N |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_iso_splitbs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PSCR, + 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_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|~ |Back|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp| + * |-----------------------------------------------------| N |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_iso_splitbs( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/anomalykb/a65i/keymaps/via/config.h b/keyboards/anomalykb/a65i/keymaps/via/config.h new file mode 100644 index 000000000000..e352e4256781 --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Lfgberg + * + * 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 DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/anomalykb/a65i/keymaps/via/keymap.c b/keyboards/anomalykb/a65i/keymaps/via/keymap.c new file mode 100644 index 000000000000..162a57f8194b --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/via/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_ansi( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/anomalykb/a65i/keymaps/via/rules.mk b/keyboards/anomalykb/a65i/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/anomalykb/a65i/readme.md b/keyboards/anomalykb/a65i/readme.md new file mode 100644 index 000000000000..fbf30301cba3 --- /dev/null +++ b/keyboards/anomalykb/a65i/readme.md @@ -0,0 +1,17 @@ +# a65i + +![a65i](https://i.imgur.com/J4fzVVth.jpg) + +PCB designed by Lfgberg for the AnomalyKB a65i. + +To enter bootloader mode, either utilize the reset button near the MCU, or short the ESC key for bootmagic lite. + +* Keyboard Maintainer: [Lfgberg](https://github.com/lfgberg) +* Hardware Supported: A65I PCB +* Hardware Availability: [AnomalyKB](anomalykb.co) + +Make example for this keyboard (after setting up your build environment): + + make anomalykb/a65i:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/anomalykb/a65i/rules.mk b/keyboards/anomalykb/a65i/rules.mk new file mode 100644 index 000000000000..40f8d36191ab --- /dev/null +++ b/keyboards/anomalykb/a65i/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 4f880801ecb781c74ccf4e4f80a2097d67bc27c2 Mon Sep 17 00:00:00 2001 From: AlisGraveNil <63020540+AlisGraveNil@users.noreply.github.com> Date: Tue, 20 Jul 2021 10:34:56 -0600 Subject: [PATCH 026/328] [Keyboard] luggage rack (#12959) --- keyboards/clawsome/luggage_rack/config.h | 45 +++++++++++++++++++ keyboards/clawsome/luggage_rack/info.json | 26 +++++++++++ .../luggage_rack/keymap/default/keymap.c | 29 ++++++++++++ .../clawsome/luggage_rack/luggage_rack.c | 17 +++++++ .../clawsome/luggage_rack/luggage_rack.h | 38 ++++++++++++++++ keyboards/clawsome/luggage_rack/readme.md | 13 ++++++ keyboards/clawsome/luggage_rack/rules.mk | 22 +++++++++ 7 files changed, 190 insertions(+) create mode 100644 keyboards/clawsome/luggage_rack/config.h create mode 100644 keyboards/clawsome/luggage_rack/info.json create mode 100644 keyboards/clawsome/luggage_rack/keymap/default/keymap.c create mode 100644 keyboards/clawsome/luggage_rack/luggage_rack.c create mode 100644 keyboards/clawsome/luggage_rack/luggage_rack.h create mode 100644 keyboards/clawsome/luggage_rack/readme.md create mode 100644 keyboards/clawsome/luggage_rack/rules.mk diff --git a/keyboards/clawsome/luggage_rack/config.h b/keyboards/clawsome/luggage_rack/config.h new file mode 100644 index 000000000000..32b3ea45619b --- /dev/null +++ b/keyboards/clawsome/luggage_rack/config.h @@ -0,0 +1,45 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7767 +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlisGraveNil +#define PRODUCT luggage_rack + +/* key matrix size */ +#define MATRIX_ROWS 9 +#define MATRIX_COLS 3 + +/* + * 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 { D3, F4, B0, B2, F7, B6, B1, F5, F6 } +#define MATRIX_COL_PINS { D4, D0, D1 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/luggage_rack/info.json b/keyboards/clawsome/luggage_rack/info.json new file mode 100644 index 000000000000..53905b50eb8a --- /dev/null +++ b/keyboards/clawsome/luggage_rack/info.json @@ -0,0 +1,26 @@ +{ + "keyboard_name": "luggage_rack", + "url": "www.clawboards.xyz", + "maintainer": "AlisGraveNil", + "width": 3, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (D3,D4)", "x":0, "y":0}, + {"label":"K11 (F4,D0)", "x":1, "y":0}, + {"label":"K02 (D3,D1)", "x":2, "y":0}, + {"label":"K20 (B0,D4)", "x":0, "y":1.5}, + {"label":"K31 (B2,D0)", "x":1, "y":1.5}, + {"label":"K22 (B0,D1)", "x":2, "y":1.5}, + {"label":"K40 (F7,D4)", "x":0, "y":2.5}, + {"label":"K51 (B6,D0)", "x":1, "y":2.5}, + {"label":"K42 (F7,D1)", "x":2, "y":2.5}, + {"label":"K61 (B1,D0)", "x":1, "y":4.5}, + {"label":"K70 (F5,D4)", "x":0, "y":5.5}, + {"label":"K81 (F6,D0)", "x":1, "y":5.5}, + {"label":"K72 (F5,D1)", "x":2, "y":5.5} + ] + } + } +} diff --git a/keyboards/clawsome/luggage_rack/keymap/default/keymap.c b/keyboards/clawsome/luggage_rack/keymap/default/keymap.c new file mode 100644 index 000000000000..5d7871730d5d --- /dev/null +++ b/keyboards/clawsome/luggage_rack/keymap/default/keymap.c @@ -0,0 +1,29 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_PSCR, KC_SLCK, KC_PAUS, + KC_INS, KC_HOME, KC_PGUP, + KC_DEL, KC_END, KC_PGDN, + + KC_UP, + KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/clawsome/luggage_rack/luggage_rack.c b/keyboards/clawsome/luggage_rack/luggage_rack.c new file mode 100644 index 000000000000..3a49c797d0b8 --- /dev/null +++ b/keyboards/clawsome/luggage_rack/luggage_rack.c @@ -0,0 +1,17 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 "luggage_rack.h" diff --git a/keyboards/clawsome/luggage_rack/luggage_rack.h b/keyboards/clawsome/luggage_rack/luggage_rack.h new file mode 100644 index 000000000000..20c4947bd250 --- /dev/null +++ b/keyboards/clawsome/luggage_rack/luggage_rack.h @@ -0,0 +1,38 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K11, K02, \ + K20, K31, K22, \ + K40, K51, K42, \ + \ + K61, \ + K70, K81, K72 \ +) { \ + { K00, KC_NO, K02 }, \ + { KC_NO, K11, KC_NO }, \ + { K20, KC_NO, K22 }, \ + { KC_NO, K31, KC_NO }, \ + { K40, KC_NO, K42 }, \ + { KC_NO, K51, KC_NO }, \ + { KC_NO, K61, KC_NO }, \ + { K70, KC_NO, K72 }, \ + { KC_NO, K81, KC_NO }, \ +} diff --git a/keyboards/clawsome/luggage_rack/readme.md b/keyboards/clawsome/luggage_rack/readme.md new file mode 100644 index 000000000000..69856494d5ea --- /dev/null +++ b/keyboards/clawsome/luggage_rack/readme.md @@ -0,0 +1,13 @@ +# Luggage Rack + +This is 13-key macropad based on the nav cluster of a 100% layout. This is only available as a break-away item if you get a HatchbackTKL keyboard. + +- Keyboard Maintainer: [AAClawson](https://github.com/AlisGraveNil) +- Hardware Supported: Luggage Rack, Pro-Micro, nice!nano, Elite-C +- Hardware Availability: Only available in conjunction with the Hatchback + +Make example for this keyboard (after setting up your build environment): + + make clawsome/luggage_rack:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clawsome/luggage_rack/rules.mk b/keyboards/clawsome/luggage_rack/rules.mk new file mode 100644 index 000000000000..6b8d1b5f071c --- /dev/null +++ b/keyboards/clawsome/luggage_rack/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From ec78f8bca2523a91a293d8ae4d61050d1e36b320 Mon Sep 17 00:00:00 2001 From: imchipwood Date: Tue, 20 Jul 2021 09:40:54 -0700 Subject: [PATCH 027/328] [Keymap] Adding user code & keymaps for dumbpad & hotdox (#12924) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- .../dumbpad/v1x/keymaps/imchipwood/keymap.c | 95 +++++++++++ .../dumbpad/v1x/keymaps/numpad_media/keymap.c | 88 ++++++++++ keyboards/hotdox/keymaps/imchipwood/keymap.c | 151 ++++++++++++++++++ users/imchipwood/imchipwood.c | 141 ++++++++++++++++ users/imchipwood/imchipwood.h | 51 ++++++ users/imchipwood/rules.mk | 2 + 6 files changed, 528 insertions(+) create mode 100644 keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c create mode 100644 keyboards/dumbpad/v1x/keymaps/numpad_media/keymap.c create mode 100644 keyboards/hotdox/keymaps/imchipwood/keymap.c create mode 100644 users/imchipwood/imchipwood.c create mode 100644 users/imchipwood/imchipwood.h create mode 100644 users/imchipwood/rules.mk diff --git a/keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c b/keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c new file mode 100644 index 000000000000..96a98b11c5a7 --- /dev/null +++ b/keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c @@ -0,0 +1,95 @@ +/* Copyright 2020 imchipwood + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "imchipwood.h" + +enum custom_layers { + _BASE, + _SUB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + BASE LAYER + /-----------------------------------------------------` + | | 7 | 8 | 9 | Bkspc | + | |---------|---------|---------|---------| + | | 4 | 5 | 6 | + | + | |---------|---------|---------|---------| + | | 1 | 2 | 3 | * | + |-------------|---------|---------|---------|---------| + | Play/Pause | TT(SUB) | 0 | . | Enter | + \-----------------------------------------------------' + */ + [_BASE] = LAYOUT( + KC_P7, KC_P8, KC_P9, KC_BSPC, + KC_P4, KC_P5, KC_P6, KC_KP_PLUS, + KC_P1, KC_P2, KC_P3, KC_KP_ASTERISK, + MEH_T(KC_MPLY), TT(_SUB), KC_P0, KC_PDOT, KC_KP_ENTER + ), + /* + SUB LAYER + /-----------------------------------------------------` + | | F7 | F8 | F9 | Del/NLK | + | |---------|---------|---------|---------| + | | F4 | F5 | F6 | - | + | |---------|---------|---------|---------| + | | F1 | F2 | F3 | / | + |-------------|---------|---------|---------|---------| + | MUTE | | LSFT | LCTL | = | + \-----------------------------------------------------' + */ + [_SUB] = LAYOUT( + TD(ALT_F7), KC_F8, KC_F9, TD(DEL_NLCK), + KC_F4, TD(CTL_F5), KC_F6, KC_KP_MINUS, + KC_F1, TD(ALT_F2), KC_F3, KC_KP_SLASH, + KC_MUTE, _______, OSM(MOD_LSFT), OSM(MOD_LCTL), KC_KP_EQUAL + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case _BASE: + // main layer - volume up/down + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + + case _SUB: + // sub layer - next/previous track + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + break; + + default: + // default - volume up/down + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } + } + return true; +} diff --git a/keyboards/dumbpad/v1x/keymaps/numpad_media/keymap.c b/keyboards/dumbpad/v1x/keymaps/numpad_media/keymap.c new file mode 100644 index 000000000000..2806a31740a8 --- /dev/null +++ b/keyboards/dumbpad/v1x/keymaps/numpad_media/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2020 imchipwood + * + * 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] = { + /* + BASE LAYER + /-----------------------------------------------------` + | | 7 | 8 | 9 | Bkspc | + | |---------|---------|---------|---------| + | | 4 | 5 | 6 | + | + | |---------|---------|---------|---------| + | | 1 | 2 | 3 | * | + |-------------|---------|---------|---------|---------| + | Play/pause | TT(1) | 0 | . | Enter | + \-----------------------------------------------------' + */ + [0] = LAYOUT( + KC_P7, KC_P8, KC_P9, KC_BSPC, + KC_P4, KC_P5, KC_P6, KC_KP_PLUS, + KC_P1, KC_P2, KC_P3, KC_KP_ASTERISK, + KC_MPLY, TT(1), KC_P0, KC_PDOT, KC_KP_ENTER + ), + /* + SUB LAYER + /-----------------------------------------------------` + | | | | | Numlock | + | |---------|---------|---------|---------| + | | | | | - | + | |---------|---------|---------|---------| + | | | | | / | + |-------------|---------|---------|---------|---------| + | MUTE | | | | = | + \-----------------------------------------------------' + */ + [1] = LAYOUT( + _______, _______, _______, KC_NLCK, + _______, _______, _______, KC_KP_MINUS, + _______, _______, _______, KC_KP_SLASH, + KC_MUTE, _______, _______, _______, KC_KP_EQUAL + ), +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + /* Custom encoder control - handles CW/CCW turning of encoder + * Default behavior: + * main layer: + * CW: volume up + * CCW: volume down + * other layers: + * CW: next track + * CCW: previous track + */ + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case 0: + // main layer - volume up (CW) and volume down (CCW) + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + + default: + // other layers - media next (CW) and media previous (CCW) + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + break; + } + } +} diff --git a/keyboards/hotdox/keymaps/imchipwood/keymap.c b/keyboards/hotdox/keymaps/imchipwood/keymap.c new file mode 100644 index 000000000000..c5d7bc34cfa1 --- /dev/null +++ b/keyboards/hotdox/keymaps/imchipwood/keymap.c @@ -0,0 +1,151 @@ +/* Copyright 2021 imchipwood + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "imchipwood.h" + +// Layer names +enum custom_layers { + _QWERTY, + _NUM, + _MED +}; + +// Layer definitions +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_ergodox_pretty( +/* Keymap 0: Basic layer + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | ESC | |BkTick| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | MEH | | | Y | U | I | O | P | [ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSlsh | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------|MO(2) | |MO(2) |------+------+------+------+------+--------| + * | LSHIFT | Z | X | C | V | B | | | | N | M | , | . | / |SHFT/CAP| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |RCTRL | LALT | GUI |L/HOME|R/END | | Up | Down | LEFT |RIGHT |PRSCR | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | DEL | INS | | Ctrl | Alt | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Enter |MO(1) |------| |------| Bksp |Space | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// Left hand Right hand +// ,------------------------------------------------------------------------------------------. ,------------------------------------------------------------------------------------------. + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_GRV, 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_MEH, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, +// |------------+------------+------------+------------+------------+------------+ | | +------------+------------+------------+------------+------------+------------| + KC_BSLS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MED), MO(_MED), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD(TD_RSFT_CAPS), +// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| + KC_LCTRL, KC_LALT, KC_LGUI, TD(TD_LOME), TD(TD_REND), KC_UP, KC_DOWN, KC_LEFT, KC_RGHT, KC_PSCR, +// `---------------------------------------------------------------' `----------------------------------------------------------------' +// ,-------------------------. ,-------------------------. + KC_DEL, KC_INS, KC_TRNS, KC_TRNS, +// ,------------+------------+------------| |------------+------------+------------. + KC_TRNS, KC_TRNS, +// | | +------------| |------------+ | | + KC_ENT, MO(_NUM), KC_TRNS, KC_TRNS, KC_BSPC, KC_SPC +// `--------------------------------------' `--------------------------------------' + ), + [_NUM] = LAYOUT_ergodox_pretty( +/* Keymap 1: Numpad, function keys, and some convenience keys + * ,---------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | F12 | F6 | F7 | F8 | F9 | F10 | F11 | + * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | up | | | | | | | 7 | 8 | 9 | * | / | ] | + * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | left | down |right | | |------| |------| 4 | 5 | 6 | + | - | | + * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | 1 | 2 | 3 | = | up | enter | + * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | PgUp | PgDn | | 0 | . | left | down |right | + * `-----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| Del | Esc | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Left hand Right hand +// ,------------------------------------------------------------------------------------------. ,------------------------------------------------------------------------------------------. + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, TD(CTL_F5), KC_TRNS, KC_F12, KC_F6, TD(ALT_F7), KC_F8, KC_F9, KC_F10, KC_F11, +// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_PAST, KC_PSLS, KC_RBRC, +// |------------+------------+------------+------------+------------+------------+ | | +------------+------------+------------+------------+------------+------------| + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_PMNS, KC_TRNS, +// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_PEQL, KC_UP, KC_PENT, +// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, +// `---------------------------------------------------------------' `----------------------------------------------------------------' +// ,-------------------------. ,-------------------------. + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +// ,------------+------------+------------| |------------+------------+------------. + KC_TRNS, KC_TRNS, +// | | +------------| |------------+ | | + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_ESC +// `--------------------------------------' `--------------------------------------' + ), + [_MED] = LAYOUT_ergodox_pretty( +/* Keymap 2: Media and mouse keys + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | Mute | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | MsUp | | | | | | | MP7 | MP8 | MP9 | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |MsLeft|MsDown|MsRght| | |------| |------| MP4 | MP5 | MP6 | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | MP1 | MP2 | MP3 | |VolUp | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | | | | Prev |VolDn | Next | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |RESET | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * |MPENT | |------| |------| |Play | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Left hand Right hand +// ,------------------------------------------------------------------------------------------. ,------------------------------------------------------------------------------------------. + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, +// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| + KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_P7), MEH(KC_P8), MEH(KC_P9), KC_TRNS, KC_TRNS, KC_TRNS, +// |------------+------------+------------+------------+------------+------------+ | | +------------+------------+------------+------------+------------+------------| + KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, MEH(KC_P4), MEH(KC_P5), MEH(KC_P6), KC_TRNS, KC_TRNS, KC_TRNS, +// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_P1), MEH(KC_P2), MEH(KC_P3), KC_TRNS, KC_VOLU, KC_TRNS, +// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT, +// `---------------------------------------------------------------' `----------------------------------------------------------------' +// ,-------------------------. ,-------------------------. + RESET, KC_TRNS, KC_TRNS, KC_TRNS, +// ,------------+------------+------------| |------------+------------+------------. + KC_TRNS, KC_TRNS, +// | | +------------| |------------+ | | + MEH(KC_PENT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY +// `--------------------------------------' `--------------------------------------' + ) +}; diff --git a/users/imchipwood/imchipwood.c b/users/imchipwood/imchipwood.c new file mode 100644 index 000000000000..e319c00ce799 --- /dev/null +++ b/users/imchipwood/imchipwood.c @@ -0,0 +1,141 @@ +/* Copyright 2021 imchipwood + * + * 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 "imchipwood.h" + +static td_state_t td_state[3]; + +// determine the tapdance state to return +int cur_dance(qk_tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) { + return SINGLE_TAP; + } else { + return SINGLE_HOLD; + } + } + if (state->count == 2) { + return DOUBLE_TAP; + } else { + return 3; + } // any number higher than the maximum state value you return above +} + +void altf2_finished(qk_tap_dance_state_t *state, void *user_data) { + td_state[0] = cur_dance(state); + switch (td_state[0]) { + case SINGLE_TAP: + register_code(KC_F2); + break; + case SINGLE_HOLD: + register_mods(MOD_BIT(KC_LALT)); + break; + case DOUBLE_TAP: + register_mods(MOD_BIT(KC_LALT)); + tap_code(KC_F2); + break; + } +} + +void altf2_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (td_state[0]) { + case SINGLE_TAP: + unregister_code(KC_F2); + break; + case SINGLE_HOLD: + unregister_mods(MOD_BIT(KC_LALT)); + break; + case DOUBLE_TAP: + unregister_code(KC_F2); + unregister_mods(MOD_BIT(KC_LALT)); + break; + } +} + + +void ctlf5_finished(qk_tap_dance_state_t *state, void *user_data) { + td_state[1] = cur_dance(state); + switch (td_state[1]) { + case SINGLE_TAP: + register_code(KC_F5); + break; + case SINGLE_HOLD: + register_mods(MOD_BIT(KC_LCTL)); + break; + case DOUBLE_TAP: + register_mods(MOD_BIT(KC_LCTL)); + tap_code(KC_F5); + break; + } +} + +void ctlf5_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (td_state[1]) { + case SINGLE_TAP: + unregister_code(KC_F5); + break; + case SINGLE_HOLD: + unregister_mods(MOD_BIT(KC_LCTL)); + break; + case DOUBLE_TAP: + unregister_code(KC_F5); + unregister_mods(MOD_BIT(KC_LCTL)); + break; + } +} + +void altf7_finished(qk_tap_dance_state_t *state, void *user_data) { + td_state[2] = cur_dance(state); + switch (td_state[2]) { + case SINGLE_TAP: + register_code(KC_F7); + break; + case SINGLE_HOLD: + register_mods(MOD_BIT(KC_LALT)); + break; + case DOUBLE_TAP: + register_mods(MOD_BIT(KC_LALT)); + tap_code(KC_F7); + break; + } +} + +void altf7_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (td_state[2]) { + case SINGLE_TAP: + unregister_code(KC_F7); + break; + case SINGLE_HOLD: + unregister_mods(MOD_BIT(KC_LALT)); + break; + case DOUBLE_TAP: + unregister_code(KC_F7); + unregister_mods(MOD_BIT(KC_LALT)); + break; + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [ALT_F2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altf2_finished, altf2_reset), + [CTL_F5] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctlf5_finished, ctlf5_reset), + [ALT_F7] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altf7_finished, altf7_reset), + [DEL_NLCK] = ACTION_TAP_DANCE_DOUBLE(KC_DEL, KC_NLCK), + // Double tap right -> END + [TD_REND] = ACTION_TAP_DANCE_DOUBLE(KC_RIGHT, KC_END), + // Double tap left -> HOME + [TD_LOME] = ACTION_TAP_DANCE_DOUBLE(KC_LEFT, KC_HOME), + // Double tap right shift -> CAPS LOCK + [TD_RSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_RSFT, KC_CAPS), +}; diff --git a/users/imchipwood/imchipwood.h b/users/imchipwood/imchipwood.h new file mode 100644 index 000000000000..64726a862bf5 --- /dev/null +++ b/users/imchipwood/imchipwood.h @@ -0,0 +1,51 @@ +/* Copyright 2021 imchipwood + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +// change the tapping term to a little bit quicker +#ifdef TAPPING_TERM + #undef TAPPING_TERM +#endif +#define TAPPING_TERM 175 + +#ifdef TAPPING_TOGGLE + #undef TAPPING_TOGGLE +#endif +#define TAPPING_TOGGLE 2 + + +enum td_keycodes { + TD_REND = 0, // right when tapped, end when double tapped + TD_LOME, // left when tapped, home when double tapped + TD_RSFT_CAPS, + ALT_F2, // F2 when tapped, LALT when held, LALT+F2 when double tapped + CTL_F5, // F5 when tapped, LCTL when held, LCTL+F5 when double tapped + ALT_F7, // F7 when tapped, LALT when held, LALT+F7 when double tapped + DEL_NLCK, // DEL when tapped, NUMLOCK when double tapped +}; + + +typedef enum { SINGLE_TAP, SINGLE_HOLD, DOUBLE_TAP } td_state_t; +int cur_dance(qk_tap_dance_state_t *state); + +void altf2_finished(qk_tap_dance_state_t *state, void *user_data); +void altf2_reset(qk_tap_dance_state_t *state, void *user_data); +void ctlf5_finished(qk_tap_dance_state_t *state, void *user_data); +void ctlf5_reset(qk_tap_dance_state_t *state, void *user_data); +void altf7_finished(qk_tap_dance_state_t *state, void *user_data); +void altf7_reset(qk_tap_dance_state_t *state, void *user_data); diff --git a/users/imchipwood/rules.mk b/users/imchipwood/rules.mk new file mode 100644 index 000000000000..87cca5b5e2d1 --- /dev/null +++ b/users/imchipwood/rules.mk @@ -0,0 +1,2 @@ +SRC += imchipwood.c +TAP_DANCE_ENABLE=yes From 16e52980c4072b0e227e88307a109fe111907079 Mon Sep 17 00:00:00 2001 From: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com> Date: Tue, 20 Jul 2021 12:58:39 -0400 Subject: [PATCH 028/328] [Keyboard] Hard Light - Add keyboard, basic keymap (#12654) Co-authored-by: ridingqwerty Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/edi/hardlight/mk1/config.h | 109 +++++++++++++++++ .../edi/hardlight/mk1/keymaps/.gitignore | 1 + .../hardlight/mk1/keymaps/default/config.h | 20 +++ .../hardlight/mk1/keymaps/default/keymap.c | 115 ++++++++++++++++++ keyboards/edi/hardlight/mk1/mk1.c | 18 +++ keyboards/edi/hardlight/mk1/mk1.h | 41 +++++++ keyboards/edi/hardlight/mk1/readme.md | 19 +++ keyboards/edi/hardlight/mk1/rules.mk | 23 ++++ 8 files changed, 346 insertions(+) create mode 100644 keyboards/edi/hardlight/mk1/config.h create mode 100644 keyboards/edi/hardlight/mk1/keymaps/.gitignore create mode 100644 keyboards/edi/hardlight/mk1/keymaps/default/config.h create mode 100644 keyboards/edi/hardlight/mk1/keymaps/default/keymap.c create mode 100644 keyboards/edi/hardlight/mk1/mk1.c create mode 100644 keyboards/edi/hardlight/mk1/mk1.h create mode 100644 keyboards/edi/hardlight/mk1/readme.md create mode 100644 keyboards/edi/hardlight/mk1/rules.mk diff --git a/keyboards/edi/hardlight/mk1/config.h b/keyboards/edi/hardlight/mk1/config.h new file mode 100644 index 000000000000..be136fe9c90b --- /dev/null +++ b/keyboards/edi/hardlight/mk1/config.h @@ -0,0 +1,109 @@ +/* +©2021 Everywhere Defense Industries / Fate Everywhere + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xF7E0 +#define PRODUCT_ID 0x2401 +#define DEVICE_VER 0x0000 +#define MANUFACTURER Everywhere Defense Industries +#define PRODUCT Hard Light + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +/* + * 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 { B0, B1, B2, B3, D4, D6, D7, B4 } +#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, B5 } +#define UNUSED_PINS { B7, D2, D3, D5 } + + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN C7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* 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 + +/* + * Enable RGB Underlighting + */ +#define RGB_DI_PIN C7 +#define RGBLED_NUM 15 +#define RGBLIGHT_ANIMATIONS +//#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//#define RGBLIGHT_EFFECT_KNIGHT +//#define RGBLIGHT_EFFECT_TWINKLE +//#define RGBLIGHT_EFFECT_BREATHING + + +/* + * Enable Audio Subsystem with two voices + */ +// #define AUDIO_PIN C6 + + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful 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 diff --git a/keyboards/edi/hardlight/mk1/keymaps/.gitignore b/keyboards/edi/hardlight/mk1/keymaps/.gitignore new file mode 100644 index 000000000000..08a0f321a2d7 --- /dev/null +++ b/keyboards/edi/hardlight/mk1/keymaps/.gitignore @@ -0,0 +1 @@ +fate \ No newline at end of file diff --git a/keyboards/edi/hardlight/mk1/keymaps/default/config.h b/keyboards/edi/hardlight/mk1/keymaps/default/config.h new file mode 100644 index 000000000000..2db5f3b3282b --- /dev/null +++ b/keyboards/edi/hardlight/mk1/keymaps/default/config.h @@ -0,0 +1,20 @@ +/* +©2021 Everywhere Defense Industries / Fate Everywhere + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// place overrides here diff --git a/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c b/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c new file mode 100644 index 000000000000..251b6c8b38fe --- /dev/null +++ b/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c @@ -0,0 +1,115 @@ +/* +©2021 Everywhere Defense Industries / Fate Everywhere + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, + _SET, +}; + +// Readability keycodes +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define SET MO(_SET) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +/* MAIN + * .-----------------------------------------------------------------------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Backsp | Delete | 7 | 8 | 9 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | Pause | 4 | 5 | 6 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LShift | Z | X | C | V | B | N | M | , | . | / | Up | Enter | 1 | 2 | 3 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCtrl | Lock | GUI | Alt | Lower | Space | Space | Raise | PrtScr | RShift | Left | Down | Right | 0 | . | Enter | + * '-----------------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_MAIN] = LAYOUT_ortho_4x16( + 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_DEL, KC_KP_7, KC_KP_8, KC_KP_9, + 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_PAUS, KC_KP_4, KC_KP_5, KC_KP_6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, KC_KP_1, KC_KP_2, KC_KP_3, + KC_LCTL, KC_LOCK, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_PSCR, KC_RSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_0, KC_KP_DOT, KC_PENT + ), + +/* RAISE + * .-----------------------------------------------------------------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | Insert | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | - | = | [ | ] | \ | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | PgUp | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | Vol- | PgDn | Vol+ | | | | + * '-----------------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_RAISE] = LAYOUT_ortho_4x16( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_INS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_PGDN, KC_VOLU, _______, _______, _______ + ), + +/* LOWER + * .-----------------------------------------------------------------------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | Home | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | Mute | End | Play | | | | + * '-----------------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_LOWER] = LAYOUT_ortho_4x16( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, _______, _______, + _______, 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_MUTE, KC_END, KC_MPLY, _______, _______, _______ + ), + + /* SETTINGS + * .-----------------------------------------------------------------------------------------------------------------------------------------------. + * | | CapLok | ScrLok | NumLok | | | | RGB IO | Mode+ | Mode- | Plain | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | Hue+ | Sat+ | Val+ | RSwirl | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | Hue- | Sat- | Val- | Larsen | | Reset | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_SET] = LAYOUT_ortho_4x16( + _______, KC_CAPS, KC_SLCK, KC_NLCK, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_M_P, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_M_SW, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_M_K, _______, RESET, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _SET); +} \ No newline at end of file diff --git a/keyboards/edi/hardlight/mk1/mk1.c b/keyboards/edi/hardlight/mk1/mk1.c new file mode 100644 index 000000000000..5a1e0bbb1912 --- /dev/null +++ b/keyboards/edi/hardlight/mk1/mk1.c @@ -0,0 +1,18 @@ +/* +©2021 Everywhere Defense Industries / Fate Everywhere + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "mk1.h" diff --git a/keyboards/edi/hardlight/mk1/mk1.h b/keyboards/edi/hardlight/mk1/mk1.h new file mode 100644 index 000000000000..e8ef9777a4c0 --- /dev/null +++ b/keyboards/edi/hardlight/mk1/mk1.h @@ -0,0 +1,41 @@ +/* +©2021 Everywhere Defense Industries / Fate Everywhere + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array + +#define LAYOUT_ortho_4x16( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, K31, \ + K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47, \ + K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K60, K61, K62, K63 \ +) \ +{ \ + { K00, K02, K04, K06, K08, K10, K12, K14 }, \ + { K01, K03, K05, K07, K09, K11, K13, K15 }, \ + { K16, K18, K20, K22, K24, K26, K28, K30 }, \ + { K17, K19, K21, K23, K25, K27, K29, K31 }, \ + { K32, K34, K36, K38, K40, K42, K44, K46 }, \ + { K33, K35, K37, K39, K41, K43, K45, K47 }, \ + { K48, K50, K52, K54, K56, K58, K60, K62 }, \ + { K49, K51, K53, K55, K57, K59, K61, K63 } \ +} diff --git a/keyboards/edi/hardlight/mk1/readme.md b/keyboards/edi/hardlight/mk1/readme.md new file mode 100644 index 000000000000..177a46b5d087 --- /dev/null +++ b/keyboards/edi/hardlight/mk1/readme.md @@ -0,0 +1,19 @@ +# Hard Light Mark 1 + +![Hard Light Mark 1](https://i.imgur.com/X6Katarh.png) + +A compact 60% keyboard designed by Fate Everywhere. Born out of the desire for a Planck with a numpad for technical work and a lack of reliance on the Elite-C. + +* Keyboard Maintainer: [Fate Everywhere](https://github.com/fateeverywhere) +* Hardware Supported: Revision P, Revision Q, Mark 1 Hard Light. +* Hardware Availability: Seven Store (https://store.7storm.org). + +Build example for this keyboard (after setting up your build environment): + + make edi/hardlight/mk1:default + +Flash example for this keyboard (after setting up your build environment): + + make edi/hardlight/mk1: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). diff --git a/keyboards/edi/hardlight/mk1/rules.mk b/keyboards/edi/hardlight/mk1/rules.mk new file mode 100644 index 000000000000..33595b42e094 --- /dev/null +++ b/keyboards/edi/hardlight/mk1/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +KEY_LOCK_ENABLE = yes \ No newline at end of file From 8f6867ce95969af99a1aa49c38c86cf5827a3004 Mon Sep 17 00:00:00 2001 From: aydenvis <38897937+aydenvis@users.noreply.github.com> Date: Tue, 20 Jul 2021 12:11:49 -0500 Subject: [PATCH 029/328] [Docs] Added note about no split support (#12512) Currently, this feature isn't supported on splits, spent about an hour troubleshooting my board and firmware before asking, and turns out it's not in place. Note added to save others from this in the future. --- docs/feature_led_indicators.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/feature_led_indicators.md b/docs/feature_led_indicators.md index 10e095ab155b..a415b4b4dfc7 100644 --- a/docs/feature_led_indicators.md +++ b/docs/feature_led_indicators.md @@ -1,5 +1,7 @@ # LED Indicators +?> Currently, this feature is not supported for split keyboards + QMK provides methods to read 5 of the LEDs defined in the HID spec: * Num Lock From c6698cfce314cdc75cdaa06b2440d2ae0c7b6ea2 Mon Sep 17 00:00:00 2001 From: sekigon-gonnoc <43873124+sekigon-gonnoc@users.noreply.github.com> Date: Wed, 21 Jul 2021 02:24:22 +0900 Subject: [PATCH 030/328] [Keyboard] Add keyboard GRS-70EC (#11296) --- keyboards/sekigon/grs_70ec/config.h | 154 +++++++++++++++++ keyboards/sekigon/grs_70ec/ec_switch_matrix.c | 161 ++++++++++++++++++ keyboards/sekigon/grs_70ec/ec_switch_matrix.h | 38 +++++ keyboards/sekigon/grs_70ec/grs_70ec.c | 38 +++++ keyboards/sekigon/grs_70ec/grs_70ec.h | 49 ++++++ keyboards/sekigon/grs_70ec/info.json | 83 +++++++++ .../sekigon/grs_70ec/keymaps/default/keymap.c | 41 +++++ keyboards/sekigon/grs_70ec/matrix.c | 107 ++++++++++++ keyboards/sekigon/grs_70ec/readme.md | 19 +++ keyboards/sekigon/grs_70ec/rules.mk | 26 +++ 10 files changed, 716 insertions(+) create mode 100644 keyboards/sekigon/grs_70ec/config.h create mode 100644 keyboards/sekigon/grs_70ec/ec_switch_matrix.c create mode 100644 keyboards/sekigon/grs_70ec/ec_switch_matrix.h create mode 100644 keyboards/sekigon/grs_70ec/grs_70ec.c create mode 100644 keyboards/sekigon/grs_70ec/grs_70ec.h create mode 100644 keyboards/sekigon/grs_70ec/info.json create mode 100644 keyboards/sekigon/grs_70ec/keymaps/default/keymap.c create mode 100644 keyboards/sekigon/grs_70ec/matrix.c create mode 100644 keyboards/sekigon/grs_70ec/readme.md create mode 100644 keyboards/sekigon/grs_70ec/rules.mk diff --git a/keyboards/sekigon/grs_70ec/config.h b/keyboards/sekigon/grs_70ec/config.h new file mode 100644 index 000000000000..aa740e7775ab --- /dev/null +++ b/keyboards/sekigon/grs_70ec/config.h @@ -0,0 +1,154 @@ +/* +Copyright 2020 sekigon-gonnoc + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x70EC +#define DEVICE_VER 0x0001 +#define MANUFACTURER sekigon-gonnoc +#define PRODUCT GRS-70EC + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +/* EC switch threshold with hysteresis */ +#define HIGH_THRESHOLD 300 +#define LOW_THRESHOLD 200 + +/* + * 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 { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { S2, S1, S0, S3, S5, S7, S6, S4 } +#define UNUSED_PINS +#define DISCHARGE_PIN B1 +#define ANALOG_PORT F6 +#define MUX_SEL_PINS { D1, D0, D4 } + +/* 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 D3 // or D1, D2, D3, E6 +#define EE_HANDS + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/sekigon/grs_70ec/ec_switch_matrix.c b/keyboards/sekigon/grs_70ec/ec_switch_matrix.c new file mode 100644 index 000000000000..88e9bdabdb19 --- /dev/null +++ b/keyboards/sekigon/grs_70ec/ec_switch_matrix.c @@ -0,0 +1,161 @@ +/* Copyright 2020 sekigon-gonnoc + * + * 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 "ec_switch_matrix.h" + +#include "quantum.h" +#include "analog.h" +#include "print.h" + +// sensing channel definitions +#define S0 0 +#define S1 1 +#define S2 2 +#define S3 3 +#define S4 4 +#define S5 5 +#define S6 6 +#define S7 7 + +// pin connections +const uint8_t row_pins[] = MATRIX_ROW_PINS; +const uint8_t col_channels[] = MATRIX_COL_PINS; +const uint8_t mux_sel_pins[] = MUX_SEL_PINS; + +_Static_assert(sizeof(mux_sel_pins) == 3, "invalid MUX_SEL_PINS"); + +static ecsm_config_t config; +static uint16_t ecsm_sw_value[MATRIX_ROWS][MATRIX_COLS]; + +static inline void discharge_capacitor(void) { setPinOutput(DISCHARGE_PIN); } +static inline void charge_capacitor(uint8_t row) { + setPinInput(DISCHARGE_PIN); + writePinHigh(row_pins[row]); +} + +static inline void clear_all_row_pins(void) { + for (int row = 0; row < sizeof(row_pins); row++) { + writePinLow(row_pins[row]); + } +} + +static inline void init_mux_sel(void) { + for (int idx = 0; idx < sizeof(mux_sel_pins); idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +static inline void select_mux(uint8_t col) { + uint8_t ch = col_channels[col]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +static inline void init_row(void) { + for (int idx = 0; idx < sizeof(row_pins); idx++) { + setPinOutput(row_pins[idx]); + writePinLow(row_pins[idx]); + } +} + +// Initialize pins +int ecsm_init(ecsm_config_t const* const ecsm_config) { + // save config + config = *ecsm_config; + + // initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutput(DISCHARGE_PIN); + + // set analog reference + analogReference(ADC_REF_POWER); + + // initialize drive lines + init_row(); + + // initialize multiplexer select pin + init_mux_sel(); + + // set discharge pin to charge mode + setPinInput(DISCHARGE_PIN); + + return 0; +} + +// Read key value of key (row, col) +uint16_t ecsm_readkey_raw(uint8_t row, uint8_t col) { + uint16_t sw_value = 0; + + discharge_capacitor(); + + select_mux(col); + + clear_all_row_pins(); + + cli(); + + charge_capacitor(row); + + sw_value = analogReadPin(ANALOG_PORT); + + sei(); + + return sw_value; +} + +// Update press/release state of key at (row, col) +bool ecsm_update_key(matrix_row_t* current_row, uint8_t col, uint16_t sw_value) { + bool current_state = (*current_row >> col) & 1; + + // press to release + if (current_state && sw_value < config.low_threshold) { + *current_row &= ~(1 << col); + return true; + } + + // release to press + if ((!current_state) && sw_value > config.high_threshold) { + *current_row |= (1 << col); + return true; + } + + return false; +} + +// Scan key values and update matrix state +bool ecsm_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < sizeof(row_pins); row++) { + ecsm_sw_value[row][col] = ecsm_readkey_raw(row, col); + updated |= ecsm_update_key(¤t_matrix[row], col, ecsm_sw_value[row][col]); + } + } + + return updated; +} + +// Print key values +void ecsm_print_matrix(void) { + for (int row = 0; row < sizeof(row_pins); row++) { + for (int col = 0; col < sizeof(col_channels); col++) { + xprintf("%4d", ecsm_sw_value[row][col]); + } + xprintf("\n"); + } +} diff --git a/keyboards/sekigon/grs_70ec/ec_switch_matrix.h b/keyboards/sekigon/grs_70ec/ec_switch_matrix.h new file mode 100644 index 000000000000..c690fe8e27dd --- /dev/null +++ b/keyboards/sekigon/grs_70ec/ec_switch_matrix.h @@ -0,0 +1,38 @@ +/* Copyright 2020 sekigon-gonnoc + * + * 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 . + */ + +// +// Scan EC switch matrix using 74HC7051 +// Define MUX_SEL_PINS, DISCHARGE_PIN, and ANALOG_PORT to compile +// + +#pragma once + +#include +#include + +#include "matrix.h" + +typedef struct { + uint16_t low_threshold; // threshold for key release + uint16_t high_threshold; // threshold for key press +} ecsm_config_t; + +int ecsm_init(ecsm_config_t const* const ecsm_config); +bool ecsm_matrix_scan(matrix_row_t current_matrix[]); +void ecsm_print_matrix(void); +uint16_t ecsm_readkey_raw(uint8_t row, uint8_t col); +bool ecsm_update_key(matrix_row_t* current_row, uint8_t col, uint16_t sw_value); diff --git a/keyboards/sekigon/grs_70ec/grs_70ec.c b/keyboards/sekigon/grs_70ec/grs_70ec.c new file mode 100644 index 000000000000..e8791c00c13c --- /dev/null +++ b/keyboards/sekigon/grs_70ec/grs_70ec.c @@ -0,0 +1,38 @@ +/* Copyright 2020 sekigon-gonnoc + * + * 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 "grs_70ec.h" + +void led_on(void) { + setPinOutput(D2); + writePinHigh(D2); +} + +void led_off(void) { writePinLow(D2); } + +void keyboard_post_init_kb() { + led_on(); + + keyboard_post_init_user(); +} + +void keyboard_pre_init_kb(void) { + // Turn on extern circuit + setPinOutput(F7); + writePinHigh(F7); + + keyboard_pre_init_user(); +} diff --git a/keyboards/sekigon/grs_70ec/grs_70ec.h b/keyboards/sekigon/grs_70ec/grs_70ec.h new file mode 100644 index 000000000000..7b2b0c596ca0 --- /dev/null +++ b/keyboards/sekigon/grs_70ec/grs_70ec.h @@ -0,0 +1,49 @@ +/* Copyright 2020 sekigon-gonnoc + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +void led_on(void); +void led_off(void); + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, R07, \ + L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, R17, \ + L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, R27, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, R37, \ + L40, L42, L43, L45, L46, R40, R41, R42, R43, R45, R46, R47 \ +) { \ + { L00, L01, L02, L03, L04, L05, L06, KC_NO }, \ + { KC_NO, L11, L12, L13, L14, L15, L16, KC_NO }, \ + { KC_NO, L21, L22, L23, L24, L25, L26, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, L36, KC_NO }, \ + { L40, KC_NO, L42, L43, KC_NO, L45, L46, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, R06, R07 }, \ + { R10, R11, R12, R13, R14, R15, R16, R17 }, \ + { R20, R21, R22, R23, R24, R25, R26, R27 }, \ + { R30, R31, R32, R33, R34, R35, R36, R37 }, \ + { R40, R41, R42, R43, KC_NO, R45, R46, R47 } \ +} diff --git a/keyboards/sekigon/grs_70ec/info.json b/keyboards/sekigon/grs_70ec/info.json new file mode 100644 index 000000000000..0affe821ae6b --- /dev/null +++ b/keyboards/sekigon/grs_70ec/info.json @@ -0,0 +1,83 @@ +{ + "keyboard_name": "grs_70ec", + "url": "https://github.com/sekigon-gonnoc/GRS-70EC-doc/", + "maintainer": "sekigon-gonnoc", + "width": 15.75, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k00", "x": 0, "y": 0 }, + { "label": "k01", "x": 1, "y": 0 }, + { "label": "k02", "x": 2, "y": 0 }, + { "label": "k03", "x": 3, "y": 0 }, + { "label": "k04", "x": 4, "y": 0 }, + { "label": "k05", "x": 5, "y": 0 }, + { "label": "k06", "x": 6, "y": 0 }, + { "label": "k50", "x": 7.75, "y": 0 }, + { "label": "k51", "x": 8.75, "y": 0 }, + { "label": "k52", "x": 9.75, "y": 0 }, + { "label": "k53", "x": 10.75, "y": 0 }, + { "label": "k54", "x": 11.75, "y": 0 }, + { "label": "k55", "x": 12.75, "y": 0 }, + { "label": "k56", "x": 13.75, "y": 0 }, + { "label": "k57", "x": 14.75, "y": 0 }, + { "label": "k11", "x": 0, "y": 1, "w": 1.5 }, + { "label": "k12", "x": 1.5, "y": 1 }, + { "label": "k13", "x": 2.5, "y": 1 }, + { "label": "k14", "x": 3.5, "y": 1 }, + { "label": "k15", "x": 4.5, "y": 1 }, + { "label": "k16", "x": 5.5, "y": 1 }, + { "label": "k60", "x": 7.25, "y": 1 }, + { "label": "k61", "x": 8.25, "y": 1 }, + { "label": "k62", "x": 9.25, "y": 1 }, + { "label": "k63", "x": 10.25, "y": 1 }, + { "label": "k64", "x": 11.25, "y": 1 }, + { "label": "k65", "x": 12.25, "y": 1 }, + { "label": "k66", "x": 13.25, "y": 1 }, + { "label": "k67", "x": 14.25, "y": 1, "w": 1.5 }, + { "label": "k21", "x": 0, "y": 2, "w": 1.75 }, + { "label": "k22", "x": 1.75, "y": 2 }, + { "label": "k23", "x": 2.75, "y": 2 }, + { "label": "k24", "x": 3.75, "y": 2 }, + { "label": "k25", "x": 4.75, "y": 2 }, + { "label": "k26", "x": 5.75, "y": 2 }, + { "label": "k70", "x": 7.5, "y": 2 }, + { "label": "k71", "x": 8.5, "y": 2 }, + { "label": "k72", "x": 9.5, "y": 2 }, + { "label": "k73", "x": 10.5, "y": 2 }, + { "label": "k74", "x": 11.5, "y": 2 }, + { "label": "k75", "x": 12.5, "y": 2 }, + { "label": "k76", "x": 13.5, "y": 2 }, + { "label": "k77", "x": 14.5, "y": 2 }, + { "label": "k30", "x": 0, "y": 3 }, + { "label": "k31", "x": 1, "y": 3 }, + { "label": "k32", "x": 2, "y": 3 }, + { "label": "k33", "x": 3, "y": 3 }, + { "label": "k34", "x": 4, "y": 3 }, + { "label": "k35", "x": 5, "y": 3 }, + { "label": "k36", "x": 6, "y": 3 }, + { "label": "k80", "x": 7.75, "y": 3 }, + { "label": "k81", "x": 8.75, "y": 3 }, + { "label": "k82", "x": 9.75, "y": 3 }, + { "label": "k83", "x": 10.75, "y": 3 }, + { "label": "k84", "x": 11.75, "y": 3 }, + { "label": "k85", "x": 12.75, "y": 3 }, + { "label": "k86", "x": 13.75, "y": 3 }, + { "label": "k87", "x": 14.75, "y": 3 }, + { "label": "k40", "x": 0, "y": 4, "w": 1.25 }, + { "label": "k42", "x": 2, "y": 4 }, + { "label": "k43", "x": 3, "y": 4, "w": 1.25 }, + { "label": "k45", "x": 4.25, "y": 4, "w": 1.25 }, + { "label": "k46", "x": 5.5, "y": 4, "w": 1.25 }, + { "label": "k90", "x": 7.5, "y": 4, "w": 1.25 }, + { "label": "k91", "x": 8.75, "y": 4, "w": 1.25 }, + { "label": "k92", "x": 10, "y": 4, "w": 1.25 }, + { "label": "k93", "x": 11.25, "y": 4 }, + { "label": "k95", "x": 12.75, "y": 4 }, + { "label": "k96", "x": 13.75, "y": 4 }, + { "label": "k97", "x": 14.75, "y": 4 } + ] + } + } +} diff --git a/keyboards/sekigon/grs_70ec/keymaps/default/keymap.c b/keyboards/sekigon/grs_70ec/keymaps/default/keymap.c new file mode 100644 index 000000000000..bbb0fe4a2c60 --- /dev/null +++ b/keyboards/sekigon/grs_70ec/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2020 sekigon-gonnoc + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, LALT(KC_GRV), + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(1,KC_SPC), LT(2,KC_ENT), KC_ENT, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_DEL, + KC_TAB, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9),S(KC_0), KC_LBRC, KC_RBRC, KC_PIPE, + KC_LCTL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCBR, KC_MINS, KC_EQL, KC_RCBR,KC_COLN, KC_DQT, KC_ENT, KC_ENT, + KC_LSFT, KC_LSFT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC,KC_BSLS, KC_RSFT, KC_UP, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_TRNS, KC_ENT, KC_ENT, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [2] = LAYOUT( + KC_TILD, 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_INS, KC_INS, + KC_TAB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,KC_SCLN, KC_QUOT, KC_ENT, LALT(KC_GRV), + KC_LSFT, KC_LSFT, KC_F11, KC_F12, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_TRNS, KC_ENT, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + diff --git a/keyboards/sekigon/grs_70ec/matrix.c b/keyboards/sekigon/grs_70ec/matrix.c new file mode 100644 index 000000000000..7e90d99af63a --- /dev/null +++ b/keyboards/sekigon/grs_70ec/matrix.c @@ -0,0 +1,107 @@ +/* Copyright 2020 sekigon-gonnoc + * + * 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 "grs_70ec.h" + +#include "ec_switch_matrix.h" +#include "matrix.h" +#include "debug.h" +#include "split_util.h" +#include "transport.h" +#include "debounce.h" + +#ifndef LOW_THRESHOLD +# define LOW_THRESHOLD 200 +#endif + +#ifndef HIGH_THRESHOLD +# define HIGH_THRESHOLD 300 +#endif + +#define ERROR_DISCONNECT_COUNT 20 + +#define ROWS_PER_HAND (MATRIX_ROWS / 2) + +/* matrix state(1:on, 0:off) */ +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +// row offsets for each hand +uint8_t thisHand, thatHand; + +// user-defined overridable functions +__attribute__((weak)) void matrix_slave_scan_user(void) {} + +void matrix_init_custom(void) { + split_pre_init(); + + ecsm_config_t ecsm_config = {.low_threshold = LOW_THRESHOLD, .high_threshold = HIGH_THRESHOLD}; + + ecsm_init(&ecsm_config); + + thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); + thatHand = ROWS_PER_HAND - thisHand; + + split_post_init(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ecsm_matrix_scan(current_matrix); + + static int cnt = 0; + if (cnt++ == 300) { + cnt = 0; + ecsm_print_matrix(); + print("\n"); + } + + return updated; +} + +void matrix_post_scan(void) { + if (is_keyboard_master()) { + static uint8_t error_count; + + if (!transport_master(matrix + thatHand)) { + error_count++; + + if (error_count > ERROR_DISCONNECT_COUNT) { + // reset other half if disconnected + dprintf("Error: disconnect split half\n"); + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[thatHand + i] = 0; + } + } + } else { + error_count = 0; + } + + matrix_scan_quantum(); + } else { + transport_slave(matrix + thisHand); + + matrix_slave_scan_user(); + } +} + +uint8_t matrix_scan(void) { + bool changed = matrix_scan_custom(raw_matrix); + + debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, changed); + + matrix_post_scan(); + return changed; +} diff --git a/keyboards/sekigon/grs_70ec/readme.md b/keyboards/sekigon/grs_70ec/readme.md new file mode 100644 index 000000000000..c60e7fdb9364 --- /dev/null +++ b/keyboards/sekigon/grs_70ec/readme.md @@ -0,0 +1,19 @@ +# GRS-70EC + +![grs_70ec](https://raw.githubusercontent.com/sekigon-gonnoc/GRS-70EC-doc/master/img/GRS-70EC.JPG) + +A split keyboard using electrostatic capacitive switch + +* Keyboard Maintainer: [sekigon](https://github.com/sekigon-gonnoc) +* Hardware Supported: GRS-70EC PCB, Pro Micro +* Hardware Availability: [BOOTH Shop](https://nogikes.booth.pm/items/2626903) + +Make example for this keyboard (after setting up your build environment): + + make sekigon/grs_70ec:default + +Flashing example for this keyboard: + + make sekigon/grs_70ec: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). diff --git a/keyboards/sekigon/grs_70ec/rules.mk b/keyboards/sekigon/grs_70ec/rules.mk new file mode 100644 index 000000000000..410cd92474e5 --- /dev/null +++ b/keyboards/sekigon/grs_70ec/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +CUSTOM_MATRIX = lite +SPLIT_KEYBOARD = yes + +SRC += analog.c ec_switch_matrix.c matrix.c From 8c526703f8d16bea6c96de36933f053321494588 Mon Sep 17 00:00:00 2001 From: gkeyboard Date: Wed, 21 Jul 2021 00:43:44 +0700 Subject: [PATCH 031/328] [Keyboard] Update lm60n.h (#13249) --- keyboards/lm_keyboard/lm60n/lm60n.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/lm_keyboard/lm60n/lm60n.h b/keyboards/lm_keyboard/lm60n/lm60n.h index 31ac7b177a49..2cb9db157c00 100644 --- a/keyboards/lm_keyboard/lm60n/lm60n.h +++ b/keyboards/lm_keyboard/lm60n/lm60n.h @@ -160,13 +160,13 @@ */ #define LAYOUT_all_iso_6_25( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k68, k69, k6a, k6b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k58, k59, k5a, k5b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k58, k59, k5a, k5b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k5c, k5d, k5e, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k48, k49, k4a, k4b, \ k40, k41, k42, k43, k44, k45, k46, k47, k4c, k4d \ ) { \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, XXX }, \ @@ -189,13 +189,13 @@ */ #define LAYOUT_all_iso_7( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k68, k69, k6a, k6b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k58, k59, k5a, k5b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k58, k59, k5a, k5b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k5c, k5d, k5e, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k48, k49, k4a, k4b, \ k40, k41, k42, k43, k45, k46, k47, k4c, k4d \ ) { \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ { k40, k41, k42, k43, XXX, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, XXX }, \ From 42ac7c0541b2a9c2f38f6c2aac6d05163dec4a37 Mon Sep 17 00:00:00 2001 From: StefanGrindelwald <42373600+StefanGrindelwald@users.noreply.github.com> Date: Wed, 21 Jul 2021 01:46:29 +0800 Subject: [PATCH 032/328] [Keyboard] Add Momoka ergo (#13127) Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/momoka_ergo/config.h | 131 ++++++++++++++++++ keyboards/momoka_ergo/info.json | 82 +++++++++++ .../momoka_ergo/keymaps/default/keymap.c | 55 ++++++++ .../momoka_ergo/keymaps/default/readme.md | 1 + keyboards/momoka_ergo/momoka_ergo.c | 17 +++ keyboards/momoka_ergo/momoka_ergo.h | 53 +++++++ keyboards/momoka_ergo/readme.md | 29 ++++ keyboards/momoka_ergo/rules.mk | 23 +++ 8 files changed, 391 insertions(+) create mode 100644 keyboards/momoka_ergo/config.h create mode 100644 keyboards/momoka_ergo/info.json create mode 100644 keyboards/momoka_ergo/keymaps/default/keymap.c create mode 100644 keyboards/momoka_ergo/keymaps/default/readme.md create mode 100644 keyboards/momoka_ergo/momoka_ergo.c create mode 100644 keyboards/momoka_ergo/momoka_ergo.h create mode 100644 keyboards/momoka_ergo/readme.md create mode 100644 keyboards/momoka_ergo/rules.mk diff --git a/keyboards/momoka_ergo/config.h b/keyboards/momoka_ergo/config.h new file mode 100644 index 000000000000..3c22e3fc845a --- /dev/null +++ b/keyboards/momoka_ergo/config.h @@ -0,0 +1,131 @@ +/* +Copyright 2021 StefanGrindelwald + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER StefanGrindelwald +#define PRODUCT Momoka Ergo + +/* key matrix size */ +#define MATRIX_ROWS 14 +#define MATRIX_COLS 6 + +/* + * 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 { C6, D7, E6, B4, B5, B6, B7 } +#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW +#define SELECT_SOFT_SERIAL_SPEED 5 +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D1 // or D1, D2, D3, E6 + +#define RGB_DI_PIN C7 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 22 +#define RGBLED_SPLIT { 11, 11 } +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 3 + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 +#define BOOTMAGIC_KEY_SALT KC_RSFT||KC_LSFT +#define BOOTMAGIC_KEY_SKIP KC_ESC +#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_NO +#define OOTMAGIC_KEY_BOOTLOADER KC_RCTL||KC_LCTL +#define BOOTMAGIC_KEY_EE_HANDS_LEFT KC_T +#define BOOTMAGIC_KEY_EE_HANDS_RIGHT KC_Y +#define USE_SERIAL +#define SPLIT_USB_DETECT +#define EE_HANDS diff --git a/keyboards/momoka_ergo/info.json b/keyboards/momoka_ergo/info.json new file mode 100644 index 000000000000..ecbae947b07f --- /dev/null +++ b/keyboards/momoka_ergo/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "MOMOKA_ERGO", + "url": "", + "maintainer": "StefanGrindelwald", + "width": 19.5, + "height": 9.375, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"L02", "x":3.5, "y":0}, + {"label":"R03", "x":15, "y":0}, + {"label":"L03", "x":2.5, "y":0.125}, + {"label":"L01", "x":4.5, "y":0.125}, + {"label":"R04", "x":14, "y":0.125}, + {"label":"R02", "x":16, "y":0.125}, + {"label":"L00", "x":5.5, "y":0.25}, + {"label":"R05", "x":13, "y":0.25}, + {"label":"L05", "x":0, "y":0.375, "w":1.5}, + {"label":"L04", "x":1.5, "y":0.375}, + {"label":"R01", "x":17, "y":0.375}, + {"label":"R00", "x":18, "y":0.375, "w":1.5}, + {"label":"L12", "x":3.5, "y":1}, + {"label":"R13", "x":15, "y":1}, + {"label":"L13", "x":2.5, "y":1.125}, + {"label":"L11", "x":4.5, "y":1.125}, + {"label":"R14", "x":14, "y":1.125}, + {"label":"R12", "x":16, "y":1.125}, + {"label":"L10", "x":5.5, "y":1.25}, + {"label":"R15", "x":13, "y":1.25}, + {"label":"L15", "x":0, "y":1.375, "w":1.5}, + {"label":"L14", "x":1.5, "y":1.375}, + {"label":"R11", "x":17, "y":1.375}, + {"label":"R10", "x":18, "y":1.375, "w":1.5}, + {"label":"L22", "x":3.5, "y":2}, + {"label":"R23", "x":15, "y":2}, + {"label":"L23", "x":2.5, "y":2.125}, + {"label":"L21", "x":4.5, "y":2.125}, + {"label":"R24", "x":14, "y":2.125}, + {"label":"R22", "x":16, "y":2.125}, + {"label":"L20", "x":5.5, "y":2.25}, + {"label":"R25", "x":13, "y":2.25}, + {"label":"L25", "x":0, "y":2.375, "w":1.5}, + {"label":"L24", "x":1.5, "y":2.375}, + {"label":"R21", "x":17, "y":2.375}, + {"label":"R20", "x":18, "y":2.375, "w":1.5}, + {"label":"L32", "x":3.5, "y":3}, + {"label":"R33", "x":15, "y":3}, + {"label":"L33", "x":2.5, "y":3.125}, + {"label":"L31", "x":4.5, "y":3.125}, + {"label":"R34", "x":14, "y":3.125}, + {"label":"R32", "x":16, "y":3.125}, + {"label":"L30", "x":5.5, "y":3.25}, + {"label":"R35", "x":13, "y":3.25}, + {"label":"L35", "x":0, "y":3.375, "w":1.5}, + {"label":"L34", "x":1.5, "y":3.375}, + {"label":"R31", "x":17, "y":3.375}, + {"label":"R30", "x":18, "y":3.375, "w":1.5}, + {"label":"L42", "x":3.5, "y":4}, + {"label":"R43", "x":15, "y":4}, + {"label":"L43", "x":2.5, "y":4.125}, + {"label":"L41", "x":4.5, "y":4.125}, + {"label":"R44", "x":14, "y":4.125}, + {"label":"R42", "x":16, "y":4.125}, + {"label":"L45", "x":0.5, "y":4.375}, + {"label":"L44", "x":1.5, "y":4.375}, + {"label":"R41", "x":17, "y":4.375}, + {"label":"R40", "x":18, "y":4.375}, + {"label":"L51", "x":1, "y":4.375}, + {"label":"L40", "x":2, "y":4.375}, + {"label":"L52", "x":0, "y":5.375, "h":2}, + {"label":"L61", "x":1, "y":5.375, "h":2}, + {"label":"L50", "x":2, "y":5.375}, + {"label":"L60", "x":2, "y":6.375}, + {"label":"R45", "x":-3.0, "y":6.375}, + {"label":"R54", "x":-2, "y":6.375}, + {"label":"R55", "x":-3.0, "y":7.375}, + {"label":"R64", "x":-2, "y":7.375, "h":2}, + {"label":"R53", "x":-1.0, "y":7.375, "h":2}, + {"label":"R65", "x":-3.0, "y":8.375}] + } + } +} diff --git a/keyboards/momoka_ergo/keymaps/default/keymap.c b/keyboards/momoka_ergo/keymaps/default/keymap.c new file mode 100644 index 000000000000..ca1131ba2f0f --- /dev/null +++ b/keyboards/momoka_ergo/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2021 StefanGrindelwald + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 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_LSFT, 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_GRV, KC_EQL, KC_LEFT, KC_RGHT, KC_LALT, KC_RGUI, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, MO(_FN1), + KC_BSPC, KC_LCTL, KC_HOME, KC_PGUP, KC_RCTL, KC_SPC, + KC_DEL, KC_END, KC_PGDN, KC_ENT + ), + [_FN1] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MO(_FN2), _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, RGB_TOG, MO(_FN2), + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_VAD, RGB_SAI, RGB_SAD, _______, + _______, _______, _______, RGB_HUI, _______, _______, + _______, _______, RGB_HUD, _______ + ), + [_FN2] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RESET, _______, _______, _______, _______, RESET, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______, + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_VAD, RGB_SAI, RGB_SAD, _______, + _______, _______, _______, RGB_HUI, _______, _______, + _______, _______, RGB_HUD, _______ + ) + +}; diff --git a/keyboards/momoka_ergo/keymaps/default/readme.md b/keyboards/momoka_ergo/keymaps/default/readme.md new file mode 100644 index 000000000000..390149d6bb3c --- /dev/null +++ b/keyboards/momoka_ergo/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for momoka_ergo diff --git a/keyboards/momoka_ergo/momoka_ergo.c b/keyboards/momoka_ergo/momoka_ergo.c new file mode 100644 index 000000000000..8069d7f51224 --- /dev/null +++ b/keyboards/momoka_ergo/momoka_ergo.c @@ -0,0 +1,17 @@ +/* Copyright 2021 StefanGrindelwald + * + * 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 "momoka_ergo.h" diff --git a/keyboards/momoka_ergo/momoka_ergo.h b/keyboards/momoka_ergo/momoka_ergo.h new file mode 100644 index 000000000000..93faad449088 --- /dev/null +++ b/keyboards/momoka_ergo/momoka_ergo.h @@ -0,0 +1,53 @@ +/* Copyright 2021 StefanGrindelwald + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + L05, L04, L03, L02, L01, L00, R05, R04, R03, R02, R01, R00, \ + L15, L14, L13, L12, L11, L10, R15, R14, R13, R12, R11, R10, \ + L25, L24, L23, L22, L21, L20, R25, R24, R23, R22, R21, R20, \ + L35, L34, L33, L32, L31, L30, R35, R34, R33, R32, R31, R30, \ + L45, L44, L43, L42, L41, L40, R45, R44, R43, R42, R41, R40, \ + L52, L51, L50, R55, R54, R53, \ + L61, L60, R65, R64 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { L40, L41, L42, L43, L44, L45 },\ + { L50, L51, L52, KC_NO,KC_NO,KC_NO },\ + { L60, L61,KC_NO,KC_NO,KC_NO,KC_NO },\ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R35, R34, R33, R32, R31, R30 }, \ + { R45, R44, R43, R42, R41, R40 },\ + { R55, R54, R53, KC_NO, KC_NO, KC_NO }, \ + { R65, R64, KC_NO, KC_NO, KC_NO, KC_NO } \ + } diff --git a/keyboards/momoka_ergo/readme.md b/keyboards/momoka_ergo/readme.md new file mode 100644 index 000000000000..d0a289abaf84 --- /dev/null +++ b/keyboards/momoka_ergo/readme.md @@ -0,0 +1,29 @@ +# momoka_ergo + +![momoka_ergo](https://github.com/StefanGrindelwald/TestDemo/blob/master/Momoka_ergo.jpg?raw=true) + +The MOMOKA Ergo is a split keyboard that is based on the Ergodox standard layout. It has 35 keys and 11 RGB backlights on each part. The two parts of the keyboard is connected by a TRRS cable. + +* Keyboard Maintainer: [StefanGrindelwald](https://github.com/StefanGrindelwald) +* Hardware Supported: momoka.co/ergo +* Hardware Availability: momoka.co/ergo + +Bootloader: + +With the default keymap, you can easily use FN+Shift+D to enter the bootloader in left side and FN+shift+K in right side. Or you can just use the microswitch in the PCB. + +Make example for this keyboard (after setting up your build environment): + + make momoka_ergo:default + +Flashing example for this keyboard(Note that you need flash the both side keyboard respectively): + +For the left side: + + make momoka_ergo:default:dfu-split-left + +For the right side: + + make momoka_ergo:default:dfu-split-right + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/momoka_ergo/rules.mk b/keyboards/momoka_ergo/rules.mk new file mode 100644 index 000000000000..402f5b199aaf --- /dev/null +++ b/keyboards/momoka_ergo/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes From 3591312fa3d41cf18bc873a974698af3a59afcca Mon Sep 17 00:00:00 2001 From: Paul Ewers Date: Tue, 20 Jul 2021 10:46:52 -0700 Subject: [PATCH 033/328] [Keymap] Updates to personal Drop ALT keymap (#13058) --- .../massdrop/alt/keymaps/ewersp/README.md | 14 +- .../massdrop/alt/keymaps/ewersp/keymap.c | 134 ++++++++++++------ 2 files changed, 97 insertions(+), 51 deletions(-) diff --git a/keyboards/massdrop/alt/keymaps/ewersp/README.md b/keyboards/massdrop/alt/keymaps/ewersp/README.md index d2e691a9ef51..8a19bb6c19a5 100644 --- a/keyboards/massdrop/alt/keymaps/ewersp/README.md +++ b/keyboards/massdrop/alt/keymaps/ewersp/README.md @@ -6,11 +6,13 @@ This keymap is very similar to the default keymap for the Drop ALT, but it overl ### For example: ``` -LeftAlt + 1...N -> F1...FN -LeftAlt + L/R Arrows -> Home/End -LeftAlt + Home -> End -LeftAlt + Backspace -> Delete -LeftAlt + Esc -> Backtick (`) +LeftAlt + 1...N -> F1...FN +LeftAlt + L/R Arrows -> Home/End +LeftAlt + Home -> End +LeftAlt + Backspace -> Delete +LeftAlt + Esc -> Backtick (`) +LeftAlt + Shift + Esc -> Tilde (~) +LeftAlt + LeftShift + 4 -> Alt+F4 ``` The novel part of this keymap is that it **preserves the default functionality** of the left alt key, so ```'alt + tab', 'ctrl + alt + del', 'alt + f4'```, etc. all work as expected without using any janky timers. @@ -23,8 +25,6 @@ And finally, the original alt key functionality can be toggled at any time by pr This keymap was based on the 'default' Drop ALT keymap (and _not_ 'default_md') which means it supports all the fancy QMK RGB patterns, and isn't limited to the stock options that come with the board. -It's also worth noting that this keymap fixes an outstanding issue where the caps lock LED flickers when the RGB mode is keylight or underglow. I could not find a general purpose fix, but the one included here works quite well. - If you have any questions, feel free to reach out to me at: ewersp [at] gmail [dot] com. Enjoy! **<3** diff --git a/keyboards/massdrop/alt/keymaps/ewersp/keymap.c b/keyboards/massdrop/alt/keymaps/ewersp/keymap.c index 483ea3cfb2a1..d4f05b9f32d7 100644 --- a/keyboards/massdrop/alt/keymaps/ewersp/keymap.c +++ b/keyboards/massdrop/alt/keymaps/ewersp/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_MUTE, _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, TG(ALT), _______, _______, KC_PGUP, KC_VOLD, + _______, RGB_TOG, _______, _______, EEP_RST, MD_BOOT, NK_TOGG, DBG_TOG, _______, TG(ALT), _______, _______, KC_PGUP, KC_VOLD, _______, _______, KC_LALT, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ), [SUPR] = LAYOUT_65_ansi_blocker( @@ -50,34 +50,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -// If the super alt layer is the active layer -bool super_alt_layer_active = false; +// EEPROM storage mode +enum alt_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_KEYLIGHT, + RGB_MODE_UNDERGLOW, + RGB_MODE_NONE, +}; -// If we need to unregister alt when leaving the super alt layer -bool need_to_unregister_alt = false; +// EEPROM storage type +typedef union { + uint32_t raw; + struct { + uint8_t rgb_mode :8; + }; +} alt_config_t; + +alt_config_t alt_config; + +// Read from EEPROM on init to load the last saved mode +void keyboard_post_init_kb(void) { + alt_config.raw = eeconfig_read_user(); + switch (alt_config.rgb_mode) { + case RGB_MODE_ALL: + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + break; + case RGB_MODE_KEYLIGHT: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_NONE: + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + break; + } +} #define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)) #define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL)) #define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT)) -// Taken from 'g_led_config' in config_led.c -#define CAPS_LOCK_LED_ID 30 - -// This runs every matrix scan (every 'frame') -void rgb_matrix_indicators_user(void) { - led_flags_t flags = rgb_matrix_get_flags(); - - // If we're in either keylight or underglow modes (but not both simultaneously) - if (HAS_FLAGS(flags, LED_FLAG_KEYLIGHT) != HAS_FLAGS(flags, LED_FLAG_UNDERGLOW)) { +// If the super alt layer is the active layer +bool super_alt_layer_active = false; - // This fixes a bug where the caps lock LED flickers when toggled in either keylight or underglow modes - if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { - rgb_matrix_set_color(CAPS_LOCK_LED_ID, RGB_WHITE); - } else { - rgb_matrix_set_color(CAPS_LOCK_LED_ID, 0, 0, 0); - } - } -} +// If we need to unregister alt when leaving the super alt layer +bool need_to_unregister_alt = false; // This runs code every time that the layers get changed layer_state_t layer_state_set_user(layer_state_t state) { @@ -118,6 +140,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } // We still want to process the keycode normally return true; + case KC_F4: + // Map alt+shift+4 to alt+f4 + if (super_alt_layer_active && (get_mods() & MOD_BIT(KC_LSHIFT))) { + if (record->event.pressed) { + register_code(KC_LALT); + } else { + unregister_code(KC_LALT); + } + } + return true; case ALT_DEL: if (record->event.pressed) { register_code(KC_DEL); @@ -164,30 +196,44 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; + case EEP_RST: + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 500) { + eeconfig_init(); + } + } + return false; case RGB_TOG: if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case LED_FLAG_KEYLIGHT: { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case LED_FLAG_UNDERGLOW: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_disable_noeeprom(); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + alt_config.rgb_mode = RGB_MODE_KEYLIGHT; + break; + } + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + alt_config.rgb_mode = RGB_MODE_UNDERGLOW; + break; + } + case LED_FLAG_UNDERGLOW: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + alt_config.rgb_mode = RGB_MODE_NONE; + break; + } + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + alt_config.rgb_mode = RGB_MODE_ALL; + break; + } + } + eeconfig_update_user(alt_config.raw); } return false; default: From c1ba35363d4f7d76d63173312a0785401c6bff9f Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Tue, 20 Jul 2021 19:48:17 +0200 Subject: [PATCH 034/328] [Keyboard] Added Kineticlabs Emu (#12968) --- keyboards/kineticlabs/emu/hotswap/config.h | 42 +++ keyboards/kineticlabs/emu/hotswap/hotswap.c | 17 ++ keyboards/kineticlabs/emu/hotswap/hotswap.h | 37 +++ keyboards/kineticlabs/emu/hotswap/info.json | 100 +++++++ .../emu/hotswap/keymaps/default/keymap.c | 37 +++ .../emu/hotswap/keymaps/via/keymap.c | 55 ++++ .../emu/hotswap/keymaps/via/rules.mk | 2 + keyboards/kineticlabs/emu/hotswap/readme.md | 21 ++ keyboards/kineticlabs/emu/hotswap/rules.mk | 24 ++ keyboards/kineticlabs/emu/soldered/config.h | 42 +++ keyboards/kineticlabs/emu/soldered/info.json | 282 ++++++++++++++++++ .../emu/soldered/keymaps/default/keymap.c | 37 +++ .../emu/soldered/keymaps/via/keymap.c | 55 ++++ .../emu/soldered/keymaps/via/rules.mk | 2 + .../emu/soldered/keymaps/wkl/keymap.c | 37 +++ keyboards/kineticlabs/emu/soldered/readme.md | 21 ++ keyboards/kineticlabs/emu/soldered/rules.mk | 24 ++ keyboards/kineticlabs/emu/soldered/soldered.c | 17 ++ keyboards/kineticlabs/emu/soldered/soldered.h | 69 +++++ 19 files changed, 921 insertions(+) create mode 100644 keyboards/kineticlabs/emu/hotswap/config.h create mode 100644 keyboards/kineticlabs/emu/hotswap/hotswap.c create mode 100644 keyboards/kineticlabs/emu/hotswap/hotswap.h create mode 100644 keyboards/kineticlabs/emu/hotswap/info.json create mode 100644 keyboards/kineticlabs/emu/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/kineticlabs/emu/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/kineticlabs/emu/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/kineticlabs/emu/hotswap/readme.md create mode 100644 keyboards/kineticlabs/emu/hotswap/rules.mk create mode 100644 keyboards/kineticlabs/emu/soldered/config.h create mode 100644 keyboards/kineticlabs/emu/soldered/info.json create mode 100644 keyboards/kineticlabs/emu/soldered/keymaps/default/keymap.c create mode 100644 keyboards/kineticlabs/emu/soldered/keymaps/via/keymap.c create mode 100644 keyboards/kineticlabs/emu/soldered/keymaps/via/rules.mk create mode 100644 keyboards/kineticlabs/emu/soldered/keymaps/wkl/keymap.c create mode 100644 keyboards/kineticlabs/emu/soldered/readme.md create mode 100644 keyboards/kineticlabs/emu/soldered/rules.mk create mode 100644 keyboards/kineticlabs/emu/soldered/soldered.c create mode 100644 keyboards/kineticlabs/emu/soldered/soldered.h diff --git a/keyboards/kineticlabs/emu/hotswap/config.h b/keyboards/kineticlabs/emu/hotswap/config.h new file mode 100644 index 000000000000..57eaad44b419 --- /dev/null +++ b/keyboards/kineticlabs/emu/hotswap/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2021 kb-elmo + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xE015 +#define PRODUCT_ID 0xC387 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Kineticlabs +#define PRODUCT Emu Hotswap + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { E6, D4, B3, B1, B0, B7 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D5, D3, D2, D1, D0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/kineticlabs/emu/hotswap/hotswap.c b/keyboards/kineticlabs/emu/hotswap/hotswap.c new file mode 100644 index 000000000000..8b26d5cd84f8 --- /dev/null +++ b/keyboards/kineticlabs/emu/hotswap/hotswap.c @@ -0,0 +1,17 @@ +/* Copyright 2021 kb-elmo + * + * 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 "hotswap.h" diff --git a/keyboards/kineticlabs/emu/hotswap/hotswap.h b/keyboards/kineticlabs/emu/hotswap/hotswap.h new file mode 100644 index 000000000000..da02500fec80 --- /dev/null +++ b/keyboards/kineticlabs/emu/hotswap/hotswap.h @@ -0,0 +1,37 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_tkl_ansi( \ + k000, k002, k003, k004, k005, k006, k007, k008, k009, k011, k012, k013, k014, k015, k016, k017, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k114, k115, k116, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k214, k215, k216, k217, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k314, \ + k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k414, k416, \ + k500, k501, k502, k505, k510, k511, k513, k514, k515, k516, k517 \ +) { \ + { k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, ____, k011, k012, k013, k014, k015, k016, k017 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____, k114, k115, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, ____, k214, k215, k216, k217 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, ____, k314, ____, ____, ____ }, \ + { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, ____, ____, ____, k414, ____, k416, ____ }, \ + { k500, k501, k502, ____, ____, k505, ____, ____, ____, ____, k510, k511, ____, k513, k514, k515, k516, k517 } \ +} diff --git a/keyboards/kineticlabs/emu/hotswap/info.json b/keyboards/kineticlabs/emu/hotswap/info.json new file mode 100644 index 000000000000..07af2fdddef0 --- /dev/null +++ b/keyboards/kineticlabs/emu/hotswap/info.json @@ -0,0 +1,100 @@ +{ + "keyboard_name": "Emu hotswap", + "url": "", + "maintainer": "kb-elmo", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1.5}, + {"x":1, "y":1.5}, + {"x":2, "y":1.5}, + {"x":3, "y":1.5}, + {"x":4, "y":1.5}, + {"x":5, "y":1.5}, + {"x":6, "y":1.5}, + {"x":7, "y":1.5}, + {"x":8, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.5}, + {"x":11, "y":1.5}, + {"x":12, "y":1.5}, + {"x":13, "y":1.5, "w":2}, + {"x":15.25, "y":1.5}, + {"x":16.25, "y":1.5}, + {"x":17.25, "y":1.5}, + {"x":0, "y":2.5, "w":1.5}, + {"x":1.5, "y":2.5}, + {"x":2.5, "y":2.5}, + {"x":3.5, "y":2.5}, + {"x":4.5, "y":2.5}, + {"x":5.5, "y":2.5}, + {"x":6.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":8.5, "y":2.5}, + {"x":9.5, "y":2.5}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.5}, + {"x":12.5, "y":2.5}, + {"x":13.5, "y":2.5, "w":1.5}, + {"x":15.25, "y":2.5}, + {"x":16.25, "y":2.5}, + {"x":17.25, "y":2.5}, + {"x":0, "y":3.5, "w":1.75}, + {"x":1.75, "y":3.5}, + {"x":2.75, "y":3.5}, + {"x":3.75, "y":3.5}, + {"x":4.75, "y":3.5}, + {"x":5.75, "y":3.5}, + {"x":6.75, "y":3.5}, + {"x":7.75, "y":3.5}, + {"x":8.75, "y":3.5}, + {"x":9.75, "y":3.5}, + {"x":10.75, "y":3.5}, + {"x":11.75, "y":3.5}, + {"x":12.75, "y":3.5, "w":2.25}, + {"x":0, "y":4.5, "w":2.25}, + {"x":2.25, "y":4.5}, + {"x":3.25, "y":4.5}, + {"x":4.25, "y":4.5}, + {"x":5.25, "y":4.5}, + {"x":6.25, "y":4.5}, + {"x":7.25, "y":4.5}, + {"x":8.25, "y":4.5}, + {"x":9.25, "y":4.5}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.5}, + {"x":12.25, "y":4.5, "w":2.75}, + {"x":16.25, "y":4.5}, + {"x":0, "y":5.5, "w":1.25}, + {"x":1.25, "y":5.5, "w":1.25}, + {"x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"x":10, "y":5.5, "w":1.25}, + {"x":11.25, "y":5.5, "w":1.25}, + {"x":12.5, "y":5.5, "w":1.25}, + {"x":13.75, "y":5.5, "w":1.25}, + {"x":15.25, "y":5.5}, + {"x":16.25, "y":5.5}, + {"x":17.25, "y":5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/kineticlabs/emu/hotswap/keymaps/default/keymap.c b/keyboards/kineticlabs/emu/hotswap/keymaps/default/keymap.c new file mode 100644 index 000000000000..01a14010e6ec --- /dev/null +++ b/keyboards/kineticlabs/emu/hotswap/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 kb-elmo + * + * 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_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kineticlabs/emu/hotswap/keymaps/via/keymap.c b/keyboards/kineticlabs/emu/hotswap/keymaps/via/keymap.c new file mode 100644 index 000000000000..f5702905ca61 --- /dev/null +++ b/keyboards/kineticlabs/emu/hotswap/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2021 kb-elmo + * + * 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_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kineticlabs/emu/hotswap/keymaps/via/rules.mk b/keyboards/kineticlabs/emu/hotswap/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/kineticlabs/emu/hotswap/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kineticlabs/emu/hotswap/readme.md b/keyboards/kineticlabs/emu/hotswap/readme.md new file mode 100644 index 000000000000..bf4b681a9db1 --- /dev/null +++ b/keyboards/kineticlabs/emu/hotswap/readme.md @@ -0,0 +1,21 @@ +# Emu + +![emu](https://i.imgur.com/OiAQ6Vbl.jpg) + +TKL keyboard made by KineticLabs + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Emu soldered PCB +* Hardware Availability: Groupbuy + +Make example for this keyboard (after setting up your build environment): + + make kineticlabs/emu:default + +Flashing example for this keyboard: + + make kineticlabs/emu:default:flash + +**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board. + +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). diff --git a/keyboards/kineticlabs/emu/hotswap/rules.mk b/keyboards/kineticlabs/emu/hotswap/rules.mk new file mode 100644 index 000000000000..72eed40eb48e --- /dev/null +++ b/keyboards/kineticlabs/emu/hotswap/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = tkl_ansi \ No newline at end of file diff --git a/keyboards/kineticlabs/emu/soldered/config.h b/keyboards/kineticlabs/emu/soldered/config.h new file mode 100644 index 000000000000..0921911192ac --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2021 kb-elmo + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xE015 +#define PRODUCT_ID 0xC386 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Kineticlabs +#define PRODUCT Emu + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { E6, D4, B3, B1, B0, B7 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D5, D3, D2, D1, D0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/kineticlabs/emu/soldered/info.json b/keyboards/kineticlabs/emu/soldered/info.json new file mode 100644 index 000000000000..d5e7f4a40d13 --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/info.json @@ -0,0 +1,282 @@ +{ + "keyboard_name": "Emu hotswap", + "url": "", + "maintainer": "kb-elmo", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1.5}, + {"x":1, "y":1.5}, + {"x":2, "y":1.5}, + {"x":3, "y":1.5}, + {"x":4, "y":1.5}, + {"x":5, "y":1.5}, + {"x":6, "y":1.5}, + {"x":7, "y":1.5}, + {"x":8, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.5}, + {"x":11, "y":1.5}, + {"x":12, "y":1.5}, + {"x":13, "y":1.5}, + {"x":14, "y":1.5}, + {"x":15.25, "y":1.5}, + {"x":16.25, "y":1.5}, + {"x":17.25, "y":1.5}, + {"x":0, "y":2.5, "w":1.5}, + {"x":1.5, "y":2.5}, + {"x":2.5, "y":2.5}, + {"x":3.5, "y":2.5}, + {"x":4.5, "y":2.5}, + {"x":5.5, "y":2.5}, + {"x":6.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":8.5, "y":2.5}, + {"x":9.5, "y":2.5}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.5}, + {"x":12.5, "y":2.5}, + {"x":13.5, "y":2.5, "w":1.5}, + {"x":15.25, "y":2.5}, + {"x":16.25, "y":2.5}, + {"x":17.25, "y":2.5}, + {"x":0, "y":3.5, "w":1.75}, + {"x":1.75, "y":3.5}, + {"x":2.75, "y":3.5}, + {"x":3.75, "y":3.5}, + {"x":4.75, "y":3.5}, + {"x":5.75, "y":3.5}, + {"x":6.75, "y":3.5}, + {"x":7.75, "y":3.5}, + {"x":8.75, "y":3.5}, + {"x":9.75, "y":3.5}, + {"x":10.75, "y":3.5}, + {"x":11.75, "y":3.5}, + {"x":12.75, "y":3.5, "w":2.25}, + {"x":0, "y":4.5, "w":2.25}, + {"x":2.25, "y":4.5}, + {"x":3.25, "y":4.5}, + {"x":4.25, "y":4.5}, + {"x":5.25, "y":4.5}, + {"x":6.25, "y":4.5}, + {"x":7.25, "y":4.5}, + {"x":8.25, "y":4.5}, + {"x":9.25, "y":4.5}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.5}, + {"x":12.25, "y":4.5, "w":2.75}, + {"x":16.25, "y":4.5}, + {"x":0, "y":5.5, "w":1.25}, + {"x":1.25, "y":5.5, "w":1.25}, + {"x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"x":10, "y":5.5, "w":1.25}, + {"x":11.25, "y":5.5, "w":1.25}, + {"x":12.5, "y":5.5, "w":1.25}, + {"x":13.75, "y":5.5, "w":1.25}, + {"x":15.25, "y":5.5}, + {"x":16.25, "y":5.5}, + {"x":17.25, "y":5.5} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1.5}, + {"x":1, "y":1.5}, + {"x":2, "y":1.5}, + {"x":3, "y":1.5}, + {"x":4, "y":1.5}, + {"x":5, "y":1.5}, + {"x":6, "y":1.5}, + {"x":7, "y":1.5}, + {"x":8, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.5}, + {"x":11, "y":1.5}, + {"x":12, "y":1.5}, + {"x":13, "y":1.5, "w":2}, + {"x":15.25, "y":1.5}, + {"x":16.25, "y":1.5}, + {"x":17.25, "y":1.5}, + {"x":0, "y":2.5, "w":1.5}, + {"x":1.5, "y":2.5}, + {"x":2.5, "y":2.5}, + {"x":3.5, "y":2.5}, + {"x":4.5, "y":2.5}, + {"x":5.5, "y":2.5}, + {"x":6.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":8.5, "y":2.5}, + {"x":9.5, "y":2.5}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.5}, + {"x":12.5, "y":2.5}, + {"x":13.5, "y":2.5, "w":1.5}, + {"x":15.25, "y":2.5}, + {"x":16.25, "y":2.5}, + {"x":17.25, "y":2.5}, + {"x":0, "y":3.5, "w":1.75}, + {"x":1.75, "y":3.5}, + {"x":2.75, "y":3.5}, + {"x":3.75, "y":3.5}, + {"x":4.75, "y":3.5}, + {"x":5.75, "y":3.5}, + {"x":6.75, "y":3.5}, + {"x":7.75, "y":3.5}, + {"x":8.75, "y":3.5}, + {"x":9.75, "y":3.5}, + {"x":10.75, "y":3.5}, + {"x":11.75, "y":3.5}, + {"x":12.75, "y":3.5, "w":2.25}, + {"x":0, "y":4.5, "w":2.25}, + {"x":2.25, "y":4.5}, + {"x":3.25, "y":4.5}, + {"x":4.25, "y":4.5}, + {"x":5.25, "y":4.5}, + {"x":6.25, "y":4.5}, + {"x":7.25, "y":4.5}, + {"x":8.25, "y":4.5}, + {"x":9.25, "y":4.5}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.5}, + {"x":12.25, "y":4.5, "w":2.75}, + {"x":16.25, "y":4.5}, + {"x":0, "y":5.5, "w":1.25}, + {"x":1.25, "y":5.5, "w":1.25}, + {"x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"x":10, "y":5.5, "w":1.25}, + {"x":11.25, "y":5.5, "w":1.25}, + {"x":12.5, "y":5.5, "w":1.25}, + {"x":13.75, "y":5.5, "w":1.25}, + {"x":15.25, "y":5.5}, + {"x":16.25, "y":5.5}, + {"x":17.25, "y":5.5} + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1.5}, + {"x":1, "y":1.5}, + {"x":2, "y":1.5}, + {"x":3, "y":1.5}, + {"x":4, "y":1.5}, + {"x":5, "y":1.5}, + {"x":6, "y":1.5}, + {"x":7, "y":1.5}, + {"x":8, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.5}, + {"x":11, "y":1.5}, + {"x":12, "y":1.5}, + {"x":13, "y":1.5, "w":2}, + {"x":15.25, "y":1.5}, + {"x":16.25, "y":1.5}, + {"x":17.25, "y":1.5}, + {"x":0, "y":2.5, "w":1.5}, + {"x":1.5, "y":2.5}, + {"x":2.5, "y":2.5}, + {"x":3.5, "y":2.5}, + {"x":4.5, "y":2.5}, + {"x":5.5, "y":2.5}, + {"x":6.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":8.5, "y":2.5}, + {"x":9.5, "y":2.5}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.5}, + {"x":12.5, "y":2.5}, + {"x":13.5, "y":2.5, "w":1.5}, + {"x":15.25, "y":2.5}, + {"x":16.25, "y":2.5}, + {"x":17.25, "y":2.5}, + {"x":0, "y":3.5, "w":1.75}, + {"x":1.75, "y":3.5}, + {"x":2.75, "y":3.5}, + {"x":3.75, "y":3.5}, + {"x":4.75, "y":3.5}, + {"x":5.75, "y":3.5}, + {"x":6.75, "y":3.5}, + {"x":7.75, "y":3.5}, + {"x":8.75, "y":3.5}, + {"x":9.75, "y":3.5}, + {"x":10.75, "y":3.5}, + {"x":11.75, "y":3.5}, + {"x":12.75, "y":3.5, "w":2.25}, + {"x":0, "y":4.5, "w":2.25}, + {"x":2.25, "y":4.5}, + {"x":3.25, "y":4.5}, + {"x":4.25, "y":4.5}, + {"x":5.25, "y":4.5}, + {"x":6.25, "y":4.5}, + {"x":7.25, "y":4.5}, + {"x":8.25, "y":4.5}, + {"x":9.25, "y":4.5}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.5}, + {"x":12.25, "y":4.5, "w":2.75}, + {"x":16.25, "y":4.5}, + {"x":0, "y":5.5, "w":1.5}, + {"x":1.5, "y":5.5}, + {"x":2.5, "y":5.5, "w":1.5}, + {"x":4, "y":5.5, "w":7}, + {"x":11, "y":5.5, "w":1.5}, + {"x":12.5, "y":5.5}, + {"x":13.5, "y":5.5, "w":1.5}, + {"x":15.25, "y":5.5}, + {"x":16.25, "y":5.5}, + {"x":17.25, "y":5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/kineticlabs/emu/soldered/keymaps/default/keymap.c b/keyboards/kineticlabs/emu/soldered/keymaps/default/keymap.c new file mode 100644 index 000000000000..01a14010e6ec --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 kb-elmo + * + * 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_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kineticlabs/emu/soldered/keymaps/via/keymap.c b/keyboards/kineticlabs/emu/soldered/keymaps/via/keymap.c new file mode 100644 index 000000000000..fa24ebc9376c --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [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_MUTE, KC_VOLD, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + [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 + ) +}; diff --git a/keyboards/kineticlabs/emu/soldered/keymaps/via/rules.mk b/keyboards/kineticlabs/emu/soldered/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kineticlabs/emu/soldered/keymaps/wkl/keymap.c b/keyboards/kineticlabs/emu/soldered/keymaps/wkl/keymap.c new file mode 100644 index 000000000000..1d6e49b3cda1 --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/keymaps/wkl/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 kb-elmo + * + * 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_tkl_ansi_wkl( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi_wkl( + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kineticlabs/emu/soldered/readme.md b/keyboards/kineticlabs/emu/soldered/readme.md new file mode 100644 index 000000000000..5e979dd0ff0a --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/readme.md @@ -0,0 +1,21 @@ +# Emu Hotswap + +![emu](https://i.imgur.com/OiAQ6Vbl.jpg) + +TKL keyboard made by KineticLabs + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Emu hotswap PCB +* Hardware Availability: Groupbuy + +Make example for this keyboard (after setting up your build environment): + + make kineticlabs/emu_hotswap:default + +Flashing example for this keyboard: + + make kineticlabs/emu_hotswap:default:flash + +**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board. + +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). diff --git a/keyboards/kineticlabs/emu/soldered/rules.mk b/keyboards/kineticlabs/emu/soldered/rules.mk new file mode 100644 index 000000000000..72eed40eb48e --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = tkl_ansi \ No newline at end of file diff --git a/keyboards/kineticlabs/emu/soldered/soldered.c b/keyboards/kineticlabs/emu/soldered/soldered.c new file mode 100644 index 000000000000..b99b94e08ab7 --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/soldered.c @@ -0,0 +1,17 @@ +/* Copyright 2021 kb-elmo + * + * 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 "soldered.h" diff --git a/keyboards/kineticlabs/emu/soldered/soldered.h b/keyboards/kineticlabs/emu/soldered/soldered.h new file mode 100644 index 000000000000..3c11c1a51398 --- /dev/null +++ b/keyboards/kineticlabs/emu/soldered/soldered.h @@ -0,0 +1,69 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + k000, k002, k003, k004, k005, k006, k007, k008, k009, k011, k012, k013, k014, k015, k016, k017, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k214, k215, k216, k217, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k314, \ + k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k414, k416, \ + k500, k501, k502, k505, k510, k511, k513, k514, k515, k516, k517 \ +) { \ + { k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, ____, k011, k012, k013, k014, k015, k016, k017 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, ____, k214, k215, k216, k217 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, ____, k314, ____, ____, ____ }, \ + { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, ____, ____, ____, k414, ____, k416, ____ }, \ + { k500, k501, k502, ____, ____, k505, ____, ____, ____, ____, k510, k511, ____, k513, k514, k515, k516, k517 } \ +} + +#define LAYOUT_tkl_ansi( \ + k000, k002, k003, k004, k005, k006, k007, k008, k009, k011, k012, k013, k014, k015, k016, k017, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k114, k115, k116, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k214, k215, k216, k217, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k314, \ + k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k414, k416, \ + k500, k501, k502, k505, k510, k511, k513, k514, k515, k516, k517 \ +) { \ + { k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, ____, k011, k012, k013, k014, k015, k016, k017 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____, k114, k115, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, ____, k214, k215, k216, k217 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, ____, k314, ____, ____, ____ }, \ + { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, ____, ____, ____, k414, ____, k416, ____ }, \ + { k500, k501, k502, ____, ____, k505, ____, ____, ____, ____, k510, k511, ____, k513, k514, k515, k516, k517 } \ +} + +#define LAYOUT_tkl_ansi_wkl( \ + k000, k002, k003, k004, k005, k006, k007, k008, k009, k011, k012, k013, k014, k015, k016, k017, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k114, k115, k116, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k214, k215, k216, k217, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k314, \ + k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k414, k416, \ + k500, k501, k502, k505, k511, k513, k514, k515, k516, k517 \ +) { \ + { k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, ____, k011, k012, k013, k014, k015, k016, k017 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____, k114, k115, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, ____, k214, k215, k216, k217 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, ____, k314, ____, ____, ____ }, \ + { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, ____, ____, ____, k414, ____, k416, ____ }, \ + { k500, k501, k502, ____, ____, k505, ____, ____, ____, ____, ____, k511, ____, k513, k514, k515, k516, k517 } \ +} From 81cac8eec66ab98d5091e5b704215dc96fe830d4 Mon Sep 17 00:00:00 2001 From: Conor Burns Date: Tue, 20 Jul 2021 22:07:53 +0200 Subject: [PATCH 035/328] [Keyboard] 0xcb 1337 - Added keymap "conor" and fixed some minor stuff (#12744) Co-authored-by: Drashna Jaelre --- keyboards/0xcb/1337/1337.c | 7 - keyboards/0xcb/1337/1337.h | 2 + keyboards/0xcb/1337/config.h | 22 ++- keyboards/0xcb/1337/gfxfont.c | 3 +- keyboards/0xcb/1337/keymaps/conor/keymap.c | 185 +++++++++++++++++++ keyboards/0xcb/1337/keymaps/conor/rules.mk | 1 + keyboards/0xcb/1337/keymaps/default/keymap.c | 66 ++++--- keyboards/0xcb/1337/keymaps/jakob/keymap.c | 66 ++++--- keyboards/0xcb/1337/keymaps/via/keymap.c | 66 ++++--- keyboards/0xcb/1337/readme.md | 12 +- 10 files changed, 334 insertions(+), 96 deletions(-) create mode 100644 keyboards/0xcb/1337/keymaps/conor/keymap.c create mode 100644 keyboards/0xcb/1337/keymaps/conor/rules.mk diff --git a/keyboards/0xcb/1337/1337.c b/keyboards/0xcb/1337/1337.c index 142c24639a9e..85781209b3a6 100644 --- a/keyboards/0xcb/1337/1337.c +++ b/keyboards/0xcb/1337/1337.c @@ -20,13 +20,6 @@ void eeconfig_init_kb(void) { #ifdef BACKLIGHT_ENABLE backlight_enable(); backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_sethsv(0, 255, 255); -#ifdef RGBLIGHT_ANIMATIONS - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); -#endif #endif eeconfig_update_kb(0); diff --git a/keyboards/0xcb/1337/1337.h b/keyboards/0xcb/1337/1337.h index 7de5365d8b8b..e1f238c126c2 100644 --- a/keyboards/0xcb/1337/1337.h +++ b/keyboards/0xcb/1337/1337.h @@ -26,6 +26,7 @@ along with this program. If not, see . * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ +// clang-format off #define LAYOUT( \ KA1, KA2, KA3, \ KB1, KB2, KB3, \ @@ -36,3 +37,4 @@ along with this program. If not, see . { KB1, KB2, KB3 }, \ { KC1, KC2, KC3 } \ } +// clang-format on diff --git a/keyboards/0xcb/1337/config.h b/keyboards/0xcb/1337/config.h index 6d25e49cc9f6..21332c5585ea 100644 --- a/keyboards/0xcb/1337/config.h +++ b/keyboards/0xcb/1337/config.h @@ -17,6 +17,7 @@ along with this program. If not, see . #pragma once #include "config_common.h" +// clang-format off /* USB Device descriptor parameter */ #define VENDOR_ID 0xCB00 @@ -47,19 +48,26 @@ along with this program. If not, see . #define RGB_DI_PIN D3 #ifdef RGB_DI_PIN - #define RGBLED_NUM 5 + #define RGBLED_NUM 4 #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 */ - // #define RGBLIGHT_ANIMATIONS - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_ANIMATIONS /* comment this and uncomment the lines below to save space */ + // #define RGBLIGHT_EFFECT_BREATHING + // #define RGBLIGHT_EFFECT_SNAKE + // #define RGBLIGHT_EFFECT_STATIC_GRADIENT + // #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + // #define RGBLIGHT_EFFECT_RAINBOW_MOOD + /* default setup after eeprom reset */ + #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_EFFECT_BREATHING + 2 + #define RGBLIGHT_DEFAULT_HUE 152 + #define RGBLIGHT_DEFAULT_SAT 232 + #define RGBLIGHT_DEFAULT_VAR 255 + #define RGBLIGHT_DEFAULT_SPD 2 #endif +// clang-format on /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/0xcb/1337/gfxfont.c b/keyboards/0xcb/1337/gfxfont.c index 4e7940b64aae..b78e359c7865 100644 --- a/keyboards/0xcb/1337/gfxfont.c +++ b/keyboards/0xcb/1337/gfxfont.c @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "progmem.h" - +// clang-format off static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, @@ -274,3 +274,4 @@ static const unsigned char font[] PROGMEM = { 0x07, 0x07, 0x0F, 0x0F, 0x1E, 0x3E, 0x3C, 0x7C, 0x70, 0xC0, 0x80, 0x00, }; +// clang-format on diff --git a/keyboards/0xcb/1337/keymaps/conor/keymap.c b/keyboards/0xcb/1337/keymaps/conor/keymap.c new file mode 100644 index 000000000000..e9d8756b111e --- /dev/null +++ b/keyboards/0xcb/1337/keymaps/conor/keymap.c @@ -0,0 +1,185 @@ +/* +Copyright 2021 0xCB - Conor Burns + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H +// clang-format off +enum layer_names { + _HOME, + _MISC, + _RGB, + _BLED +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_HOME] = LAYOUT( + KC_MPRV, KC_MNXT, KC_MPLY, + KC_PGUP, KC_PGDN, TO(3), + KC_HOME, KC_END, TO(1) +), +[_MISC] = LAYOUT( + _______, _______, _______, + _______, _______, TO(0), + _______, _______, TO(2) +), +[_RGB] = LAYOUT( + RGB_HUI, RGB_HUD, RGB_MOD, + RGB_SAI, RGB_SAD, TO(1), + RGB_SPI, RGB_SPD, TO(3) +), +[_BLED] = LAYOUT( + BL_STEP, BL_BRTG, BL_TOGG, + BL_ON, BL_OFF, TO(2), + BL_INC, BL_DEC, TO(0) +) +}; +// clang-format on + +/* rotary encoder (SW3) - add more else if blocks for more granular layer control */ +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (IS_LAYER_ON(_RGB)) { + #ifdef RGBLIGHT_ENABLE + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + #endif + } else if (IS_LAYER_ON(_BLED)) { + if (clockwise) { + backlight_increase(); + } else { + backlight_decrease(); + } + } else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +/* oled stuff :) */ +#ifdef OLED_DRIVER_ENABLE +uint16_t startup_timer; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} + +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0, + 0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0, + 0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} +static void render_logo_font(void) { + static const char PROGMEM qmk_logo[] = { + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0x9C, 0x9D, 0xCB, 0xCB, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xBB, 0xBC, 0xBD, 0xBE, 0xCB, + 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xDB, 0xDC, 0xDD, 0xDE, 0xCB, + 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x00 + }; + + oled_write_P(qmk_logo, false); +} +/* Shows the name of the current layer and locks for the host (CAPS etc.) */ +static void render_info(void) { + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _HOME: + oled_write_ln_P(PSTR("HOME"), false); + break; + case _MISC: + oled_write_ln_P(PSTR("MISC"), false); + break; + case _RGB: + oled_write_ln_P(PSTR("RGB"), false); + break; + case _BLED: + oled_write_ln_P(PSTR("Backlight"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} +static void render_rgbled_status(bool) { + char string[4]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { + uint16_t m = rgblight_get_mode(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("Conf:"), false); + oled_write(string, false); + uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP; + string[3] = '\0'; + string[2] = '0' + h % 10; + string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' '; + string[0] = h / 10 ? '0' + h / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP; + string[3] = '\0'; + string[2] = '0' + s % 10; + string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' '; + string[0] = s / 10 ? '0' + s / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP; + string[3] = '\0'; + string[2] = '0' + v % 10; + string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' '; + string[0] = v / 10 ? '0' + v / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false); + } else { + oled_write_ln_P(PSTR("\n"), false); + } +} +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + render_info(); + render_rgbled_status(true); + render_logo_font(); + } +} +#endif diff --git a/keyboards/0xcb/1337/keymaps/conor/rules.mk b/keyboards/0xcb/1337/keymaps/conor/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/0xcb/1337/keymaps/conor/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/0xcb/1337/keymaps/default/keymap.c b/keyboards/0xcb/1337/keymaps/default/keymap.c index 596ffabcc779..5c231298cdad 100644 --- a/keyboards/0xcb/1337/keymaps/default/keymap.c +++ b/keyboards/0xcb/1337/keymaps/default/keymap.c @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include - +// clang-format off enum layer_names { _HOME, _MISC, @@ -46,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BL_INC, BL_DEC, TO(0) ) }; - +// clang-format on /* rotary encoder (SW3) - add more else if blocks for more granular layer control */ #ifdef ENCODER_ENABLE @@ -100,10 +99,10 @@ static void render_logo(void) { } static void render_logo_font(void) { static const char PROGMEM qmk_logo[] = { - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, - 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, - 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, + 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00 }; oled_write_P(qmk_logo, false); @@ -133,24 +132,41 @@ static void render_info(void) { oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); } -static void render_rgbled_status(bool full) { -#ifdef RGBLIGHT_ENABLE - char buf[30]; - if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { - if (full) { - snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n", - rgblight_get_mode(), - rgblight_get_hue()/RGBLIGHT_HUE_STEP, - rgblight_get_sat()/RGBLIGHT_SAT_STEP, - rgblight_get_val()/RGBLIGHT_VAL_STEP); - } else { - snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode()); - } - oled_write(buf, false); - } else { - oled_write_ln_P(PSTR("\n"), false); - } -#endif +static void render_rgbled_status(bool) { + char string[4]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { + uint16_t m = rgblight_get_mode(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("Conf:"), false); + oled_write(string, false); + uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP; + string[3] = '\0'; + string[2] = '0' + h % 10; + string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' '; + string[0] = h / 10 ? '0' + h / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP; + string[3] = '\0'; + string[2] = '0' + s % 10; + string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' '; + string[0] = s / 10 ? '0' + s / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP; + string[3] = '\0'; + string[2] = '0' + v % 10; + string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' '; + string[0] = v / 10 ? '0' + v / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false); + } else { + oled_write_ln_P(PSTR("\n"), false); + } } void oled_task_user(void) { static bool finished_timer = false; diff --git a/keyboards/0xcb/1337/keymaps/jakob/keymap.c b/keyboards/0xcb/1337/keymaps/jakob/keymap.c index 14427ee6d8d7..f4a5c3cb49e4 100644 --- a/keyboards/0xcb/1337/keymaps/jakob/keymap.c +++ b/keyboards/0xcb/1337/keymaps/jakob/keymap.c @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include - +// clang-format off enum layer_names { _HOME, _MISC, @@ -46,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BL_INC, BL_DEC, TO(0) ) }; - +// clang-format on /* rotary encoder (SW3) - add more else if blocks for more granular layer control */ #ifdef ENCODER_ENABLE @@ -100,10 +99,10 @@ static void render_logo(void) { } static void render_logo_font(void) { static const char PROGMEM qmk_logo[] = { - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, - 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, - 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, + 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00 }; oled_write_P(qmk_logo, false); @@ -133,24 +132,41 @@ static void render_info(void) { oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); } -static void render_rgbled_status(bool full) { -#ifdef RGBLIGHT_ENABLE - char buf[30]; - if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { - if (full) { - snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n", - rgblight_get_mode(), - rgblight_get_hue()/RGBLIGHT_HUE_STEP, - rgblight_get_sat()/RGBLIGHT_SAT_STEP, - rgblight_get_val()/RGBLIGHT_VAL_STEP); - } else { - snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode()); - } - oled_write(buf, false); - } else { - oled_write_ln_P(PSTR("\n"), false); - } -#endif +static void render_rgbled_status(bool) { + char string[4]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { + uint16_t m = rgblight_get_mode(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("Conf:"), false); + oled_write(string, false); + uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP; + string[3] = '\0'; + string[2] = '0' + h % 10; + string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' '; + string[0] = h / 10 ? '0' + h / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP; + string[3] = '\0'; + string[2] = '0' + s % 10; + string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' '; + string[0] = s / 10 ? '0' + s / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP; + string[3] = '\0'; + string[2] = '0' + v % 10; + string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' '; + string[0] = v / 10 ? '0' + v / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false); + } else { + oled_write_ln_P(PSTR("\n"), false); + } } void oled_task_user(void) { static bool finished_timer = false; diff --git a/keyboards/0xcb/1337/keymaps/via/keymap.c b/keyboards/0xcb/1337/keymaps/via/keymap.c index 596ffabcc779..5c231298cdad 100644 --- a/keyboards/0xcb/1337/keymaps/via/keymap.c +++ b/keyboards/0xcb/1337/keymaps/via/keymap.c @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include - +// clang-format off enum layer_names { _HOME, _MISC, @@ -46,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BL_INC, BL_DEC, TO(0) ) }; - +// clang-format on /* rotary encoder (SW3) - add more else if blocks for more granular layer control */ #ifdef ENCODER_ENABLE @@ -100,10 +99,10 @@ static void render_logo(void) { } static void render_logo_font(void) { static const char PROGMEM qmk_logo[] = { - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, - 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, - 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, + 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00 }; oled_write_P(qmk_logo, false); @@ -133,24 +132,41 @@ static void render_info(void) { oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); } -static void render_rgbled_status(bool full) { -#ifdef RGBLIGHT_ENABLE - char buf[30]; - if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { - if (full) { - snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n", - rgblight_get_mode(), - rgblight_get_hue()/RGBLIGHT_HUE_STEP, - rgblight_get_sat()/RGBLIGHT_SAT_STEP, - rgblight_get_val()/RGBLIGHT_VAL_STEP); - } else { - snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode()); - } - oled_write(buf, false); - } else { - oled_write_ln_P(PSTR("\n"), false); - } -#endif +static void render_rgbled_status(bool) { + char string[4]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { + uint16_t m = rgblight_get_mode(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("Conf:"), false); + oled_write(string, false); + uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP; + string[3] = '\0'; + string[2] = '0' + h % 10; + string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' '; + string[0] = h / 10 ? '0' + h / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP; + string[3] = '\0'; + string[2] = '0' + s % 10; + string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' '; + string[0] = s / 10 ? '0' + s / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP; + string[3] = '\0'; + string[2] = '0' + v % 10; + string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' '; + string[0] = v / 10 ? '0' + v / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false); + } else { + oled_write_ln_P(PSTR("\n"), false); + } } void oled_task_user(void) { static bool finished_timer = false; diff --git a/keyboards/0xcb/1337/readme.md b/keyboards/0xcb/1337/readme.md index da54eb78fc9b..8fef5be7b40f 100644 --- a/keyboards/0xcb/1337/readme.md +++ b/keyboards/0xcb/1337/readme.md @@ -3,16 +3,16 @@ Macro keypad * Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns) -* Hardware Supported: https://github.com/conor-burns/0xcb-1337 -* Hardware Availability: Soon on tindie or order your own parts - the hardware in the repo is Open Source :D +* Hardware Supported: https://github.com/0xcb-dev/0xcb-1337 +* Hardware Availability: On [tindie](https://www.tindie.com/products/0xcb/0xcb-1337-a-customizable-macro-keyboard-with-qmk/) or order your own parts - the hardware in the repo is Open Source :D * PCB renders :) -![](https://github.com/Conor-Burns/0xcb-1337/blob/main/PCB/top.png) +![](https://github.com/0xCB-dev/0xcb-1337/blob/main/PCB/rev3.0/top.png) -![](https://github.com/Conor-Burns/0xcb-1337/blob/main/PCB/bottom.png) +![](https://github.com/0xCB-dev/0xcb-1337/blob/main/PCB/rev3.0/bottom.png) - -To go to bootloader press row 0 col 0 key (top left) while plugging in the board. +More Pictures [here](https://0xcb.dev/1337/) +To go to bootloader press row 0 col 0 key (top left) while plugging in the board. (Or press the reset button on V2.0 and v3.0) Make example for this keyboard (after setting up your build environment): From dbca44ae8d4d3c28225b0998c636f389f476bb2d Mon Sep 17 00:00:00 2001 From: Weirdo <1248314361@qq.com> Date: Wed, 21 Jul 2021 04:09:53 +0800 Subject: [PATCH 036/328] [Keyboard] Add Tiger910 (#12605) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/geminate60/readme.md | 1 + keyboards/tiger910/config.h | 49 +++++++++++++ keyboards/tiger910/info.json | 79 +++++++++++++++++++++ keyboards/tiger910/keymaps/default/keymap.c | 28 ++++++++ keyboards/tiger910/keymaps/via/keymap.c | 53 ++++++++++++++ keyboards/tiger910/keymaps/via/rules.mk | 1 + keyboards/tiger910/readme.md | 15 ++++ keyboards/tiger910/rules.mk | 22 ++++++ keyboards/tiger910/tiger910.c | 17 +++++ keyboards/tiger910/tiger910.h | 33 +++++++++ 10 files changed, 298 insertions(+) create mode 100644 keyboards/tiger910/config.h create mode 100644 keyboards/tiger910/info.json create mode 100644 keyboards/tiger910/keymaps/default/keymap.c create mode 100644 keyboards/tiger910/keymaps/via/keymap.c create mode 100644 keyboards/tiger910/keymaps/via/rules.mk create mode 100644 keyboards/tiger910/readme.md create mode 100644 keyboards/tiger910/rules.mk create mode 100644 keyboards/tiger910/tiger910.c create mode 100644 keyboards/tiger910/tiger910.h diff --git a/keyboards/geminate60/readme.md b/keyboards/geminate60/readme.md index 457c06ce5c70..7fab7d7df6a8 100644 --- a/keyboards/geminate60/readme.md +++ b/keyboards/geminate60/readme.md @@ -12,4 +12,5 @@ Make example for this keyboard (after setting up your build environment): make geminate60:default +The RST pin and GND pin on the board can be quickly shortened twice to enter DFU mode, and then the program can be written. 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). diff --git a/keyboards/tiger910/config.h b/keyboards/tiger910/config.h new file mode 100644 index 000000000000..4f2541739a64 --- /dev/null +++ b/keyboards/tiger910/config.h @@ -0,0 +1,49 @@ +/* +Copyright 2021 Weirdo + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7764 +#define PRODUCT_ID 0x5447 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Weirdo +#define PRODUCT tiger910 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4 } +#define MATRIX_COL_PINS { B5, B6, B7, C0, C1, C2, C3, C4, C5, C6, C7, D0, D1, D2, D3, D4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* 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 diff --git a/keyboards/tiger910/info.json b/keyboards/tiger910/info.json new file mode 100644 index 000000000000..0701fbdd32cf --- /dev/null +++ b/keyboards/tiger910/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "tiger910", + "url": "", + "maintainer": "Weirdo", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (B0,B5)", "x":0, "y":0}, + {"label":"K01 (B0,B6)", "x":1, "y":0}, + {"label":"K02 (B0,B7)", "x":2, "y":0}, + {"label":"K03 (B0,C0)", "x":3, "y":0}, + {"label":"K04 (B0,C1)", "x":4, "y":0}, + {"label":"K05 (B0,C2)", "x":5, "y":0}, + {"label":"K06 (B0,C3)", "x":6, "y":0}, + {"label":"K07 (B0,C4)", "x":7, "y":0}, + {"label":"K08 (B0,C5)", "x":8, "y":0}, + {"label":"K09 (B0,C6)", "x":9, "y":0}, + {"label":"K0A (B0,C7)", "x":10, "y":0}, + {"label":"K0B (B0,D0)", "x":11, "y":0}, + {"label":"K0C (B0,D1)", "x":12, "y":0}, + {"label":"K0E (B0,D3)", "x":13, "y":0, "w":2}, + {"label":"K10 (B1,B5)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (B1,B6)", "x":1.5, "y":1}, + {"label":"K12 (B1,B7)", "x":2.5, "y":1}, + {"label":"K13 (B1,C0)", "x":3.5, "y":1}, + {"label":"K14 (B1,C1)", "x":4.5, "y":1}, + {"label":"K15 (B1,C2)", "x":5.5, "y":1}, + {"label":"K16 (B1,C3)", "x":6.5, "y":1}, + {"label":"K17 (B1,C4)", "x":7.5, "y":1}, + {"label":"K18 (B1,C5)", "x":8.5, "y":1}, + {"label":"K19 (B1,C6)", "x":9.5, "y":1}, + {"label":"K1A (B1,C7)", "x":10.5, "y":1}, + {"label":"K1B (B1,D0)", "x":11.5, "y":1}, + {"label":"K1C (B1,D1)", "x":12.5, "y":1}, + {"label":"K1E (B1,D3)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1F (B1,D4)", "x":15, "y":1}, + {"label":"K20 (B2,B5)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (B2,B6)", "x":1.75, "y":2}, + {"label":"K22 (B2,B7)", "x":2.75, "y":2}, + {"label":"K23 (B2,C0)", "x":3.75, "y":2}, + {"label":"K24 (B2,C1)", "x":4.75, "y":2}, + {"label":"K25 (B2,C2)", "x":5.75, "y":2}, + {"label":"K26 (B2,C3)", "x":6.75, "y":2}, + {"label":"K27 (B2,C4)", "x":7.75, "y":2}, + {"label":"K28 (B2,C5)", "x":8.75, "y":2}, + {"label":"K29 (B2,C6)", "x":9.75, "y":2}, + {"label":"K2A (B2,C7)", "x":10.75, "y":2}, + {"label":"K2B (B2,D0)", "x":11.75, "y":2}, + {"label":"K2D (B2,D2)", "x":12.75, "y":2, "w":2.25}, + {"label":"K2F (B2,D4)", "x":15, "y":2}, + {"label":"K30 (B3,B5)", "x":0, "y":3, "w":2.25}, + {"label":"K32 (B3,B7)", "x":2.25, "y":3}, + {"label":"K33 (B3,C0)", "x":3.25, "y":3}, + {"label":"K34 (B3,C1)", "x":4.25, "y":3}, + {"label":"K35 (B3,C2)", "x":5.25, "y":3}, + {"label":"K36 (B3,C3)", "x":6.25, "y":3}, + {"label":"K37 (B3,C4)", "x":7.25, "y":3}, + {"label":"K38 (B3,C5)", "x":8.25, "y":3}, + {"label":"K39 (B3,C6)", "x":9.25, "y":3}, + {"label":"K3A (B3,C7)", "x":10.25, "y":3}, + {"label":"K3B (B3,D0)", "x":11.25, "y":3}, + {"label":"K3C (B3,D1)", "x":12.25, "y":3, "w":1.75}, + {"label":"K3E (B3,D3)", "x":14, "y":3}, + {"label":"K3F (B3,D4)", "x":15, "y":3}, + {"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.56}, + {"label":"K41 (B4,B6)", "x":1.5, "y":4}, + {"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.5}, + {"label":"K46 (B4,C3)", "x":4, "y":4, "w":7}, + {"label":"K4B (B4,D0)", "x":11, "y":4, "w":1.5}, + {"label":"K4C (B4,D1)", "x":13, "y":4}, + {"label":"K4E (B4,D3)", "x":14, "y":4}, + {"label":"K4F (B4,D4)", "x":15, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/tiger910/keymaps/default/keymap.c b/keyboards/tiger910/keymaps/default/keymap.c new file mode 100644 index 000000000000..5896a6913c53 --- /dev/null +++ b/keyboards/tiger910/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2021 Weirdo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_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_SPC, + 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_SPC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_SPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; + diff --git a/keyboards/tiger910/keymaps/via/keymap.c b/keyboards/tiger910/keymaps/via/keymap.c new file mode 100644 index 000000000000..051796e3def5 --- /dev/null +++ b/keyboards/tiger910/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 Weirdo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_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_SPC, + 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_SPC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_SPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_SPC, + 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_SPC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_SPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [2] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_SPC, + 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_SPC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_SPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + + [3] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_SPC, + 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_SPC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_SPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; + diff --git a/keyboards/tiger910/keymaps/via/rules.mk b/keyboards/tiger910/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/tiger910/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/tiger910/readme.md b/keyboards/tiger910/readme.md new file mode 100644 index 000000000000..ed14a307d357 --- /dev/null +++ b/keyboards/tiger910/readme.md @@ -0,0 +1,15 @@ +# Tiger910 + +![Tiger910](https://www.hualigs.cn/image/60272570d2764.jpg) + +A 65% keyboard + +* Keyboard Maintainer: [Weirdo](https://weirdo-f.github.io)(https://github.com/1248314361) +* Hardware Supported: Tiger910 +* Hardware Availability: Not yet + +Make example for this keyboard (after setting up your build environment): + + make tiger910:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/tiger910/rules.mk b/keyboards/tiger910/rules.mk new file mode 100644 index 000000000000..bcabafbf2c69 --- /dev/null +++ b/keyboards/tiger910/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/tiger910/tiger910.c b/keyboards/tiger910/tiger910.c new file mode 100644 index 000000000000..d0964d9be90c --- /dev/null +++ b/keyboards/tiger910/tiger910.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Weirdo + * + * 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 "tiger910.h" diff --git a/keyboards/tiger910/tiger910.h b/keyboards/tiger910/tiger910.h new file mode 100644 index 000000000000..529c12fc5ee1 --- /dev/null +++ b/keyboards/tiger910/tiger910.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Weirdo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K46, K4B, K4C, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, K2F }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, K4E, K4F }, \ +} From ddc27665375d838bb30efd99623b06c07a0a8676 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Wed, 21 Jul 2021 01:05:10 -0400 Subject: [PATCH 037/328] Fix vicious40 rules (#13623) --- keyboards/cannonkeys/vicious40/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/cannonkeys/vicious40/rules.mk b/keyboards/cannonkeys/vicious40/rules.mk index 3f1153074a66..cc079b8aa103 100644 --- a/keyboards/cannonkeys/vicious40/rules.mk +++ b/keyboards/cannonkeys/vicious40/rules.mk @@ -16,7 +16,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality From ec1a6f6b8b458176ef0dfca2ebf91d8d88c107aa Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Wed, 21 Jul 2021 12:28:05 +0700 Subject: [PATCH 038/328] [Keyboard] add rartland with via support (#13585) * add rartland and via support * moved encoder adn oled to c file * update c file --- keyboards/rart/rartland/config.h | 76 ++++++++++++++++ keyboards/rart/rartland/info.json | 86 +++++++++++++++++++ .../rart/rartland/keymaps/default/keymap.c | 49 +++++++++++ keyboards/rart/rartland/keymaps/via/keymap.c | 49 +++++++++++ keyboards/rart/rartland/keymaps/via/rules.mk | 2 + keyboards/rart/rartland/rartland.c | 56 ++++++++++++ keyboards/rart/rartland/rartland.h | 32 +++++++ keyboards/rart/rartland/readme.md | 19 ++++ keyboards/rart/rartland/rules.mk | 29 +++++++ 9 files changed, 398 insertions(+) create mode 100644 keyboards/rart/rartland/config.h create mode 100644 keyboards/rart/rartland/info.json create mode 100644 keyboards/rart/rartland/keymaps/default/keymap.c create mode 100644 keyboards/rart/rartland/keymaps/via/keymap.c create mode 100644 keyboards/rart/rartland/keymaps/via/rules.mk create mode 100644 keyboards/rart/rartland/rartland.c create mode 100644 keyboards/rart/rartland/rartland.h create mode 100644 keyboards/rart/rartland/readme.md create mode 100644 keyboards/rart/rartland/rules.mk diff --git a/keyboards/rart/rartland/config.h b/keyboards/rart/rartland/config.h new file mode 100644 index 000000000000..46f08f11a40a --- /dev/null +++ b/keyboards/rart/rartland/config.h @@ -0,0 +1,76 @@ +/*Copyright 2021 Alabahuy + +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 VENDOR_ID 0x414C +#define PRODUCT_ID 0x6065 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Alabahuy +#define PRODUCT RARTLAND + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * 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) + * + */ +/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14*/ +#define MATRIX_ROW_PINS { B4, A7, A5, A6, C3 } +#define MATRIX_COL_PINS { B0, A1, B1, A2, B2, A3, B3, A4, C7, C6, D0, C5, D1, C4 } +#define UNUSED_PINS + +#define LED_CAPS_LOCK_PIN A0 +#define LED_PIN_ON_STATE 0 + +#define ENCODERS_PAD_B { D5 } +#define ENCODERS_PAD_A { C2 } +#define ENCODER_RESOLUTION 2 //default/suggested + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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 + +#define OLED_TIMEOUT 10000 + +/* #define RGB_DI_PIN D7 */ +/* #ifdef RGB_DI_PIN */ +/* #define RGBLIGHT_ANIMATIONS */ +/* #define RGBLED_NUM 11 */ +/* #define RGBLIGHT_HUE_STEP 8 */ +/* #define RGBLIGHT_SAT_STEP 8 */ +/* #define RGBLIGHT_VAL_STEP 8 */ +/* #define RGBLIGHT_LIMIT_VAL 240 */ +/* #define RGBLIGHT_SLEEP */ +/* #endif */ + diff --git a/keyboards/rart/rartland/info.json b/keyboards/rart/rartland/info.json new file mode 100644 index 000000000000..697c36dc1a3b --- /dev/null +++ b/keyboards/rart/rartland/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "RARTLAND", + "url": " ", + "maintainer": "Alabahuy", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4}] + } + } +} diff --git a/keyboards/rart/rartland/keymaps/default/keymap.c b/keyboards/rart/rartland/keymaps/default/keymap.c new file mode 100644 index 000000000000..4737d9ab55c2 --- /dev/null +++ b/keyboards/rart/rartland/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, MO(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [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_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [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_LGUI, 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/rart/rartland/keymaps/via/keymap.c b/keyboards/rart/rartland/keymaps/via/keymap.c new file mode 100644 index 000000000000..510045faa18d --- /dev/null +++ b/keyboards/rart/rartland/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, MO(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [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_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [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_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/rart/rartland/keymaps/via/rules.mk b/keyboards/rart/rartland/keymaps/via/rules.mk new file mode 100644 index 000000000000..541a15608aeb --- /dev/null +++ b/keyboards/rart/rartland/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = no diff --git a/keyboards/rart/rartland/rartland.c b/keyboards/rart/rartland/rartland.c new file mode 100644 index 000000000000..fc35361f8cc0 --- /dev/null +++ b/keyboards/rart/rartland/rartland.c @@ -0,0 +1,56 @@ +/* Copyright 2021 Alabahuy + * 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 "rartland.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } + return true; +} +#endif + +#ifdef OLED_DRIVER_ENABLE +__attribute__((weak)) void oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("R A R T L A N D\nLayer: "), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("Default\n"), false); + break; + case 1: + oled_write_P(PSTR("FN\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); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} +#endif diff --git a/keyboards/rart/rartland/rartland.h b/keyboards/rart/rartland/rartland.h new file mode 100644 index 000000000000..a871c66b4412 --- /dev/null +++ b/keyboards/rart/rartland/rartland.h @@ -0,0 +1,32 @@ +/* Copyright 2021 Alabahuy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K4D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, K4C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K4A, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49 \ +) { \ + { 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, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/rart/rartland/readme.md b/keyboards/rart/rartland/readme.md new file mode 100644 index 000000000000..47da891fb194 --- /dev/null +++ b/keyboards/rart/rartland/readme.md @@ -0,0 +1,19 @@ +# RARTLAND + +![Rartland](https://user-images.githubusercontent.com/30220306/126027953-ef785a88-400a-4a81-91c0-fbfb3635aede.png) + +A 65% keyboard that can be assembled with only through hole components, including Oled and Encoder support + +* Keyboard Maintainer: [Alabahuy](https://github.com/Alabahuy) +* Hardware Supported: Rartland, atmega32a, Mini USB, Encoder, Oled +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make rart/rartland:default + +Flashing example for this keyboard: + + make rart/rartland: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). diff --git a/keyboards/rart/rartland/rules.mk b/keyboards/rart/rartland/rules.mk new file mode 100644 index 000000000000..57d8e6a99628 --- /dev/null +++ b/keyboards/rart/rartland/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = atmega32a + +# Processor frequency +F_CPU = 16000000 + +# Bootloader selection +BOOTLOADER = USBasp + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes +OLED_DRIVER_ENABLE = yes +ENCODER_ENABLE = yes + From afc629210c75158ef036cf3fd906b376034cce8b Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Thu, 22 Jul 2021 01:35:10 +1000 Subject: [PATCH 039/328] [Bug] VIA compile fixes (#13626) --- keyboards/0xcb/1337/keymaps/via/keymap.c | 4 ++-- .../emu/soldered/keymaps/via/keymap.c | 20 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/keyboards/0xcb/1337/keymaps/via/keymap.c b/keyboards/0xcb/1337/keymaps/via/keymap.c index 5c231298cdad..897bfdeda93b 100644 --- a/keyboards/0xcb/1337/keymaps/via/keymap.c +++ b/keyboards/0xcb/1337/keymaps/via/keymap.c @@ -132,7 +132,7 @@ static void render_info(void) { oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); } -static void render_rgbled_status(bool) { +static void render_rgbled_status(void) { char string[4]; if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { uint16_t m = rgblight_get_mode(); @@ -178,7 +178,7 @@ void oled_task_user(void) { finished_timer = true; } render_info(); - render_rgbled_status(true); + render_rgbled_status(); render_logo_font(); } } diff --git a/keyboards/kineticlabs/emu/soldered/keymaps/via/keymap.c b/keyboards/kineticlabs/emu/soldered/keymaps/via/keymap.c index fa24ebc9376c..874779d115da 100644 --- a/keyboards/kineticlabs/emu/soldered/keymaps/via/keymap.c +++ b/keyboards/kineticlabs/emu/soldered/keymaps/via/keymap.c @@ -35,21 +35,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [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_MUTE, KC_VOLD, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_MUTE, KC_VOLD, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 ca1aa56c7fe7c5a2a0d87594c65ea21c12ebab06 Mon Sep 17 00:00:00 2001 From: gkeyboard Date: Thu, 22 Jul 2021 00:14:04 +0700 Subject: [PATCH 040/328] [Keyboard] Fix iso layout compile error (#13628) Fix iso layout compile erreo on qmk web. --- keyboards/lm_keyboard/lm60n/lm60n.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/lm_keyboard/lm60n/lm60n.h b/keyboards/lm_keyboard/lm60n/lm60n.h index 2cb9db157c00..f64a1a9d3996 100644 --- a/keyboards/lm_keyboard/lm60n/lm60n.h +++ b/keyboards/lm_keyboard/lm60n/lm60n.h @@ -149,9 +149,9 @@ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┐ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ |68 |69 |6a |6b | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┼───┤ - * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │ |58 |59 |5a |5b | + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │2d │ |58 |59 |5a |5b | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ | ├───┼───┼───┤ | - * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c |2d │ |5c |5d |5e | | + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c | │ |5c |5d |5e | | * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ├───┼───┼───┼───┤ * │30 |31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c |3d │ |48 |49 |4a |4b | * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬──┴─┬────┤ ├───┴───┼───┤ | @@ -160,13 +160,13 @@ */ #define LAYOUT_all_iso_6_25( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k68, k69, k6a, k6b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k58, k59, k5a, k5b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k5c, k5d, k5e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2d, k58, k59, k5a, k5b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k5c, k5d, k5e, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k48, k49, k4a, k4b, \ k40, k41, k42, k43, k44, k45, k46, k47, k4c, k4d \ ) { \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, XXX }, \ @@ -178,9 +178,9 @@ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┐ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d |0e │ |68 |69 |6a |6b | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┼───┤ - * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │ |58 |59 |5a |5b | + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │2d │ |58 |59 |5a |5b | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ | ├───┼───┼───┤ | - * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c |2d │ |5c |5d |5e | | + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c | │ |5c |5d |5e | | * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ├───┼───┼───┼───┤ * │30 |31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c |3d │ |48 |49 |4a |4b | * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴┬─────┤ ├───┴───┼───┤ | @@ -189,13 +189,13 @@ */ #define LAYOUT_all_iso_7( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k68, k69, k6a, k6b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k58, k59, k5a, k5b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k5c, k5d, k5e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2d, k58, k59, k5a, k5b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k5c, k5d, k5e, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k48, k49, k4a, k4b, \ k40, k41, k42, k43, k45, k46, k47, k4c, k4d \ ) { \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ { k40, k41, k42, k43, XXX, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, XXX }, \ From 2b260bd84627b808c237226b8c65ac518f5fae93 Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Thu, 22 Jul 2021 01:25:21 +0700 Subject: [PATCH 041/328] fixed number layer on keymap (#13627) --- keyboards/rart/rartland/keymaps/default/keymap.c | 4 ++-- keyboards/rart/rartland/keymaps/via/keymap.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/rart/rartland/keymaps/default/keymap.c b/keyboards/rart/rartland/keymaps/default/keymap.c index 4737d9ab55c2..e813d87ffde8 100644 --- a/keyboards/rart/rartland/keymaps/default/keymap.c +++ b/keyboards/rart/rartland/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [1] = LAYOUT_all( + [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, @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [1] = LAYOUT_all( + [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, diff --git a/keyboards/rart/rartland/keymaps/via/keymap.c b/keyboards/rart/rartland/keymaps/via/keymap.c index 510045faa18d..4049ae135e19 100644 --- a/keyboards/rart/rartland/keymaps/via/keymap.c +++ b/keyboards/rart/rartland/keymaps/via/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [1] = LAYOUT_all( + [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, @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [1] = LAYOUT_all( + [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, From c79bc7c9094b7bed26450e85040df6ef91239aed Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 22 Jul 2021 04:28:58 +1000 Subject: [PATCH 042/328] Fix MATRIX_COLS for peranekofactory/tone (#13632) --- keyboards/peranekofactory/tone/rev1/config.h | 12 +++--------- keyboards/peranekofactory/tone/rev2/config.h | 9 ++------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/keyboards/peranekofactory/tone/rev1/config.h b/keyboards/peranekofactory/tone/rev1/config.h index 22658c9c7817..54a59ed5515c 100644 --- a/keyboards/peranekofactory/tone/rev1/config.h +++ b/keyboards/peranekofactory/tone/rev1/config.h @@ -28,7 +28,7 @@ along with this program. If not, see . /* key matrix size */ #define MATRIX_ROWS 1 -#define MATRIX_COLS 10 +#define MATRIX_COLS 8 /* * Keyboard Matrix Assignments @@ -42,19 +42,13 @@ along with this program. If not, see . */ #define DIRECT_PINS { \ - { D4, C6, D7, E6, F6, F7, B1, B3 } \ + { D4, C6, D7, E6, F6, F7, B1, B3 } \ } #define UNUSED_PINS -/* -#define MATRIX_ROW_PINS { NO_PIN } -#define MATRIX_COL_PINS { F6,F7,B1,B3,D4,C6,D7,E6 } -#define UNUSED_PINS -*/ - /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW - + /* Rotary encoder define*/ #define ENCODERS_PAD_A { B5 } #define ENCODERS_PAD_B { B4 } diff --git a/keyboards/peranekofactory/tone/rev2/config.h b/keyboards/peranekofactory/tone/rev2/config.h index f49c38e4b833..54a59ed5515c 100644 --- a/keyboards/peranekofactory/tone/rev2/config.h +++ b/keyboards/peranekofactory/tone/rev2/config.h @@ -28,7 +28,7 @@ along with this program. If not, see . /* key matrix size */ #define MATRIX_ROWS 1 -#define MATRIX_COLS 10 +#define MATRIX_COLS 8 /* * Keyboard Matrix Assignments @@ -42,13 +42,8 @@ along with this program. If not, see . */ #define DIRECT_PINS { \ - { D4,C6,D7,E6,F6,F7,B1,B3 } \ + { D4, C6, D7, E6, F6, F7, B1, B3 } \ } - -/* -#define MATRIX_ROW_PINS { NO_PIN } -#define MATRIX_COL_PINS { D4,C6,D7,E6,F6,F7,B1,B3 } -*/ #define UNUSED_PINS /* COL2ROW, ROW2COL */ From b564ba13eef1564c871d062a6ce97c1ccdbbd825 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 22 Jul 2021 04:30:29 +1000 Subject: [PATCH 043/328] Fix API generation failure caused by GRS-70EC (#13631) --- keyboards/sekigon/grs_70ec/config.h | 2 +- keyboards/sekigon/grs_70ec/ec_switch_matrix.c | 12 +----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/keyboards/sekigon/grs_70ec/config.h b/keyboards/sekigon/grs_70ec/config.h index aa740e7775ab..b1559fcc2f6c 100644 --- a/keyboards/sekigon/grs_70ec/config.h +++ b/keyboards/sekigon/grs_70ec/config.h @@ -45,7 +45,7 @@ along with this program. If not, see . * */ #define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } -#define MATRIX_COL_PINS { S2, S1, S0, S3, S5, S7, S6, S4 } +#define MATRIX_COL_CHANNELS { 2, 1, 0, 3, 5, 7, 6, 4 } #define UNUSED_PINS #define DISCHARGE_PIN B1 #define ANALOG_PORT F6 diff --git a/keyboards/sekigon/grs_70ec/ec_switch_matrix.c b/keyboards/sekigon/grs_70ec/ec_switch_matrix.c index 88e9bdabdb19..d1c2d85ac833 100644 --- a/keyboards/sekigon/grs_70ec/ec_switch_matrix.c +++ b/keyboards/sekigon/grs_70ec/ec_switch_matrix.c @@ -20,19 +20,9 @@ #include "analog.h" #include "print.h" -// sensing channel definitions -#define S0 0 -#define S1 1 -#define S2 2 -#define S3 3 -#define S4 4 -#define S5 5 -#define S6 6 -#define S7 7 - // pin connections const uint8_t row_pins[] = MATRIX_ROW_PINS; -const uint8_t col_channels[] = MATRIX_COL_PINS; +const uint8_t col_channels[] = MATRIX_COL_CHANNELS; const uint8_t mux_sel_pins[] = MUX_SEL_PINS; _Static_assert(sizeof(mux_sel_pins) == 3, "invalid MUX_SEL_PINS"); From 5b8d2b5cde3c618c37a7bb09bf14cd50ec25459b Mon Sep 17 00:00:00 2001 From: "Md. Mashur Shalehin Sakib" <41992136+h0oni@users.noreply.github.com> Date: Thu, 22 Jul 2021 11:39:36 +0600 Subject: [PATCH 044/328] [Keyboard] Add h0oni hotduck keyboard (#13609) --- keyboards/h0oni/hotduck/config.h | 74 ++++++++++++++++ keyboards/h0oni/hotduck/hotduck.c | 18 ++++ keyboards/h0oni/hotduck/hotduck.h | 37 ++++++++ keyboards/h0oni/hotduck/info.json | 85 +++++++++++++++++++ .../h0oni/hotduck/keymaps/default/keymap.c | 52 ++++++++++++ keyboards/h0oni/hotduck/keymaps/via/keymap.c | 52 ++++++++++++ keyboards/h0oni/hotduck/keymaps/via/rules.mk | 2 + keyboards/h0oni/hotduck/readme.md | 12 +++ keyboards/h0oni/hotduck/rules.mk | 22 +++++ 9 files changed, 354 insertions(+) create mode 100644 keyboards/h0oni/hotduck/config.h create mode 100644 keyboards/h0oni/hotduck/hotduck.c create mode 100644 keyboards/h0oni/hotduck/hotduck.h create mode 100644 keyboards/h0oni/hotduck/info.json create mode 100644 keyboards/h0oni/hotduck/keymaps/default/keymap.c create mode 100644 keyboards/h0oni/hotduck/keymaps/via/keymap.c create mode 100644 keyboards/h0oni/hotduck/keymaps/via/rules.mk create mode 100644 keyboards/h0oni/hotduck/readme.md create mode 100644 keyboards/h0oni/hotduck/rules.mk diff --git a/keyboards/h0oni/hotduck/config.h b/keyboards/h0oni/hotduck/config.h new file mode 100644 index 000000000000..9865f5d30375 --- /dev/null +++ b/keyboards/h0oni/hotduck/config.h @@ -0,0 +1,74 @@ +/* Copyright 2021 Md Mashur Shalehin, aka h0oni + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D53 +#define PRODUCT_ID 0x6844 //hD +#define DEVICE_VER 0x0001 +#define MANUFACTURER h0oni +#define PRODUCT hotDuck + +/* key matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 10 + +/* + * 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 { B6, B2, B3, B1, F7, F6, F5 } +#define MATRIX_COL_PINS { B5, B4, E6, D7, C6, D4, D0, D1, D2, D3} +#define UNUSED_PINS + +// #define LED_CAPS_LOCK_PIN B2 +// #define LED_PIN_ON_STATE 0 + +// /* Backlight Setup */ +// #define BACKLIGHT_PIN B5 +// #define BACKLIGHT_LEVELS 6 +// //#define BACKLIGHT_BREATHING + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* RGB Underglow + * F4 PIN for pre-soldered WS2812 LEDs + */ +#define RGB_DI_PIN F4 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 20 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 15 +#define RGBLIGHT_VAL_STEP 15 + +/* 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/h0oni/hotduck/hotduck.c b/keyboards/h0oni/hotduck/hotduck.c new file mode 100644 index 000000000000..a251fb8987fa --- /dev/null +++ b/keyboards/h0oni/hotduck/hotduck.c @@ -0,0 +1,18 @@ +/* Copyright 2021 Md Mashur Shalehin, aka h0oni + * + * 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 "hotduck.h" + diff --git a/keyboards/h0oni/hotduck/hotduck.h b/keyboards/h0oni/hotduck/hotduck.h new file mode 100644 index 000000000000..2cc36a0aa809 --- /dev/null +++ b/keyboards/h0oni/hotduck/hotduck.h @@ -0,0 +1,37 @@ +/* Copyright 2021 Md Mashur Shalehin, aka h0oni + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K19, K59, K58, K57, K69, K68, K67,\ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K29, K39, K49, K56, K55, K66, K65, K64,\ + K20, K21, K22, K23, K24, K25, K35, K26, K27, K28, K38, K54, K53,\ + K30, K31, K32, K33, K34, K44, K45, K46, K36, K37, K48, K52, K63,\ + K40, K41, K42, K43, K47, K50, K51, K60, K61, K62\ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59 }, \ + { K60, K61, K62, K63, K64, K65, K66, K67, K68, K69 } \ +} + + diff --git a/keyboards/h0oni/hotduck/info.json b/keyboards/h0oni/hotduck/info.json new file mode 100644 index 000000000000..e25703da2e25 --- /dev/null +++ b/keyboards/h0oni/hotduck/info.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "hotDuck", + "url": "", + "maintainer": "h0oni", + "width": 10, + "height": 7, + "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}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Menu", "x":15.25, "y":0}, + {"label":"Home", "x":16.25, "y":0}, + {"label":"PgUp", "x":17.25, "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":"Del", "x":15.25, "y":0}, + {"label":"End", "x":16.25, "y":0}, + {"label":"PgDn", "x":17.25, "y":0}, + + {"label":"Caps Lock", "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}, + {"label":"\u2191", "x":16.25, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Alt", "x":1.25, "y":4, "w":1.25}, + {"label":"Win", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Win", "x":10, "y":4, "w":1.25}, + {"label":"Alt", "x":11.25, "y":4, "w":1.25}, + {"label":"Ctrl", "x":12.5, "y":4, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":4}, + {"label":"\u2193", "x":16.25, "y":4}, + {"label":"\u2192", "x":17.25, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/h0oni/hotduck/keymaps/default/keymap.c b/keyboards/h0oni/hotduck/keymaps/default/keymap.c new file mode 100644 index 000000000000..e06bac51ba69 --- /dev/null +++ b/keyboards/h0oni/hotduck/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 Md Mashur Shalehin, aka h0oni + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, MO(1), KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_SLSH, KC_DEL, KC_END, KC_PGDOWN, + 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_BSLS, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, MO(1), TG(2), KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 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,TG(2), MO(4), + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 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,MO(4), + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 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/h0oni/hotduck/keymaps/via/keymap.c b/keyboards/h0oni/hotduck/keymaps/via/keymap.c new file mode 100644 index 000000000000..e06bac51ba69 --- /dev/null +++ b/keyboards/h0oni/hotduck/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 Md Mashur Shalehin, aka h0oni + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, MO(1), KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_SLSH, KC_DEL, KC_END, KC_PGDOWN, + 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_BSLS, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, MO(1), TG(2), KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 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,TG(2), MO(4), + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 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,MO(4), + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 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/h0oni/hotduck/keymaps/via/rules.mk b/keyboards/h0oni/hotduck/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/h0oni/hotduck/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/h0oni/hotduck/readme.md b/keyboards/h0oni/hotduck/readme.md new file mode 100644 index 000000000000..e4c06c46daa0 --- /dev/null +++ b/keyboards/h0oni/hotduck/readme.md @@ -0,0 +1,12 @@ +# hotDuck TKL + +Built-in WS2182 RGB LED for underglow lighting. + +* Keyboard Maintainer: h0oni +* Hardware Supported: hotDuck_tkl + +Make example for this keyboard (after setting up your build environment): + + make h0oni/hotduck:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/h0oni/hotduck/rules.mk b/keyboards/h0oni/hotduck/rules.mk new file mode 100644 index 000000000000..b1e541851835 --- /dev/null +++ b/keyboards/h0oni/hotduck/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output \ No newline at end of file From 665af4fa8db299e0af7618aeeb548e2a9b044a04 Mon Sep 17 00:00:00 2001 From: "Manassarn \"Noom\" Manoonchai" <248741+narze@users.noreply.github.com> Date: Thu, 22 Jul 2021 05:46:15 +0000 Subject: [PATCH 045/328] [Keymap] narze/xd004 (#13634) Co-authored-by: Ryan --- keyboards/xd004/keymaps/narze/keymap.c | 24 ++++++++++++++++++++++++ keyboards/xd004/keymaps/narze/readme.md | 13 +++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 keyboards/xd004/keymaps/narze/keymap.c create mode 100644 keyboards/xd004/keymaps/narze/readme.md diff --git a/keyboards/xd004/keymaps/narze/keymap.c b/keyboards/xd004/keymaps/narze/keymap.c new file mode 100644 index 000000000000..30ea48d6837b --- /dev/null +++ b/keyboards/xd004/keymaps/narze/keymap.c @@ -0,0 +1,24 @@ +/* Copyright 2021 narze + * + * 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: Base Layer + LAYOUT_all(HYPR(KC_F2), HYPR(KC_F1), LCTL(KC_B), LCTL(KC_X)), + +}; diff --git a/keyboards/xd004/keymaps/narze/readme.md b/keyboards/xd004/keymaps/narze/readme.md new file mode 100644 index 000000000000..6f4bca9a90bf --- /dev/null +++ b/keyboards/xd004/keymaps/narze/readme.md @@ -0,0 +1,13 @@ +# narze Keymap for XD004 PCB + +(Key 1 is on the opposite of USB port side, so I flip the keys to make usb port be on the left) + +- Key 1 : Hyper + F2 +- Key 2 : Hyper + F1 +- Key 3 : Ctrl + B (Microphone : Toggle mute) +- Key 4 : Ctrl + X (Microphone : Push to talk) + +## Build & Flash + +- Put this board in DFU : bridge the last two pins (#5 & 6) of the 6-pin "J2" header on the opposite edge of the board to the USB port. +- `make xd004/v1:narze:flash` or `qmk flash -kb xd004/v1 -km narze` From fbe782534a89f4a012522a6133970e8d768a3ed4 Mon Sep 17 00:00:00 2001 From: Adam Abrams Date: Thu, 22 Jul 2021 00:56:46 -0500 Subject: [PATCH 046/328] [Keyboard] Add personal planck keymap (#13635) --- keyboards/planck/keymaps/adamtabrams/config.h | 39 +++ keyboards/planck/keymaps/adamtabrams/keymap.c | 279 ++++++++++++++++++ .../planck/keymaps/adamtabrams/readme.md | 89 ++++++ keyboards/planck/keymaps/adamtabrams/rules.mk | 13 + 4 files changed, 420 insertions(+) create mode 100644 keyboards/planck/keymaps/adamtabrams/config.h create mode 100644 keyboards/planck/keymaps/adamtabrams/keymap.c create mode 100644 keyboards/planck/keymaps/adamtabrams/readme.md create mode 100644 keyboards/planck/keymaps/adamtabrams/rules.mk diff --git a/keyboards/planck/keymaps/adamtabrams/config.h b/keyboards/planck/keymaps/adamtabrams/config.h new file mode 100644 index 000000000000..0c275f20c51b --- /dev/null +++ b/keyboards/planck/keymaps/adamtabrams/config.h @@ -0,0 +1,39 @@ +/* Copyright (C) 2021 Adam Abrams + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// General Configs +#define NO_ACTION_ONESHOT +#define FORCE_NKRO +#define TAPPING_TOGGLE 3 + +// Mouse Configs +#define MK_3_SPEED +#define MK_MOMENTARY_ACCEL +#define MK_C_OFFSET_1 6 +#define MK_C_OFFSET_UNMOD 16 +#define MK_C_OFFSET_2 26 +// for MK_W lower is faster +#define MK_W_INTERVAL_UNMOD 80 + +// Tap-Hold Configs +#define TAPPING_TERM 180 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY +#define TAPPING_FORCE_HOLD +#define TAPPING_FORCE_HOLD_PER_KEY diff --git a/keyboards/planck/keymaps/adamtabrams/keymap.c b/keyboards/planck/keymaps/adamtabrams/keymap.c new file mode 100644 index 000000000000..4b041aa2af2f --- /dev/null +++ b/keyboards/planck/keymaps/adamtabrams/keymap.c @@ -0,0 +1,279 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + + +enum planck_layers { + _QWERTY, + _COLEMAK, + _SIMPLE, + _NUMBER, + _ARROWS, + _CURSOR, + _SYSTEM, + _KBOARD, + _FMWARE +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + SIMPLE, + NORMAL +}; + +#define ARROWS TT(_ARROWS) +#define CURSOR TT(_CURSOR) +#define SYSTEM TT(_SYSTEM) +#define KBOARD MO(_KBOARD) +#define FMWARE MO(_FMWARE) + +#define NUMSPAC LT(_NUMBER, KC_SPC) +#define SHFTESC LSFT_T(KC_ESC) +#define SFTENTR SFT_T(KC_ENT) + +#define ALT__A ALT_T(KC_A) +#define ALTSCLN ALT_T(KC_SCLN) +#define ALT__O ALT_T(KC_O) +#define GUI__S GUI_T(KC_S) +#define GUI__L GUI_T(KC_L) +#define GUI__R GUI_T(KC_R) +#define GUI__I GUI_T(KC_I) +#define SFT__D SFT_T(KC_D) +#define SFT__K SFT_T(KC_K) +#define SFT__S SFT_T(KC_S) +#define SFT__E SFT_T(KC_E) +#define CTL__F CTL_T(KC_F) +#define CTL__J CTL_T(KC_J) +#define CTL__T CTL_T(KC_T) +#define CTL__N CTL_T(KC_N) + +#define ALTRGHT A(KC_RGHT) +#define ALTLEFT A(KC_LEFT) +#define CTLRGHT C(KC_RGHT) +#define CTLLEFT C(KC_LEFT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* ## Qwerty + +| Tab | Q | W | E | R | T | Y | U | I | O | P | -_ | +| Bsp | A(A) | G(S) | S(D) | C(F) | G | H | C(J) | S(K) | G(L) | A(;) | '" | +| ! | Z | X | C | V | B | N | M | , | . | / | Enter| +| CTRL | GUI | ALT |System|Cursor|S(Esc)|N(Spc)|Arrows| Left | Down | Up | Right| + */ + +[_QWERTY] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_BSPC, ALT__A, GUI__S, SFT__D, CTL__F, KC_G, KC_H, CTL__J, SFT__K, GUI__L, ALTSCLN, KC_QUOT, + KC_EXLM, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, SYSTEM, CURSOR, SHFTESC, NUMSPAC, ARROWS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* ## Colemak + +| Tab | Q | W | F | P | B | J | L | U | Y | ; | -_ | +| Bsp | A(A) | G(R) | S(S) | C(T) | G | M | C(N) | S(E) | G(I) | A(O) | '" | +| ! | Z | X | C | D | V | K | H | , | . | / | Enter| +| CTRL | GUI | ALT |System|Cursor|S(Esc)|N(Spc)|Arrows| Left | Down | Up | Right| + */ + +[_COLEMAK] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS, + KC_BSPC, ALT__A, GUI__R, SFT__S, CTL__T, KC_G, KC_M, CTL__N, SFT__E, GUI__I, ALT__O, KC_QUOT, + KC_EXLM, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, SYSTEM, CURSOR, SHFTESC, NUMSPAC, ARROWS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* ## Simple + +| Tab | Q | W | E | R | T | Y | U | I | O | P | Bsp | +| Esc | A | S | D | F | G | H | J | K | L | ; | '" | +| SHFT | Z | X | C | V | B | N | M | , | . | / |S(Ent)| +| CTRL | GUI | ALT |System|Cursor| Spc |N(Spc)|Arrows| Left | Down | Up | Right| + */ + +[_SIMPLE] = LAYOUT_planck_grid( + 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, SFTENTR, + KC_LCTL, KC_LGUI, KC_LALT, SYSTEM, CURSOR, KC_SPC, NUMSPAC, ARROWS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* ## Number + +| | \| | & | = | + | @ | % | # | * | $ | ^ | | +| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \` | +| | | [ | { | ( | ~ | ! | ) | } | ] | \ | | +| | | | | | | \\/ | | | | |Normal| + */ + +[_NUMBER] = LAYOUT_planck_grid( + _______, KC_PIPE, KC_AMPR, KC_EQL, KC_PLUS, KC_AT, KC_PERC, KC_HASH, KC_ASTR, KC_DLR, KC_CIRC, _______, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + _______, XXXXXXX, KC_LBRC, KC_LCBR, KC_LPRN, KC_TILD, KC_EXLM, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NORMAL +), + + +/* ## Arrows + +| | |A(->) | | |A(<-) | | P_Up | P_Up |C(->) | | | +| | | |P_Down| | | Left | Down | Up |Right |C(<-) | | +| | | | |P_Down|A(<-) | | | | | | | +| | | | | | | | \\/ | | | |Normal| + */ + +[_ARROWS] = LAYOUT_planck_grid( + _______, _______, ALTRGHT, _______, _______, ALTLEFT, _______, KC_PGUP, KC_PGUP, CTLRGHT, _______, _______, + _______, _______, _______, KC_PGDN, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CTLLEFT, _______, + _______, _______, _______, _______, KC_PGDN, ALTLEFT, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NORMAL +), + +/* ## Cursor + +| | | |Wh_Dn |M_Btn2| | |Wh_Dn |Wh_Dn | | | | +| |M_Acc2|M_Acc1|Wh_Up |M_Btn1| | M_L |M_Down| M_Up | M_R | | | +| | | | |Wh_Up | | | | | | | | +| | | | | \\/ | | | | | | |Normal| + */ + +[_CURSOR] = LAYOUT_planck_grid( + _______, _______, _______, KC_WH_D, KC_BTN2, _______, _______, KC_WH_D, KC_WH_D, _______, _______, _______, + _______, KC_ACL2, KC_ACL1, KC_WH_U, KC_BTN1, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, + _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NORMAL +), + +/* ## System + +| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +| | |Pr_Scn|Pr_Scn| | |Brght-| Vol- | Vol+ |Brght+| Mute | | +| | | | | | | | Mute |P_Trac|N_Trac| | Play | +|KBoard| | | \\/ | | | | |Simple|Qwerty|Colemk|Normal| + */ + +[_SYSTEM] = LAYOUT_planck_grid( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, XXXXXXX, KC_PSCR, KC_PSCR, XXXXXXX, XXXXXXX, KC_BRID, KC_VOLD, KC_VOLU, KC_BRIU, KC_MUTE, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_MPRV, KC_MNXT, XXXXXXX, KC_MPLY, + KBOARD, _______, _______, _______, _______, _______, _______, _______, SIMPLE, QWERTY, COLEMAK, NORMAL +), + +/* ## KBoard + +|------| | | | | | | | | | | | +| | | | | | | Hue- | Sat- | Sat+ | Hue+ |Mode+ | | +| | | | | | | |Mode- |Brght-|Brght+| |RGB_Tg| +| \\/ | | | \\/ | | | | | | | |FMWare| + */ + +[_KBOARD] = LAYOUT_planck_grid( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_SAD, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_VAD, RGB_VAI, XXXXXXX, RGB_TOG, + _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, FMWARE +), + +/* ## FMWare + +| | | |EEPROM|Reset | | | | | | | | +| | |Reset |Debug | | | | | | | | | +|------| | | | | | | | | | | | +| \\/ | | | \\/ | | | | | | | | \\/ | + */ + +[_FMWARE] = LAYOUT_planck_grid( + XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, RESET, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ +) + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + set_single_persistent_default_layer(_QWERTY); + return true; + + case COLEMAK: + set_single_persistent_default_layer(_COLEMAK); + return true; + + case SIMPLE: + set_single_persistent_default_layer(_SIMPLE); + return true; + + case NORMAL: + layer_clear(); + return false; + } + return true; +} + +bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SHFTESC: + case NUMSPAC: + case SFTENTR: + case ALT__A: + case ALTSCLN: + case ALT__O: + case GUI__S: + case GUI__L: + case GUI__R: + case GUI__I: + case SFT__D: + case SFT__K: + case SFT__S: + case SFT__E: + case CTL__F: + case CTL__J: + case CTL__T: + case CTL__N: + return true; + default: + return false; + } +} + +bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case ALT__A: + case ALTSCLN: + case ALT__O: + case GUI__S: + case GUI__L: + case GUI__R: + case GUI__I: + case SFT__D: + case SFT__K: + case SFT__S: + case SFT__E: + case CTL__F: + case CTL__J: + case CTL__T: + case CTL__N: + return true; + default: + return false; + } +} diff --git a/keyboards/planck/keymaps/adamtabrams/readme.md b/keyboards/planck/keymaps/adamtabrams/readme.md new file mode 100644 index 000000000000..6512cb7d7ab2 --- /dev/null +++ b/keyboards/planck/keymaps/adamtabrams/readme.md @@ -0,0 +1,89 @@ +## Normal - Qwerty + +|------|------|------|------|------|------|------|------|------|------|------|------| +|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| +| Tab | Q | W | E | R | T | Y | U | I | O | P | -_ | +| Bsp | A(A) | G(S) | S(D) | C(F) | G | H | C(J) | S(K) | G(L) | A(;) | '" | +| ! | Z | X | C | V | B | N | M | , | . | / | Enter| +| CTRL | GUI | ALT |System|Cursor|S(Esc)|N(Spc)|Arrows| Left | Down | Up | Right| + +- The `N` in `N(Spc)` stands for Number layer +- Hold down a layer key to temporarily activate or tap twice to toggle on or off + +## Normal - Colemak + +|------|------|------|------|------|------|------|------|------|------|------|------| +|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| +| Tab | Q | W | F | P | B | J | L | U | Y | ; | -_ | +| Bsp | A(A) | G(R) | S(S) | C(T) | G | M | C(N) | S(E) | G(I) | A(O) | '" | +| ! | Z | X | C | D | V | K | H | , | . | / | Enter| +| CTRL | GUI | ALT |System|Cursor|S(Esc)|N(Spc)|Arrows| Left | Down | Up | Right| + +- The `N` in `N(Spc)` stands for Number layer +- Hold down a layer key to temporarily activate or tap twice to toggle on or off + +## Normal - Simple + +|------|------|------|------|------|------|------|------|------|------|------|------| +|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| +| Tab | Q | W | E | R | T | Y | U | I | O | P | Bsp | +| Esc | A | S | D | F | G | H | J | K | L | ; | '" | +| SHFT | Z | X | C | V | B | N | M | , | . | / |S(Ent)| +| CTRL | GUI | ALT |System|Cursor| Spc |N(Spc)|Arrows| Left | Down | Up | Right| + +- The `N` in `N(Spc)` stands for Number layer +- Hold down a layer key to temporarily activate or tap twice to toggle on or off + +## Number + +|------|------|------|------|------|------|------|------|------|------|------|------| +|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| +| | \| | & | = | + | @ | % | # | * | $ | ^ | | +| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \` | +| | | [ | { | ( | ~ | ! | ) | } | ] | \ | | +| | | | | | | \\/ | | | | |Normal| + +## Arrows + +|------|------|------|------|------|------|------|------|------|------|------|------| +|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| +| | |A(->) | | |A(<-) | | P_Up | P_Up |C(->) | | | +| | | |P_Down| | | Left | Down | Up |Right |C(<-) | | +| | | | |P_Down|A(<-) | | | | | | | +| | | | | | | | \\/ | | | |Normal| + +## Cursor + +|------|------|------|------|------|------|------|------|------|------|------|------| +|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| +| | | |Wh_Dn |M_Btn2| | |Wh_Dn |Wh_Dn | | | | +| |M_Acc2|M_Acc1|Wh_Up |M_Btn1| | M_L |M_Down| M_Up | M_R | | | +| | | | |Wh_Up | | | | | | | | +| | | | | \\/ | | | | | | |Normal| + +## System + +|------|------|------|------|------|------|------|------|------|------|------|------| +|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| +| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +| | |Pr_Scn|Pr_Scn| | |Brght-| Vol- | Vol+ |Brght+| Mute | | +| | | | | | | | Mute |P_Trac|N_Trac| | Play | +|KBoard| | | \\/ | | | | |Simple|Qwerty|Colemk|Normal| + +## KBoard + +|------|------|------|------|------|------|------|------|------|------|------|------| +|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| +|------| | | | | | | | | | | | +| | | | | | | Hue- | Sat- | Sat+ | Hue+ |Mode+ | | +| | | | | | | |Mode- |Brght-|Brght+| |RGB_Tg| +| \\/ | | | \\/ | | | | | | | |FMWare| + +## FMWare + +|------|------|------|------|------|------|------|------|------|------|------|------| +|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| +| | | |EEPROM|Reset | | | | | | | | +| | |Reset |Debug | | | | | | | | | +|------| | | | | | | | | | | | +| \\/ | | | \\/ | | | | | | | | \\/ | diff --git a/keyboards/planck/keymaps/adamtabrams/rules.mk b/keyboards/planck/keymaps/adamtabrams/rules.mk new file mode 100644 index 000000000000..31da4ef08598 --- /dev/null +++ b/keyboards/planck/keymaps/adamtabrams/rules.mk @@ -0,0 +1,13 @@ +SRC += muse.c +LTO_ENABLE = yes + +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +NKRO_ENABLE = yes +RGBLIGHT_ENABLE = yes + +BOOTMAGIC_ENABLE = no +COMMAND_ENABLE = no +AUDIO_ENABLE = no +ENCODER_ENABLE = no +DIP_SWITCH_ENABLE = no From 5766b9bfb7a0f6f8b091293015644f5cfe1d6683 Mon Sep 17 00:00:00 2001 From: Kyle McCreery Date: Thu, 22 Jul 2021 02:22:00 -0400 Subject: [PATCH 047/328] [Keyboard] New Keyboard - OBE (#13545) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- keyboards/mechwild/obe/config.h | 149 ++++++++++++++++++ keyboards/mechwild/obe/f401/halconf.h | 22 +++ keyboards/mechwild/obe/f401/mcuconf.h | 22 +++ keyboards/mechwild/obe/f401/rules.mk | 5 + keyboards/mechwild/obe/f411/halconf.h | 22 +++ keyboards/mechwild/obe/f411/mcuconf.h | 23 +++ keyboards/mechwild/obe/f411/rules.mk | 5 + keyboards/mechwild/obe/info.json | 86 ++++++++++ .../mechwild/obe/keymaps/default/keymap.c | 43 +++++ keyboards/mechwild/obe/keymaps/via/keymap.c | 57 +++++++ keyboards/mechwild/obe/keymaps/via/rules.mk | 2 + keyboards/mechwild/obe/obe.c | 33 ++++ keyboards/mechwild/obe/obe.h | 43 +++++ keyboards/mechwild/obe/readme.md | 19 +++ keyboards/mechwild/obe/rules.mk | 21 +++ 15 files changed, 552 insertions(+) create mode 100644 keyboards/mechwild/obe/config.h create mode 100644 keyboards/mechwild/obe/f401/halconf.h create mode 100644 keyboards/mechwild/obe/f401/mcuconf.h create mode 100644 keyboards/mechwild/obe/f401/rules.mk create mode 100644 keyboards/mechwild/obe/f411/halconf.h create mode 100644 keyboards/mechwild/obe/f411/mcuconf.h create mode 100644 keyboards/mechwild/obe/f411/rules.mk create mode 100644 keyboards/mechwild/obe/info.json create mode 100644 keyboards/mechwild/obe/keymaps/default/keymap.c create mode 100644 keyboards/mechwild/obe/keymaps/via/keymap.c create mode 100644 keyboards/mechwild/obe/keymaps/via/rules.mk create mode 100644 keyboards/mechwild/obe/obe.c create mode 100644 keyboards/mechwild/obe/obe.h create mode 100644 keyboards/mechwild/obe/readme.md create mode 100644 keyboards/mechwild/obe/rules.mk diff --git a/keyboards/mechwild/obe/config.h b/keyboards/mechwild/obe/config.h new file mode 100644 index 000000000000..9cbc01263782 --- /dev/null +++ b/keyboards/mechwild/obe/config.h @@ -0,0 +1,149 @@ +/* +Copyright 2021 Kyle McCreery + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6D77 // mw = "MechWild" +#define PRODUCT_ID 0x1707 +#define DEVICE_VER 0x0201 +#define MANUFACTURER MechWild +#define PRODUCT OrangeBoyErgo + +/* key matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 10 + +#define EEPROM_I2C_24LC64 + +/* + * 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 { A8, B15, B14, B13, B12, A15, B3 } +#define MATRIX_COL_PINS { B10, B1, B0, A7, A6, A5, A4, A3, A2, A1 } +#define UNUSED_PINS + +/* encoder pins */ +#define ENCODERS_PAD_A { B5 } +#define ENCODERS_PAD_B { B4 } + +/* encoder resolution */ +#define ENCODER_RESOLUTION 4 +#define TAP_CODE_DELAY 10 + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* status light pins */ +#define LED_NUM_LOCK_PIN B8 +#define LED_CAPS_LOCK_PIN B9 + +/* RGB settings, uncomment this define to enable RGB */ +//#define RGB_DI_PIN A0 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 10 +# 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 */ +/*== 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 +/*== 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 + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 5 +#define BOOTMAGIC_LITE_COLUMN 4 diff --git a/keyboards/mechwild/obe/f401/halconf.h b/keyboards/mechwild/obe/f401/halconf.h new file mode 100644 index 000000000000..b57977316a6c --- /dev/null +++ b/keyboards/mechwild/obe/f401/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Kyle McCreery + * + * 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 HAL_USE_I2C TRUE + +#include_next + diff --git a/keyboards/mechwild/obe/f401/mcuconf.h b/keyboards/mechwild/obe/f401/mcuconf.h new file mode 100644 index 000000000000..da43021663c3 --- /dev/null +++ b/keyboards/mechwild/obe/f401/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Kyle McCreery + * + * 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_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/mechwild/obe/f401/rules.mk b/keyboards/mechwild/obe/f401/rules.mk new file mode 100644 index 000000000000..f1304648f085 --- /dev/null +++ b/keyboards/mechwild/obe/f401/rules.mk @@ -0,0 +1,5 @@ +# MCU name +MCU = STM32F401 + +# Bootloader selection +BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/obe/f411/halconf.h b/keyboards/mechwild/obe/f411/halconf.h new file mode 100644 index 000000000000..b57977316a6c --- /dev/null +++ b/keyboards/mechwild/obe/f411/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Kyle McCreery + * + * 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 HAL_USE_I2C TRUE + +#include_next + diff --git a/keyboards/mechwild/obe/f411/mcuconf.h b/keyboards/mechwild/obe/f411/mcuconf.h new file mode 100644 index 000000000000..a00131aca558 --- /dev/null +++ b/keyboards/mechwild/obe/f411/mcuconf.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Kyle McCreery + * + * 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_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + diff --git a/keyboards/mechwild/obe/f411/rules.mk b/keyboards/mechwild/obe/f411/rules.mk new file mode 100644 index 000000000000..b32a8b7f5bda --- /dev/null +++ b/keyboards/mechwild/obe/f411/rules.mk @@ -0,0 +1,5 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/obe/info.json b/keyboards/mechwild/obe/info.json new file mode 100644 index 000000000000..b19e6267c917 --- /dev/null +++ b/keyboards/mechwild/obe/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "MechWild OBE", + "url": "mechwild.com", + "maintainer": "Kyle McCreery", + "width": 19.5, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "k55", "x": 0.3, "y": 0}, + {"label": "k54", "x": 1.72, "y": 0}, + {"label": "k53", "x": 2.72, "y": 0}, + {"label": "k52", "x": 4.00, "y": 0}, + {"label": "k51", "x": 5, "y": 0}, + {"label": "k50", "x": 6, "y": 0}, + {"label": "k00", "x": 7, "y": 0}, + {"label": "k01", "x": 8, "y": 0}, + {"label": "k02", "x": 10.75, "y": 0}, + {"label": "k03", "x": 11.75, "y": 0}, + {"label": "k04", "x": 12.75, "y": 0}, + {"label": "k05", "x": 13.75, "y": 0}, + {"label": "k06", "x": 15, "y": 0}, + {"label": "k07", "x": 16, "y": 0}, + {"label": "k08", "x": 17, "y": 0}, + {"label": "k09", "x": 18, "y": 0}, + {"label": "k65", "x": 0.2, "y": 1}, + {"label": "k59", "x": 1.47, "y": 1, "w": 1.5}, + {"label": "k58", "x": 2.97, "y": 1}, + {"label": "k57", "x": 4.50, "y": 1}, + {"label": "k56", "x": 5.5, "y": 1}, + {"label": "k10", "x": 6.5, "y": 1}, + {"label": "k11", "x": 7.5, "y": 1}, + {"label": "k12", "x": 10.25, "y": 1}, + {"label": "k13", "x": 11.25, "y": 1}, + {"label": "k14", "x": 12.25, "y": 1}, + {"label": "k15", "x": 13.25, "y": 1}, + {"label": "k16", "x": 14.75, "y": 1}, + {"label": "k17", "x": 15.75, "y": 1}, + {"label": "k18", "x": 16.75, "y": 1}, + {"label": "k19", "x": 17.75, "y": 1, "w": 1.5}, + {"label": "k64", "x": 0.1, "y": 2}, + {"label": "k69", "x": 1.40, "y": 2, "w": 1.75}, + {"label": "k68", "x": 3.12, "y": 2}, + {"label": "k63", "x": 4.75, "y": 2}, + {"label": "k20", "x": 5.75, "y": 2}, + {"label": "k21", "x": 6.75, "y": 2}, + {"label": "k22", "x": 7.75, "y": 2}, + {"label": "k23", "x": 10.5, "y": 2}, + {"label": "k24", "x": 11.5, "y": 2}, + {"label": "k25", "x": 12.5, "y": 2}, + {"label": "k26", "x": 13.5, "y": 2}, + {"label": "k27", "x": 15.1, "y": 2}, + {"label": "k28", "x": 16.1, "y": 2}, + {"label": "k29", "x": 17.1, "y": 2, "w": 2.25}, + {"label": "k62", "x": 1.22, "y": 3, "w": 2.25}, + {"label": "k60", "x": 3.47, "y": 3}, + {"label": "k67", "x": 5.25, "y": 3}, + {"label": "k66", "x": 6.25, "y": 3}, + {"label": "k30", "x": 7.25, "y": 3}, + {"label": "k31", "x": 8.25, "y": 3}, + {"label": "k32", "x": 10, "y": 3}, + {"label": "k33", "x": 11, "y": 3}, + {"label": "k34", "x": 12, "y": 3}, + {"label": "k35", "x": 13, "y": 3}, + {"label": "k36", "x": 14.75, "y": 3}, + {"label": "k37", "x": 15.75, "y": 3}, + {"label": "k38", "x": 16.75, "y": 3}, + {"label": "k39", "x": 17.75, "y": 3, "w": 1.75}, + {"label": "k61", "x": 1.25, "y": 4, "w": 1.25}, + {"label": "k40", "x": 2.72, "y": 4, "w": 1.25}, + {"label": "k41", "x": 5.25, "y": 4, "w": 1.25}, + {"label": "k42", "x": 6.50, "y": 4, "w": 2.25}, + {"label": "k43", "x": 8.75, "y": 4}, + {"label": "k44", "x": 10, "y": 4, "w": 2.75}, + {"label": "k45", "x": 12.75, "y": 4}, + {"label": "k46", "x": 14.75, "y": 4}, + {"label": "k47", "x": 15.75, "y": 4}, + {"label": "k48", "x": 16.75, "y": 4}, + {"label": "k49", "x": 17.75, "y": 4} + ] + } + } +} + + + diff --git a/keyboards/mechwild/obe/keymaps/default/keymap.c b/keyboards/mechwild/obe/keymaps/default/keymap.c new file mode 100644 index 000000000000..fd91890ae063 --- /dev/null +++ b/keyboards/mechwild/obe/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 Kyle McCreery + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + #include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_MUTE, 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_TRNS, 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, MO(1), 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_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN1] = LAYOUT( + 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_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/mechwild/obe/keymaps/via/keymap.c b/keyboards/mechwild/obe/keymaps/via/keymap.c new file mode 100644 index 000000000000..23b93099018a --- /dev/null +++ b/keyboards/mechwild/obe/keymaps/via/keymap.c @@ -0,0 +1,57 @@ +/* Copyright 2021 Kyle McCreery + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + #include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_MUTE, 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_TRNS, 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, MO(1), 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_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN1] = LAYOUT( + 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_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_FN2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_FN3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/mechwild/obe/keymaps/via/rules.mk b/keyboards/mechwild/obe/keymaps/via/rules.mk new file mode 100644 index 000000000000..16d33cd89fe4 --- /dev/null +++ b/keyboards/mechwild/obe/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes + diff --git a/keyboards/mechwild/obe/obe.c b/keyboards/mechwild/obe/obe.c new file mode 100644 index 000000000000..195d4a76790d --- /dev/null +++ b/keyboards/mechwild/obe/obe.c @@ -0,0 +1,33 @@ +/* Copyright 2021 Kyle McCreery + * + * 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 "obe.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } + return true; +} +#endif diff --git a/keyboards/mechwild/obe/obe.h b/keyboards/mechwild/obe/obe.h new file mode 100644 index 000000000000..8c57aa283b89 --- /dev/null +++ b/keyboards/mechwild/obe/obe.h @@ -0,0 +1,43 @@ +/* Copyright 2021 Kyle McCreery + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k55, k54, k53, k52, k51, k50, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k65, k59, k58, k57, k56, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k64, k69, k68, k63, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ + k62, k60, k67, k66, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, \ + k61, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 } \ +} diff --git a/keyboards/mechwild/obe/readme.md b/keyboards/mechwild/obe/readme.md new file mode 100644 index 000000000000..f03ed03a9245 --- /dev/null +++ b/keyboards/mechwild/obe/readme.md @@ -0,0 +1,19 @@ +# OrangeBoyErgo (OBE) + +![obe](https://i.imgur.com/bzqi2XOh.png) + +An affordable Alice-like keyboard kit powered by the STM32 Blackpill. + +* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery) +* Hardware Supported: OBE v2.1 +* Hardware Availability: [OBE on MechWild](https://mechwild.com/product/orange-boy-ergo/) + +Make example for this keyboard (after setting up your build environment): + + make mechwild/obe:default + +Flashing example for this keyboard: + + make mechwild/obe: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). diff --git a/keyboards/mechwild/obe/rules.mk b/keyboards/mechwild/obe/rules.mk new file mode 100644 index 000000000000..f26a5c67a97c --- /dev/null +++ b/keyboards/mechwild/obe/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Encoder Enabled + +EEPROM_DRIVER = i2c + +DEFAULT_FOLDER = mechwild/obe/f401 From 8c17a822a826924da27f070804dcd420a549b192 Mon Sep 17 00:00:00 2001 From: Brandon Lewis <64657834+blewis308@users.noreply.github.com> Date: Thu, 22 Jul 2021 01:31:03 -0500 Subject: [PATCH 048/328] [Keyboard] Add Ristretto Keyboard (#13479) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Brandon Lewis --- keyboards/ristretto/config.h | 50 ++++++++++++++++ keyboards/ristretto/info.json | 17 ++++++ keyboards/ristretto/keymaps/default/keymap.c | 53 ++++++++++++++++ keyboards/ristretto/readme.md | 18 ++++++ keyboards/ristretto/ristretto.c | 63 ++++++++++++++++++++ keyboards/ristretto/ristretto.h | 31 ++++++++++ keyboards/ristretto/rules.mk | 25 ++++++++ 7 files changed, 257 insertions(+) create mode 100644 keyboards/ristretto/config.h create mode 100644 keyboards/ristretto/info.json create mode 100644 keyboards/ristretto/keymaps/default/keymap.c create mode 100644 keyboards/ristretto/readme.md create mode 100644 keyboards/ristretto/ristretto.c create mode 100644 keyboards/ristretto/ristretto.h create mode 100644 keyboards/ristretto/rules.mk diff --git a/keyboards/ristretto/config.h b/keyboards/ristretto/config.h new file mode 100644 index 000000000000..3d5a66fbc362 --- /dev/null +++ b/keyboards/ristretto/config.h @@ -0,0 +1,50 @@ +/* Copyright 2021 Brandon Lewis + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x666B // fk +#define PRODUCT_ID 0x7273 // rs +#define DEVICE_VER 0x0001 // rev 1 +#define MANUFACTURER fruitykeeb +#define PRODUCT ristretto + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 13 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B1, B2, B3, D3 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, B7, F0, F1, F4, F5, F6, F7 } + +/* 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 + +#define ENCODERS_PAD_A { D4 } +#define ENCODERS_PAD_B { D6 } +#define ENCODER_RESOLUTION 4 diff --git a/keyboards/ristretto/info.json b/keyboards/ristretto/info.json new file mode 100644 index 000000000000..86a0172c1beb --- /dev/null +++ b/keyboards/ristretto/info.json @@ -0,0 +1,17 @@ +{ + "keyboard_name": "ristretto", + "url": "https://www.fruitykeeb.xyz/product/ristretto", + "maintainer": "Fruit", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"ESC", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0} , {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"BKSP", "x":12, "y":0}, + {"label":"TAB", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1} , {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"'", "x":12, "y":2}, + {"label":"LSFT", "x":0, "y":2},{"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2} , {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":"<", "x":9, "y":2}, {"label":">", "x":10, "y":2}, {"label":"?", "x":11, "y":2}, {"label":"ENTR", "x":12, "y":2}, + {"label":"LCTL", "x":0, "y":3},{"label":"LGUI","x":1,"y":3},{"label":"LALT","x":2,"y":3},{"label":"" , "x":3, "y":3}, {"label":"" , "x":4, "y":3}, {"label":"" , "x":5, "y":3}, {"label":"Rotary", "x":6, "y":3}, {"label":"" , "x":7, "y":3}, {"label":"" , "x":8, "y":3}, {"label":"" , "x":9, "y":3}, {"label":"RALT","x":10,"y":3},{"label":"RGUI","x":11,"y":3}, {"label":"RCTL","x":12, "y":3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/ristretto/keymaps/default/keymap.c b/keyboards/ristretto/keymaps/default/keymap.c new file mode 100644 index 000000000000..e02c6ea246f6 --- /dev/null +++ b/keyboards/ristretto/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 Brandon Lewis + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _BASE, + _RAISE, + _LOWER, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC , + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_ENT , + KC_LCTL , KC_LGUI , KC_LALT ,MO(_LOWER),KC_ENT , KC_SPC , KC_MUTE , KC_SPC , KC_RSFT ,MO(_RAISE),KC_RALT , KC_RGUI , KC_RCTRL + ), + [_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_DEL , + KC_CAPS , KC_MINS , KC_EQL , KC_LBRC , KC_RBRC , KC_BSLS , KC_NO , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , KC_BSLS , + KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , + KC_TRNS , KC_TRNS , KC_TRNS ,MO(_ADJUST),KC_ENT , KC_NO , KC_MPLY , KC_NO , KC_RSFT , KC_NO , KC_TRNS , KC_TRNS , KC_TRNS + ), + [_LOWER] = LAYOUT( + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , + KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_LBRC , KC_RBRC , KC_NO , + KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , + KC_TRNS , KC_TRNS , KC_TRNS , KC_NO , KC_ENT , KC_NO , KC_MUTE , KC_NO , KC_RSFT ,MO(_ADJUST),KC_TRNS, KC_TRNS , KC_TRNS + ), + [_ADJUST] = LAYOUT( + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_CAPS , KC_NLCK , KC_SLCK , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , + KC_TRNS , KC_TRNS , KC_TRNS , XXXXXXX , XXXXXXX , XXXXXXX , KC_MUTE , XXXXXXX , XXXXXXX , XXXXXXX , KC_TRNS , KC_TRNS , KC_TRNS + ), +}; + +// OLED and Encoder function is located in the ristretto.c File diff --git a/keyboards/ristretto/readme.md b/keyboards/ristretto/readme.md new file mode 100644 index 000000000000..d047e70994cc --- /dev/null +++ b/keyboards/ristretto/readme.md @@ -0,0 +1,18 @@ +# Ristretto + +![Ristretto](https://i.imgur.com/VHX6ktEh.jpg) +![Ristretto-2](https://i.imgur.com/Hrc8vkph.jpg) + +An Integrated, Column Stagger, 40% Keyboard with OLED and Rotary Encoder + +* Keyboard Maintainer: [Fruit](https://github.com/Blewis308) +* Hardware Supported: Ristretto PCB, Atmega32u4 +* Hardware Availability: Through Group Buy - May 2021 + + To enter the bootloader, press the button marked "SW1" on the bottom of the PCB. + +Make example for this keyboard (after setting up your build envionment): + + make ristretto:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/ristretto/ristretto.c b/keyboards/ristretto/ristretto.c new file mode 100644 index 000000000000..1ea43bceedfb --- /dev/null +++ b/keyboards/ristretto/ristretto.c @@ -0,0 +1,63 @@ +/* Copyright 2021 Brandon Lewis + * + * 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 "ristretto.h" + +enum layers { + _BASE, + _RAISE, + _LOWER, + _ADJUST +}; + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if(index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + return true; +} + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +__attribute__((weak)) void oled_task_user(void) { + oled_write_P(PSTR("\n\n"), false); + oled_write_ln_P(PSTR("LAYER"), false); + oled_write_ln_P(PSTR(""), false); + switch (get_highest_layer(layer_state)) { + case _BASE: + oled_write_P(PSTR("BASE\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("RAISE\n"), false); + break; + case _LOWER: + oled_write_P(PSTR("LOWER\n"), false); + break; + case _ADJUST: + oled_write_P(PSTR("ADJ\n"), false); + break; + } +} + +#endif diff --git a/keyboards/ristretto/ristretto.h b/keyboards/ristretto/ristretto.h new file mode 100644 index 000000000000..66be57b18ba0 --- /dev/null +++ b/keyboards/ristretto/ristretto.h @@ -0,0 +1,31 @@ +/* Copyright 2021 Brandon Lewis + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K007, K008, K009, K010, K011, K012, \ + K100, K101, K102, K103, K104, K105, K107, K108, K109, K110, K111, K112, \ + K200, K201, K202, K203, K204, K205, K207, K208, K209, K210, K211, K212, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312 \ +) { \ + {K000, K001, K002, K003, K004, K005, KC_NO, K007, K008, K009, K010, K011, K012}, \ + {K100, K101, K102, K103, K104, K105, KC_NO, K107, K108, K109, K110, K111, K112}, \ + {K200, K201, K202, K203, K204, K205, KC_NO, K207, K208, K209, K210, K211, K212}, \ + {K300, K301, K302, K303, K304, K305, K306 , K307, K308, K309, K310, K311, K312} \ +} diff --git a/keyboards/ristretto/rules.mk b/keyboards/ristretto/rules.mk new file mode 100644 index 000000000000..96bf291a0dda --- /dev/null +++ b/keyboards/ristretto/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +OLED_DRIVER_ENABLE = yes +WAIT_FOR_USB = yes From 8e905a7a5ce4a936ae782541a922ecc6c7cd30bc Mon Sep 17 00:00:00 2001 From: jmaynard Date: Thu, 22 Jul 2021 01:39:45 -0500 Subject: [PATCH 049/328] [Keyboard] Initial Tron Guy Labs keyboard implementation. (#13438) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Jay Maynard --- .../tronguylabs/m122_3270/blackpill/config.h | 29 +++ .../tronguylabs/m122_3270/blackpill/readme.md | 2 + .../tronguylabs/m122_3270/blackpill/rules.mk | 7 + keyboards/tronguylabs/m122_3270/config.h | 71 +++++++ keyboards/tronguylabs/m122_3270/info.json | 134 ++++++++++++ .../m122_3270/keymaps/default/keymap.c | 193 ++++++++++++++++++ .../m122_3270/keymaps/default/readme.md | 23 +++ keyboards/tronguylabs/m122_3270/m122_3270.c | 16 ++ keyboards/tronguylabs/m122_3270/m122_3270.h | 40 ++++ keyboards/tronguylabs/m122_3270/readme.md | 27 +++ keyboards/tronguylabs/m122_3270/rules.mk | 16 ++ .../tronguylabs/m122_3270/teensy/config.h | 27 +++ .../tronguylabs/m122_3270/teensy/readme.md | 2 + .../tronguylabs/m122_3270/teensy/rules.mk | 7 + 14 files changed, 594 insertions(+) create mode 100644 keyboards/tronguylabs/m122_3270/blackpill/config.h create mode 100644 keyboards/tronguylabs/m122_3270/blackpill/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/blackpill/rules.mk create mode 100644 keyboards/tronguylabs/m122_3270/config.h create mode 100644 keyboards/tronguylabs/m122_3270/info.json create mode 100644 keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c create mode 100644 keyboards/tronguylabs/m122_3270/keymaps/default/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/m122_3270.c create mode 100644 keyboards/tronguylabs/m122_3270/m122_3270.h create mode 100644 keyboards/tronguylabs/m122_3270/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/rules.mk create mode 100644 keyboards/tronguylabs/m122_3270/teensy/config.h create mode 100644 keyboards/tronguylabs/m122_3270/teensy/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/teensy/rules.mk diff --git a/keyboards/tronguylabs/m122_3270/blackpill/config.h b/keyboards/tronguylabs/m122_3270/blackpill/config.h new file mode 100644 index 000000000000..95c94ef318a0 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/blackpill/config.h @@ -0,0 +1,29 @@ +/* Copyright 2021 James R. Maynard III + * + * 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 + +// place overrides below + +// Blackpill pin assignments: reversed the rows from the Teensy version for easier PCB layout +// DO NOT USE the following pins: A9 (has pulldown on it), A11/A12 (USB lines), B2 (external pulldown) +// C13 has an LED, and C13/C14/C15 are best used as inputs (with DIODE_DIRECTION set to ROW2COL, the +// rows are inputs). Note that every usable I/O pin is used. +#define MATRIX_COL_PINS { B0, B1, B10, B12, B13, B14, B15, A8, A7, A10, A6, A5, A15, B3, B4, B5, B6, B7, B8, B9 } +#define MATRIX_ROW_PINS { C13, C14, C15, A0, A1, A2, A3, A4 } + +// The BlackPill version is version 2 +#define DEVICE_VER 0x0002 diff --git a/keyboards/tronguylabs/m122_3270/blackpill/readme.md b/keyboards/tronguylabs/m122_3270/blackpill/readme.md new file mode 100644 index 000000000000..08df795b13a1 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/blackpill/readme.md @@ -0,0 +1,2 @@ +# BlackPill controller for m122-3270 +This directory contains the BlackPill-specific definitions for the M122-3270 keyboard. diff --git a/keyboards/tronguylabs/m122_3270/blackpill/rules.mk b/keyboards/tronguylabs/m122_3270/blackpill/rules.mk new file mode 100644 index 000000000000..d3daefaebeb8 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/blackpill/rules.mk @@ -0,0 +1,7 @@ +# Overrides for the Blackpill version + +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu diff --git a/keyboards/tronguylabs/m122_3270/config.h b/keyboards/tronguylabs/m122_3270/config.h new file mode 100644 index 000000000000..0dd0187a1a4f --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/config.h @@ -0,0 +1,71 @@ +/* Copyright 2021 James R. Maynard III + * + * 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 VENDOR_ID 0x1209 +#define PRODUCT_ID 0x3270 +// DEVICE_VER is defined in each variant's config.h file +#define MANUFACTURER IBM +#define PRODUCT Model M PC/3270 122 key + +// Both controllers draw 100 mA or less +#define USB_MAX_POWER_CONSUMPTION 100 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 20 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 15 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/tronguylabs/m122_3270/info.json b/keyboards/tronguylabs/m122_3270/info.json new file mode 100644 index 000000000000..fd158eb46b24 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/info.json @@ -0,0 +1,134 @@ +{ + "keyboard_name": "IBM Model M PC/3270 122 key", + "maintainer": "jmaynard", + "width": 24.75, + "height": 8, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"F13", "x":3.25, "y":0}, + {"label":"F14", "x":4.25, "y":0}, + {"label":"F15", "x":5.25, "y":0}, + {"label":"F16", "x":6.25, "y":0}, + {"label":"F17", "x":7.25, "y":0}, + {"label":"F18", "x":8.25, "y":0}, + {"label":"F19", "x":9.25, "y":0}, + {"label":"F20", "x":10.25, "y":0}, + {"label":"F21", "x":11.25, "y":0}, + {"label":"F22", "x":12.25, "y":0}, + {"label":"F23", "x":13.25, "y":0}, + {"label":"F24", "x":14.25, "y":0}, + {"label":"F1", "x":3.25, "y":1}, + {"label":"F2", "x":4.25, "y":1}, + {"label":"F3", "x":5.25, "y":1}, + {"label":"F4", "x":6.25, "y":1}, + {"label":"F5", "x":7.25, "y":1}, + {"label":"F6", "x":8.25, "y":1}, + {"label":"F7", "x":9.25, "y":1}, + {"label":"F8", "x":10.25, "y":1}, + {"label":"F9", "x":11.25, "y":1}, + {"label":"F10", "x":12.25, "y":1}, + {"label":"F11", "x":13.25, "y":1}, + {"label":"F12", "x":14.25, "y":1}, + {"label":"Esc", "x":0, "y":3}, + {"x":1, "y":3}, + {"label":"`", "x":2.25, "y":3}, + {"label":"1", "x":3.25, "y":3}, + {"label":"2", "x":4.25, "y":3}, + {"label":"3", "x":5.25, "y":3}, + {"label":"4", "x":6.25, "y":3}, + {"label":"5", "x":7.25, "y":3}, + {"label":"6", "x":8.25, "y":3}, + {"label":"7", "x":9.25, "y":3}, + {"label":"8", "x":10.25, "y":3}, + {"label":"9", "x":11.25, "y":3}, + {"label":"0", "x":12.25, "y":3}, + {"label":"-", "x":13.25, "y":3}, + {"label":"=", "x":14.25, "y":3}, + {"label":"Backspace", "x":15.25, "y":3, "w":2}, + {"label":"Insert", "x":17.5, "y":3}, + {"label":"Home", "x":18.5, "y":3}, + {"label":"Page Up", "x":19.5, "y":3}, + {"label":"Num Lock", "x":20.75, "y":3}, + {"label":"/", "x":21.75, "y":3}, + {"label":"*", "x":22.75, "y":3}, + {"label":"-", "x":23.75, "y":3}, + {"x":0, "y":4}, + {"x":1, "y":4}, + {"label":"Tab", "x":2.25, "y":4, "w":1.5}, + {"label":"Q", "x":3.75, "y":4}, + {"label":"W", "x":4.75, "y":4}, + {"label":"E", "x":5.75, "y":4}, + {"label":"R", "x":6.75, "y":4}, + {"label":"T", "x":7.75, "y":4}, + {"label":"Y", "x":8.75, "y":4}, + {"label":"U", "x":9.75, "y":4}, + {"label":"I", "x":10.75, "y":4}, + {"label":"O", "x":11.75, "y":4}, + {"label":"P", "x":12.75, "y":4}, + {"label":"[", "x":13.75, "y":4}, + {"label":"]", "x":14.75, "y":4}, + {"label":"Enter", "x":16, "y":4, "w":1.25, "h":2}, + {"label":"Delete", "x":17.5, "y":4}, + {"label":"End", "x":18.5, "y":4}, + {"label":"Page Down", "x":19.5, "y":4}, + {"label":"7", "x":20.75, "y":4}, + {"label":"8", "x":21.75, "y":4}, + {"label":"9", "x":22.75, "y":4}, + {"label":"+", "x":23.75, "y":4}, + {"x":0, "y":5}, + {"x":1, "y":5}, + {"label":"Caps Lock", "x":2.25, "y":5, "w":1.75}, + {"label":"A", "x":4, "y":5}, + {"label":"S", "x":5, "y":5}, + {"label":"D", "x":6, "y":5}, + {"label":"F", "x":7, "y":5}, + {"label":"G", "x":8, "y":5}, + {"label":"H", "x":9, "y":5}, + {"label":"J", "x":10, "y":5}, + {"label":"K", "x":11, "y":5}, + {"label":"L", "x":12, "y":5}, + {"label":";", "x":13, "y":5}, + {"label":"'", "x":14, "y":5}, + {"label":"#", "x":15, "y":5}, + {"label":"Up", "x":18.5, "y":5}, + {"label":"4", "x":20.75, "y":5}, + {"label":"5", "x":21.75, "y":5}, + {"label":"6", "x":22.75, "y":5}, + {"x":23.75, "y":5}, + {"x":0, "y":6}, + {"x":1, "y":6}, + {"label":"Shift", "x":2.25, "y":6, "w":1.25}, + {"label":"\\", "x":3.5, "y":6}, + {"label":"Z", "x":4.5, "y":6}, + {"label":"X", "x":5.5, "y":6}, + {"label":"C", "x":6.5, "y":6}, + {"label":"V", "x":7.5, "y":6}, + {"label":"B", "x":8.5, "y":6}, + {"label":"N", "x":9.5, "y":6}, + {"label":"M", "x":10.5, "y":6}, + {"label":",", "x":11.5, "y":6}, + {"label":".", "x":12.5, "y":6}, + {"label":"/", "x":13.5, "y":6}, + {"label":"Shift", "x":14.5, "y":6, "w":2.75}, + {"label":"Left", "x":17.5, "y":6}, + {"x":18.5, "y":6}, + {"label":"Right", "x":19.5, "y":6}, + {"label":"1", "x":20.75, "y":6}, + {"label":"2", "x":21.75, "y":6}, + {"label":"3", "x":22.75, "y":6}, + {"label":"Enter", "x":23.75, "y":6, "h":2}, + {"x":0, "y":7}, + {"x":1, "y":7}, + {"label":"Ctrl", "x":2.25, "y":7, "w":1.5}, + {"label":"Alt", "x":4.75, "y":7, "w":1.5}, + {"x":6.25, "y":7, "w":7}, + {"label":"AltGr", "x":13.25, "y":7, "w":1.5}, + {"label":"Ctrl", "x":15.75, "y":7, "w":1.5}, + {"label":"Down", "x":18.5, "y":7}, + {"label":"0", "x":20.75, "y":7, "w":2}, + {"label":".", "x":22.75, "y":7} + ] + } + } +} diff --git a/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c b/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c new file mode 100644 index 000000000000..a79d3c637248 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c @@ -0,0 +1,193 @@ +/* Copyright 2021 James R. Maynard III + * + * 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 custom_keycodes { + JM_DOT = SAFE_RANGE, // . both shifted and unshifted + JM_COMM, // , both shifted and unshifted + JM_GRLS, // < and > on one key + JM_CBRC, // { and } on one key + JM_CENT, // cent sign and ! on one key + JM_JUMP, // JUMP/PA3, + JM_DEL // Delete +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // PC/3270 layout: PC legends (blue) + [0] = LAYOUT( + KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, + 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_NO, KC_NO, 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_ESC, KC_PGUP, KC_PGDN, KC_NLCK, KC_SLCK, KC_PAST, KC_PSLS, + KC_NO, KC_PAUS, 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_ENT, KC_END, KC_INS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_NO, KC_NO, 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_BSLS, KC_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, + KC_PSCR, KC_NO, KC_LSFT, JM_GRLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_HOME, KC_RIGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + MO(10), KC_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_DOWN, KC_P0, KC_PDOT + ), + + // PC/3270 layout: 3270 legends (black), with x3270 keycodes + [1] = LAYOUT( + A(KC_F1), A(KC_F2), A(KC_F3), A(KC_F4), A(KC_F5), A(KC_F6), A(KC_F7), A(KC_F8), A(KC_F9), A(KC_F10), A(KC_F11), A(KC_F12), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + A(KC_A), A(KC_C), 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, A(KC_1), A(KC_2), JM_JUMP, KC_NO, KC_NO, KC_PCMM, KC_SPC, + KC_CRSEL, KC_PAUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JM_CENT, KC_BSLS, S(KC_ENT), S(KC_TAB), KC_INS, JM_DEL, KC_P7, KC_P8, KC_P9, KC_TAB, + KC_EXSEL, A(KC_E), KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, JM_CBRC, KC_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, + A(KC_B), C(KC_C), KC_LSFT, JM_GRLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JM_COMM, JM_DOT, KC_SLSH, KC_RSFT, KC_LEFT, A(KC_H), KC_RIGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + MO(10), KC_LGUI, A(KC_R), KC_LALT, KC_SPC, KC_RALT, KC_ENT, KC_DOWN, KC_P0, KC_PDOT + ), + +// Function layer, accessed by the Zoom key + [10] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + DF(0), DF(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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(11), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +// Firmware layer, accessed by the Zoom/Space key pair (hold both down) + [11] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DEBUG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +bool left_shift_down = false; +bool right_shift_down = false; +bool left_alt_down = false; +bool right_alt_down = false; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_LSHIFT: + if (record->event.pressed) { + left_shift_down = true; + return true; + } else { + left_shift_down = false; + return true; + } + break; + case KC_RSHIFT: + if (record->event.pressed) { + right_shift_down = true; + return true; + } else { + right_shift_down = false; + return true; + } + break; + case KC_LALT: + if (record->event.pressed) { + left_alt_down = true; + return true; + } else { + left_alt_down = false; + return true; + } + break; + case KC_RALT: + if (record->event.pressed) { + right_alt_down = true; + return true; + } else { + right_alt_down = false; + return true; + } + break; + case JM_GRLS: + if (left_shift_down || right_shift_down) { + if(record->event.pressed) { + SEND_STRING(">"); + } + return false; + } else { + if(record->event.pressed) { + SEND_STRING("<"); + } + return false; + } + break; + case JM_CBRC: + if (left_shift_down || right_shift_down) { + if (record->event.pressed) { + SEND_STRING("}"); + } + return false; + } else { + if(record->event.pressed) { + SEND_STRING("{"); + } + return false; + } + break; + case JM_CENT: + if (left_shift_down || right_shift_down) { + if (record->event.pressed) { + SEND_STRING("!"); + } + return false; + } else { + if (record->event.pressed) { + SEND_STRING("<"); // TODO: what does tn3270 want for a cent sign? + } + return false; + } + break; + case JM_COMM: + if (record->event.pressed){ + SEND_STRING(","); + } + return false; + case JM_DOT: + if (record->event.pressed) { + SEND_STRING("."); + } + return false; + case JM_JUMP: + if (record->event.pressed) { + if (left_alt_down || right_alt_down) { + SEND_STRING("3"); + } + } + return false; + case JM_DEL: + if (record->event.pressed) { + if (left_alt_down || right_alt_down) { + unregister_code(KC_LALT); + unregister_code(KC_RALT); + tap_code16(C(KC_W)); + if (left_alt_down) { + register_code(KC_LALT); + } + if (right_alt_down) { + register_code(KC_RALT); + } + } else { + tap_code16(KC_DEL); + } + } + return false; + } + + return true; +} diff --git a/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md b/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md new file mode 100644 index 000000000000..befa267fa142 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md @@ -0,0 +1,23 @@ +# Default keymap for m122-3270 +This keymap is intended to make the PC/3270 122-key IBM keyboard work as closely as possible to the standard +PC/3270 keyboard's original mapping. Two layers are defined: layer 0 is the PC layout, using the blue legends +on the PC/3270 keys (as shipped by Unicomp; I don't have the original keycaps, and I know there are a few +differences), while layer 1 is the 3270 layout, with keycodes selected to make the x3270 suite do the right +thing with each key as pressed. The idea here is, eventually, to get x3270 and friends to automatically +shift the keyboard to layer 1 when they gain focus. + +When layer 0 is active, the PA1 key is Escape, the Reset and Enter keys are Control, and the comma and dot keys +act like normal PC keys (< and >, repectively, when shifted). The Ctrl key (bottom right of the left-side 10-key +cluster) is always the left GUI key. PA2 and Jump/PA3 are PgUp and PgDn, respectively, and the backtab key is +End. The Rule/Home key is Home. + +When layer 1 is active, the keys do their labeled functions. The only keys that don't do anything are CrSel, +ExSel, and Jump, though only a few of the alternate functions (on the front of the keys) work: left/right/delete +word and PA3. The rest aren't emulated by x3270. Many of the keys that have function in PC mode will *not* have +that same function in 3270 mode, since x3270 uses different keystrokes to accomplish the same function. + +To manually switch to layer 1, hold the Zoom key (the one on the far lower left of the keyboard) and press Clear +(the one at the top right of that same block of 10 keys); to switch back to layer 0, hold the Zoom key and hit +Attn (the one at the top left of that block of 10). Holding the Zoom key and the spacebar gets you to keys that +control QMK itself: Zoom-space-R resets to the bootloader, Zoom-space-E erases the EEPROM (which currently does +nothing), and Zoom-space-D turns the debugger on and off. diff --git a/keyboards/tronguylabs/m122_3270/m122_3270.c b/keyboards/tronguylabs/m122_3270/m122_3270.c new file mode 100644 index 000000000000..b206d66ae070 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/m122_3270.c @@ -0,0 +1,16 @@ +/* Copyright 2021 James R. Maynard III + * + * 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 "m122_3270.h" diff --git a/keyboards/tronguylabs/m122_3270/m122_3270.h b/keyboards/tronguylabs/m122_3270/m122_3270.h new file mode 100644 index 000000000000..71ccf7b66bdc --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/m122_3270.h @@ -0,0 +1,40 @@ +/* Copyright 2021 James R. Maynard III + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define LAYOUT( \ + k09, k19, k1A, k29, k39, k3A, k49, k59, k5A, k69, k79, k7A, \ + k0A, k0B, k1B, k2A, k2B, k3B, k4A, k4B, k5B, k6A, k6B, k7B, \ + k31, k32, k34, k24, k25, k26, k27, k37, k38, k28, k2C, k2D, k2E, k3E, k3C, k3F, k3G, k3H, k2G, k2F, k2H, k2I, k20, \ + k21, k41, k42, k44, k45, k46, k47, k57, k58, k48, k4C, k4D, k4E, k5E, k5C, k6F, k1G, k5G, k4G, k4F, k4H, k4I, k40, \ + k51, k52, k62, k14, k15, k16, k17, k07, k08, k18, k1C, k1D, k1E, k0E, k6E, k0G, k1F, k1H, k1I, k10, \ + k11, k12, k73, k74, k64, k65, k66, k67, k77, k78, k68, k6C, k6D, k7E, k63, k60, k0J, k1J, k61, k6H, k6I, k7J, \ + k02, k01, k00, k70, k71, k03, k72, k0F, k7H, k7I \ +) \ +{ \ + { k00, k01, k02, k03, KC_NO, KC_NO, KC_NO, k07, k08, k09, k0A, k0B, KC_NO, KC_NO, k0E, k0F, k0G, KC_NO, KC_NO, k0J }, \ + { k10, k11, k12, KC_NO, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, k1J }, \ + { k20, k21, KC_NO, KC_NO, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, KC_NO }, \ + { KC_NO, k31, k32, KC_NO, k34, KC_NO, KC_NO, k37, k38, k39, k3A, k3B, k3C, KC_NO, k3E, k3F, k3G, k3H, KC_NO, KC_NO }, \ + { k40, k41, k42, KC_NO, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4I, KC_NO }, \ + { KC_NO, k51, k52, KC_NO, KC_NO, KC_NO, KC_NO, k57, k58, k59, k5A, k5B, k5C, KC_NO, k5E, KC_NO, k5G, KC_NO, KC_NO, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6A, k6B, k6C, k6D, k6E, k6F, KC_NO, k6H, k6I, KC_NO }, \ + { k70, k71, k72, k73, k74, KC_NO, KC_NO, k77, k78, k79, k7A, k7B, KC_NO, KC_NO, k7E, KC_NO, KC_NO, k7H, k7I, k7J }, \ +} diff --git a/keyboards/tronguylabs/m122_3270/readme.md b/keyboards/tronguylabs/m122_3270/readme.md new file mode 100644 index 000000000000..b8de846789b1 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/readme.md @@ -0,0 +1,27 @@ +# m122-3270 + +![IBM Model M 122 key](https://i.imgur.com/Oo3Ozqzh.jpg) + +This is a replacement controller for the IBM Model M 122 key terminal keyboard running on a STM32F411 BlackPill, intended +to act as closely to the 3270 keyboard's functioning as possible while still being usable on a PC. + +* Keyboard Maintainer: [Jay Maynard](https://github.com/jmaynard) +* Hardware Supported: BlackPill STM32F411, Teensy++ 2.0 +* Hardware Availability: [BlackPill](https://www.adafruit.com/product/4877), [Teensy](https://www.pjrc.com/store/teensypp.html) + +Make example for this keyboard (after setting up your build environment): + + make tronguylabs/m122_3270/blackpill:default + make tronguylabs/m122_3270/teensy:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the +[make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +A schematic and Gerber files are publicly available for those wishing to have carrier boards made +professionally instead of handwiring things. The M122 matrix connectors plug right into it. It can +be found at https://github.com/jmaynard/tronguylabs-m122-blackpill . + +This is derived from Luke Stanley's handwired/ibm122m keyboard, with my own keymapping and +rework of the I/O for the BlackPill. There's also a version for the Teensy++ 2.0, since that +was my original design and I still use one on one board, even though I switched to the +BlackPill for future-proofing. The Teensy++ 2.0 is not recommended for new designs. diff --git a/keyboards/tronguylabs/m122_3270/rules.mk b/keyboards/tronguylabs/m122_3270/rules.mk new file mode 100644 index 000000000000..2604f4818b34 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/rules.mk @@ -0,0 +1,16 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/tronguylabs/m122_3270/teensy/config.h b/keyboards/tronguylabs/m122_3270/teensy/config.h new file mode 100644 index 000000000000..c23c5931eba0 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/teensy/config.h @@ -0,0 +1,27 @@ +/* Copyright 2021 James R. Maynard III + * + * 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 + +// place overrides below + +// Teensy pin assignments: I'm wiring things a bit more straightforwardly, and +// avoiding the LED on PD6 +#define MATRIX_COL_PINS { B5, B6, B7, D0, D1, D2, D3, D4, D5, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7 } +#define MATRIX_ROW_PINS { F0, F1, F2, F3, F4, F5, F6, F7 } + +// The Teensy version is version 1 +#define DEVICE_VER 0x0001 diff --git a/keyboards/tronguylabs/m122_3270/teensy/readme.md b/keyboards/tronguylabs/m122_3270/teensy/readme.md new file mode 100644 index 000000000000..99946d746dde --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/teensy/readme.md @@ -0,0 +1,2 @@ +# Teensy controller for m122-3270 +This directory contains the Teensy++ 2.0-specific definitions for the M122-3270 keyboard. diff --git a/keyboards/tronguylabs/m122_3270/teensy/rules.mk b/keyboards/tronguylabs/m122_3270/teensy/rules.mk new file mode 100644 index 000000000000..2919fdedfa9a --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/teensy/rules.mk @@ -0,0 +1,7 @@ +# Overrides for the Teensy version + +# MCU name +MCU = at90usb1286 + +# Bootloader selection +BOOTLOADER = halfkay From 92cca84651b1ea2ceb3ae4037386f36bb97c8174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Thu, 22 Jul 2021 13:40:24 +0700 Subject: [PATCH 050/328] [Keyboard] Add keypad Satxri6key (#13423) Co-authored-by: Ryan --- keyboards/sawnsprojects/satxri6key/config.h | 77 ++++++++ keyboards/sawnsprojects/satxri6key/info.json | 20 +++ .../satxri6key/keymaps/default/keymap.c | 34 ++++ .../satxri6key/keymaps/default/readme.md | 1 + .../satxri6key/keymaps/default/rules.mk | 4 + .../satxri6key/keymaps/via/keymap.c | 164 ++++++++++++++++++ .../satxri6key/keymaps/via/rules.mk | 5 + keyboards/sawnsprojects/satxri6key/readme.md | 15 ++ keyboards/sawnsprojects/satxri6key/rules.mk | 21 +++ .../sawnsprojects/satxri6key/satxri6key.c | 31 ++++ .../sawnsprojects/satxri6key/satxri6key.h | 27 +++ 11 files changed, 399 insertions(+) create mode 100644 keyboards/sawnsprojects/satxri6key/config.h create mode 100644 keyboards/sawnsprojects/satxri6key/info.json create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/default/keymap.c create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/default/readme.md create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/default/rules.mk create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/via/keymap.c create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/via/rules.mk create mode 100644 keyboards/sawnsprojects/satxri6key/readme.md create mode 100644 keyboards/sawnsprojects/satxri6key/rules.mk create mode 100644 keyboards/sawnsprojects/satxri6key/satxri6key.c create mode 100644 keyboards/sawnsprojects/satxri6key/satxri6key.h diff --git a/keyboards/sawnsprojects/satxri6key/config.h b/keyboards/sawnsprojects/satxri6key/config.h new file mode 100644 index 000000000000..833fd584eba2 --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/config.h @@ -0,0 +1,77 @@ +/* Copyright 2021 SawnsProjects + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5350 +#define PRODUCT_ID 0x0727 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MaiTheSan +#define PRODUCT Satxri6key + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +/* + * 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 { F7, F6 } +#define MATRIX_COL_PINS { F1, F4, F5 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN F0 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 6 + #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 */ +/*== 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 +#endif + +#define DRIVER_LED_TOTAL 6 +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended +#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Sets the default mode, if none has been set \ No newline at end of file diff --git a/keyboards/sawnsprojects/satxri6key/info.json b/keyboards/sawnsprojects/satxri6key/info.json new file mode 100644 index 000000000000..efbeb725e1ef --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "Satxri6key", + "url": "", + "maintainer": "qmk", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (F7,F1)", "x":0, "y":1}, + {"label":"K01 (F7,F4)", "x":1, "y":1}, + {"label":"K02 (F7,F5)", "x":2, "y":1}, + {"label":"K10 (F6,F1)", "x":0, "y":2}, + {"label":"K11 (F6,F4)", "x":1, "y":2}, + {"label":"K12 (F6,F5)", "x":2, "y":2} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} \ No newline at end of file diff --git a/keyboards/sawnsprojects/satxri6key/keymaps/default/keymap.c b/keyboards/sawnsprojects/satxri6key/keymaps/default/keymap.c new file mode 100644 index 000000000000..b44effb84de3 --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + + KC_ESC, KC_GRV, TO(1), + KC_Z, KC_X, KC_C ), + + [1] = LAYOUT( + + KC_TRNS, KC_TRNS, TO(0), + KC_TRNS, KC_TRNS, KC_TRNS ), + + +}; + diff --git a/keyboards/sawnsprojects/satxri6key/keymaps/default/readme.md b/keyboards/sawnsprojects/satxri6key/keymaps/default/readme.md new file mode 100644 index 000000000000..67bd9ee07220 --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/keymaps/default/readme.md @@ -0,0 +1 @@ +# Default Satxri6key Layout \ No newline at end of file diff --git a/keyboards/sawnsprojects/satxri6key/keymaps/default/rules.mk b/keyboards/sawnsprojects/satxri6key/keymaps/default/rules.mk new file mode 100644 index 000000000000..70b7f6921fa9 --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/keymaps/default/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = no +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/sawnsprojects/satxri6key/keymaps/via/keymap.c b/keyboards/sawnsprojects/satxri6key/keymaps/via/keymap.c new file mode 100644 index 000000000000..91ab3527668f --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/keymaps/via/keymap.c @@ -0,0 +1,164 @@ +/* Copyright 2021 SawnsProjects + * + * 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 +char wpm_str[4]; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + + KC_ESC, KC_GRV, TO(1), + KC_Z, KC_X, KC_C ), + + [1] = LAYOUT( + + KC_TRNS, KC_TRNS, TO(0), + KC_TRNS, KC_TRNS, KC_TRNS ), + [2] = LAYOUT( + + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS ), + [3] = LAYOUT( + + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS ), + + + +}; +// OLED STUFF STARTS HERE +// based on https://github.com/qmk/qmk_firmware/blob/master/keyboards/kyria/keymaps/j-inc/keymap.c + +// In your rules.mk make sure you have: +// OLED_DRIVER_ENABLE = yes +// WPM_ENABLE = yes + +#ifdef OLED_DRIVER_ENABLE +// WPM-responsive animation stuff here +# define IDLE_FRAMES 5 +# define IDLE_SPEED 20 // below this wpm value your animation will idle + +// #define PREP_FRAMES 1 // uncomment if >1 + +# define TAP_FRAMES 2 +# define TAP_SPEED 40 // above this wpm value typing animation to trigger + +# define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms +// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing +# define ANIM_SIZE 636 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 +uint8_t current_tap_frame = 0; + +// Code containing pixel art, contains: +// 5 idle frames, 1 prep frame, and 2 tap frames + +// To make your own pixel art: +// save a png/jpeg of an 128x32 image (resource: https://www.pixilart.com/draw ) +// follow this guide up to and including "CONVERT YOUR IMAGE" https://docs.splitkb.com/hc/en-us/articles/360013811280-How-do-I-convert-an-image-for-use-on-an-OLED-display- +// replace numbers in brackets with your own +// if you start getting errors when compiling make sure you didn't accedentally delete a bracket +static void render_anim(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + }; + + // assumes 1 frame prep stage + void animation_phase(void) { + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + // oled_write_raw_P(prep[abs((PREP_FRAMES-1)-current_prep_frame)], ANIM_SIZE); // uncomment if IDLE_FRAMES >1 + oled_write_raw_P(prep[0], ANIM_SIZE); // remove if IDLE_FRAMES >1 + } + if (get_current_wpm() >= TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + if (get_current_wpm() != 000) { + oled_on(); // not essential but turns on animation OLED with any alpha keypress + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +// Used to draw on to the oled screen +void oled_task_user(void) { + render_anim(); // renders pixelart + + oled_set_cursor(0, 0); // sets cursor to (row, column) using charactar spacing (5 rows on 128x32 screen, anything more will overflow back to the top) + uint8_t n = get_current_wpm(); + wpm_str[3] = '\0'; + wpm_str[2] = '0' + n % 10; + wpm_str[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; + wpm_str[0] = n / 10 ? '0' + n / 10 : ' '; + oled_write_P(PSTR("WPM: "), false); + oled_write(wpm_str, false); + + led_t led_state = host_keyboard_led_state(); // caps lock stuff, prints CAPS on new line if caps led is on + oled_set_cursor(0, 1); + oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); +} +#endif \ No newline at end of file diff --git a/keyboards/sawnsprojects/satxri6key/keymaps/via/rules.mk b/keyboards/sawnsprojects/satxri6key/keymaps/via/rules.mk new file mode 100644 index 000000000000..9fd9843bf3d5 --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/keymaps/via/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +OLED_DRIVER_ENABLE = no +WPM_ENABLE = no +RGBLIGHT_ENABLE = yes +LTO_ENABLE = no \ No newline at end of file diff --git a/keyboards/sawnsprojects/satxri6key/readme.md b/keyboards/sawnsprojects/satxri6key/readme.md new file mode 100644 index 000000000000..12307983b90b --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/readme.md @@ -0,0 +1,15 @@ +# satxri6key + +![satxri6key](https://cdn.discordapp.com/attachments/860603126151512084/860671133778182194/20210703_051841.jpg) + +A 6% (2x3) ortholinear keyboard kit made and sold by SawnsProjects in TamHuyetTournament (Osu! Group). + +* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) +* Hardware Supported: Satxri6key +* Hardware Availability: [GitHub](https://github.com/MaiTheSan/Satxri6key) + +Make example for this keyboard (after setting up your build environment): + + make sawnsprojects/satxri6key:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/sawnsprojects/satxri6key/rules.mk b/keyboards/sawnsprojects/satxri6key/rules.mk new file mode 100644 index 000000000000..814b360d26b1 --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/sawnsprojects/satxri6key/satxri6key.c b/keyboards/sawnsprojects/satxri6key/satxri6key.c new file mode 100644 index 000000000000..a1b988de8d45 --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/satxri6key.c @@ -0,0 +1,31 @@ +/* Copyright 2021 SawnsProjects + * + * 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 "satxri6key.h" +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + //Key Matrix to LED Indexccxxz + {0, 1, 2}, + {5, 4, 3} +}, { + //LED Index to Physical Positon + {0, 0}, {112, 0}, {224, 0}, + {224, 64}, {112, 64}, {0, 64}, +}, { + 1, 1, 1, + 1, 1, 1, +} }; +#endif \ No newline at end of file diff --git a/keyboards/sawnsprojects/satxri6key/satxri6key.h b/keyboards/sawnsprojects/satxri6key/satxri6key.h new file mode 100644 index 000000000000..2f5dca0e3752 --- /dev/null +++ b/keyboards/sawnsprojects/satxri6key/satxri6key.h @@ -0,0 +1,27 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT(\ + K00, K01, K02,\ + K10, K11, K12\ + ) { \ + { K00, K01, K02 },\ + { K10, K11, K12 } \ +} From e9c3f71e74db1a11020acef3a017f79bbedc0015 Mon Sep 17 00:00:00 2001 From: joedinkle Date: Wed, 21 Jul 2021 23:47:48 -0700 Subject: [PATCH 051/328] [Keyboard] add SPRH keyboard (#12999) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- .../eyeohdesigns/babyv/keymaps/1u/keymap.c | 14 ++--- .../eyeohdesigns/babyv/keymaps/1u2u/keymap.c | 14 ++--- .../eyeohdesigns/babyv/keymaps/2u1u/keymap.c | 14 ++--- .../babyv/keymaps/default/keymap.c | 14 ++--- keyboards/eyeohdesigns/babyv/readme.md | 2 + keyboards/eyeohdesigns/sprh/config.h | 44 +++++++++++++++ keyboards/eyeohdesigns/sprh/info.json | 15 +++++ .../sprh/keymaps/default/keymap.c | 49 +++++++++++++++++ .../eyeohdesigns/sprh/keymaps/split/keymap.c | 49 +++++++++++++++++ keyboards/eyeohdesigns/sprh/readme.md | 21 +++++++ keyboards/eyeohdesigns/sprh/rules.mk | 23 ++++++++ keyboards/eyeohdesigns/sprh/sprh.c | 16 ++++++ keyboards/eyeohdesigns/sprh/sprh.h | 55 +++++++++++++++++++ 13 files changed, 302 insertions(+), 28 deletions(-) create mode 100644 keyboards/eyeohdesigns/sprh/config.h create mode 100644 keyboards/eyeohdesigns/sprh/info.json create mode 100644 keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c create mode 100644 keyboards/eyeohdesigns/sprh/keymaps/split/keymap.c create mode 100644 keyboards/eyeohdesigns/sprh/readme.md create mode 100644 keyboards/eyeohdesigns/sprh/rules.mk create mode 100644 keyboards/eyeohdesigns/sprh/sprh.c create mode 100644 keyboards/eyeohdesigns/sprh/sprh.h diff --git a/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c index ef2c32108b52..056c36d32a92 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c @@ -18,25 +18,25 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - QWERTY, - FUNCTN, - NUMBRS, + _QWERTY, + _FUNCTN, + _NUMBRS, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [QWERTY] = LAYOUT_1u( + [_QWERTY] = LAYOUT_1u( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, MO(FUNCTN), MO(NUMBRS), KC_SPC, KC_SPC, MO(NUMBRS), MO(FUNCTN), KC_RALT + KC_LCTL, MO(_FUNCTN), MO(_NUMBRS), KC_SPC, KC_SPC, MO(_NUMBRS), MO(_FUNCTN), KC_RALT ), - [FUNCTN] = LAYOUT_1u( + [_FUNCTN] = LAYOUT_1u( KC_VOLU, KC_Q, KC_PGUP, RGB_TOG, BL_STEP, KC_T, KC_Y, KC_U, KC_UP, RGB_MOD, RGB_RMOD, KC_DEL, KC_VOLD, KC_HOME, KC_PGDN, KC_D, KC_U, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_QUOT, RESET, KC_LSFT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LBRC, KC_RBRC, RGB_VAI, RGB_VAD, KC_DOT, KC_BSLS, KC_RSFT, KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS ), - [NUMBRS] = LAYOUT_1u( + [_NUMBRS] = LAYOUT_1u( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT, KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, diff --git a/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c index 86f4efffe4be..c161c714b360 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c @@ -17,25 +17,25 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - QWERTY, - FUNCTN, - NUMBRS, + _QWERTY, + _FUNCTN, + _NUMBRS, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [QWERTY] = LAYOUT_1u_2u( + [_QWERTY] = LAYOUT_1u_2u( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, MO(FUNCTN), MO(NUMBRS), KC_SPC, MO(FUNCTN), KC_RCTL + KC_LCTL, KC_LALT, MO(_FUNCTN), MO(_NUMBRS), KC_SPC, MO(_FUNCTN), KC_RCTL ), - [FUNCTN] = LAYOUT_1u_2u( + [_FUNCTN] = LAYOUT_1u_2u( KC_VOLU, KC_Q, KC_PGUP, RGB_TOG, BL_STEP, KC_T, KC_Y, KC_U, KC_UP, RGB_MOD, RGB_RMOD, KC_DEL, KC_VOLD, KC_HOME, KC_PGDN, KC_D, KC_U, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_QUOT, RESET, KC_LSFT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LBRC, KC_RBRC, RGB_VAI, RGB_VAD, KC_DOT, KC_BSLS, KC_RSFT, KC_LGUI, KC_LALT, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, RESET ), - [NUMBRS] = LAYOUT_1u_2u( + [_NUMBRS] = LAYOUT_1u_2u( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT, KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, diff --git a/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c index 7963db77eb5a..3c5de89d65c3 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c @@ -18,25 +18,25 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - QWERTY, - FUNCTN, - NUMBRS, + _QWERTY, + _FUNCTN, + _NUMBRS, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [QWERTY] = LAYOUT_2u_1u( + [_QWERTY] = LAYOUT_2u_1u( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, MO(FUNCTN), KC_SPC, MO(NUMBRS), MO(FUNCTN), KC_LGUI, KC_RALT + KC_LCTL, MO(_FUNCTN), KC_SPC, MO(_NUMBRS), MO(_FUNCTN), KC_LGUI, KC_RALT ), - [FUNCTN] = LAYOUT_2u_1u( + [_FUNCTN] = LAYOUT_2u_1u( KC_VOLU, KC_Q, KC_PGUP, RGB_TOG, BL_STEP, KC_T, KC_Y, KC_U, KC_UP, RGB_MOD, RGB_RMOD, KC_DEL, KC_VOLD, KC_HOME, KC_PGDN, KC_D, KC_U, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_QUOT, RESET, KC_LSFT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LBRC, KC_RBRC, RGB_VAI, RGB_VAD, KC_DOT, KC_BSLS, KC_RSFT, KC_LCTL, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS ), - [NUMBRS] = LAYOUT_2u_1u( + [_NUMBRS] = LAYOUT_2u_1u( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT, KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, diff --git a/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c index 2b071bd8547a..004a47678df9 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c @@ -17,25 +17,25 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - QWERTY, - FUNCT, - NUMBRS, + _QWERTY, + _FUNCTN, + _NUMBRS, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [QWERTY] = LAYOUT_2u( + [_QWERTY] = LAYOUT_2u( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, MO(NUMBRS), KC_SPC, MO(FUNCT), KC_LGUI + KC_LCTL, KC_LALT, MO(_NUMBRS), KC_SPC, MO(_FUNCTN), KC_LGUI ), - [FUNCT] = LAYOUT_2u( + [_FUNCTN] = LAYOUT_2u( KC_VOLU, KC_Q, KC_PGUP, RGB_TOG, BL_STEP, KC_T, KC_Y, KC_U, KC_UP, RGB_MOD, RGB_RMOD, KC_DEL, KC_VOLD, KC_HOME, KC_PGDN, KC_D, KC_U, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_QUOT, RESET, KC_LSFT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LBRC, KC_RBRC, RGB_VAI, RGB_VAD, KC_DOT, KC_BSLS, KC_RSFT, KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, RESET ), - [NUMBRS] = LAYOUT_2u( + [_NUMBRS] = LAYOUT_2u( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT, KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, diff --git a/keyboards/eyeohdesigns/babyv/readme.md b/keyboards/eyeohdesigns/babyv/readme.md index b3cd4f703593..6a367f376d0d 100644 --- a/keyboards/eyeohdesigns/babyv/readme.md +++ b/keyboards/eyeohdesigns/babyv/readme.md @@ -15,5 +15,7 @@ Make example for this keyboard (after setting up your build environment): Flashing example for this keyboard: make eyeohdesigns/babyv:default:flash + +To enter the bootloader, either depress the reset button on the back of the PCB, or use the 'RESET' keycode found on the function layer. 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). diff --git a/keyboards/eyeohdesigns/sprh/config.h b/keyboards/eyeohdesigns/sprh/config.h new file mode 100644 index 000000000000..45a315853687 --- /dev/null +++ b/keyboards/eyeohdesigns/sprh/config.h @@ -0,0 +1,44 @@ +/* +Copyright 2021 Eye Oh Designs + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Eye Oh Designs +#define PRODUCT sprh + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 +#define ENCODERS_PAD_A {D0} +#define ENCODERS_PAD_B {D1} +#define ENCODER_RESOLUTION 2 + + +#define MATRIX_ROW_PINS { B3, B7, D2, D5, D3 } +#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, C6, B6, B5, B4, D7, D6, F7, D4 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 \ No newline at end of file diff --git a/keyboards/eyeohdesigns/sprh/info.json b/keyboards/eyeohdesigns/sprh/info.json new file mode 100644 index 000000000000..f2a3070bc0d5 --- /dev/null +++ b/keyboards/eyeohdesigns/sprh/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "sprh", + "url": "", + "maintainer": "eye oh designs", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT_default": { + "layout": [{"label":"Encd", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"Backspace", "x":14.5, "y":0, "w":2}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":6.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}] + }, + "LAYOUT_split": { + "layout": [{"label":"Encd", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"\u2190", "x":14.5, "y":0}, {"label":"Del", "x":15.5, "y":0}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":1.75}, {"label":"Fn", "x":14.25, "y":3}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":2.75}, {"x":7.37, "y":4, "w":2.25}, {"x":9.62, "y":4, "w":1.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c b/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c new file mode 100644 index 000000000000..c66fb90c29d6 --- /dev/null +++ b/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2019 IOD + * + * 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 custom_layers { + _QWERTY, + _FUNCTN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_default(/* Base */ + KC_MUTE, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(_FUNCTN), KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FUNCTN] = LAYOUT_default(/* Base */ + RESET, KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FUNCTN), KC_RALT, KC_HOME, KC_PGDN, KC_END + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else{ + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/eyeohdesigns/sprh/keymaps/split/keymap.c b/keyboards/eyeohdesigns/sprh/keymaps/split/keymap.c new file mode 100644 index 000000000000..3ed21b6e4d12 --- /dev/null +++ b/keyboards/eyeohdesigns/sprh/keymaps/split/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2019 IOD + * + * 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 custom_layers { + _QWERTY, + _FUNCTN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_split(/* Base */ + KC_MUTE, KC_ESC, 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_MINS, KC_EQL, + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_CAPS, 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(_FUNCTN), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_ESC, MO(_FUNCTN), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FUNCTN] = LAYOUT_split(/* Base */ + RESET, KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else{ + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/eyeohdesigns/sprh/readme.md b/keyboards/eyeohdesigns/sprh/readme.md new file mode 100644 index 000000000000..59c5bce2c7e7 --- /dev/null +++ b/keyboards/eyeohdesigns/sprh/readme.md @@ -0,0 +1,21 @@ +# SPRH + +![SPRH](https://i.imgur.com/fkI5ryph.jpg) + +SPRH (Square Peg-Round Hole) is a 65% ortholinear board compatibile with standard keycap sets. + +* Keyboard Maintainer: [Eye Oh Designs](https://github.com/joedinkle) +* Hardware Supported: SPRH ver 1.00 +* Hardware Availability: Groupbuy ran in April 2021 + +Make example for this keyboard (after setting up your build environment): + + make eyeohdesigns/sprh:default + +Flashing example for this keyboard: + + make eyeohdesigns/sprh:default:flash + +To enter the bootloader, either depress the reset button on the back of the PCB, or use the 'RESET' keycode found on the function layer. + +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). diff --git a/keyboards/eyeohdesigns/sprh/rules.mk b/keyboards/eyeohdesigns/sprh/rules.mk new file mode 100644 index 000000000000..d8a074dc7316 --- /dev/null +++ b/keyboards/eyeohdesigns/sprh/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes \ No newline at end of file diff --git a/keyboards/eyeohdesigns/sprh/sprh.c b/keyboards/eyeohdesigns/sprh/sprh.c new file mode 100644 index 000000000000..bc7ad7b9ba55 --- /dev/null +++ b/keyboards/eyeohdesigns/sprh/sprh.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Eye Oh Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "sprh.h" \ No newline at end of file diff --git a/keyboards/eyeohdesigns/sprh/sprh.h b/keyboards/eyeohdesigns/sprh/sprh.h new file mode 100644 index 000000000000..772a40a97710 --- /dev/null +++ b/keyboards/eyeohdesigns/sprh/sprh.h @@ -0,0 +1,55 @@ +/* Copyright 2021 Eye Oh Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_default( \ + k43, 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, k2c,\ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,\ + k40, k41, k42, k46, k48, k49, k4b, k4c, k4d\ +) \ +{ \ + {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, k2c, KC_NO},\ + {KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d},\ + {k40, k41, k42, k43, KC_NO, KC_NO, k46, KC_NO, k48, k49, KC_NO, k4b, k4c, k4d},\ +} +#define LAYOUT_split( \ + k43, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d,\ + 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,\ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k49, k3d,\ + k40, k41, k42, k44, k45, k46, k47, k48, k4b, k4c, k4d\ +) \ +{ \ + {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, k2c, k2d},\ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d},\ + {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, KC_NO, k4b, k4c, k4d},\ +} From a400681ccf56b41a4badece43f73939329a1fe47 Mon Sep 17 00:00:00 2001 From: farfalleflickan <6597735+farfalleflickan@users.noreply.github.com> Date: Thu, 22 Jul 2021 08:57:35 +0200 Subject: [PATCH 052/328] [Keyboard] Updated keyboard & keymaps (#12667) Co-authored-by: pastapojken <6597735+pastapojken@users.noreply.github.com> --- keyboards/nack/config.h | 12 +- keyboards/nack/info.json | 4 +- keyboards/nack/keymaps/default/keymap.c | 42 +++---- .../{pastapojken => farfalleflickan}/keymap.c | 104 +++++++++--------- .../{pastapojken => farfalleflickan}/keymap.h | 8 +- .../nack/keymaps/farfalleflickan/readme.md | 1 + keyboards/nack/keymaps/pastapojken/readme.md | 1 - keyboards/nack/mcuconf.h | 1 - keyboards/nack/nack.c | 2 +- keyboards/nack/nack.h | 2 +- keyboards/nack/readme.md | 4 +- keyboards/nack/rules.mk | 2 +- 12 files changed, 88 insertions(+), 95 deletions(-) rename keyboards/nack/keymaps/{pastapojken => farfalleflickan}/keymap.c (66%) rename keyboards/nack/keymaps/{pastapojken => farfalleflickan}/keymap.h (94%) create mode 100644 keyboards/nack/keymaps/farfalleflickan/readme.md delete mode 100644 keyboards/nack/keymaps/pastapojken/readme.md diff --git a/keyboards/nack/config.h b/keyboards/nack/config.h index e442a13336f4..26fe7edf2c02 100644 --- a/keyboards/nack/config.h +++ b/keyboards/nack/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 pastapojken +Copyright 2020 farfalleflickan 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 @@ -21,7 +21,7 @@ along with this program. If not, see . #define VENDOR_ID 0xDA12 #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -#define MANUFACTURER pastapojken +#define MANUFACTURER farfalleflickan #define PRODUCT nack keyboard #define MATRIX_ROWS 4 @@ -48,12 +48,8 @@ along with this program. If not, see . #endif #ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(NO_SOUND) #define AUDIO_PIN A5 #define AUDIO_PIN_ALT A4 - #define AUDIO_PIN_ALT_AS_NEGATIVE - /* - * Basically, change this section once pull request 6165 has been merged - * https://github.com/qmk/qmk_firmware/pull/6165 - */ + #define STARTUP_SONG SONG(NO_SOUND) + #define AUDIO_DAC_SAMPLE_MAX 4095U #endif diff --git a/keyboards/nack/info.json b/keyboards/nack/info.json index 780017f6cc54..47942c4f195e 100644 --- a/keyboards/nack/info.json +++ b/keyboards/nack/info.json @@ -1,7 +1,7 @@ { "keyboard_name": "nack", - "url": "https://github.com/pastapojken/nack", - "maintainer": "pastapojken", + "url": "https://github.com/farfalleflickan/nack", + "maintainer": "farfalleflickan", "width": 13, "height": 4, "layouts": { diff --git a/keyboards/nack/keymaps/default/keymap.c b/keyboards/nack/keymaps/default/keymap.c index 4c3e3dacbdd4..9a76fbbddba7 100644 --- a/keyboards/nack/keymaps/default/keymap.c +++ b/keyboards/nack/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 pastapojken +/* Copyright 2020 farfalleflickan * * 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 @@ -25,41 +25,41 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT( /* __________________________________________________________________________________________________________________________________________________________________________ - | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ -// | |----TAB-----|---Q--------|-----W------|-----E------|-----R------|----T-------|-----Y------|-----U------|----I-------|------O-----|----P-------|----Å-------|--( ¨^~ )---| + | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ +// | |----TAB-----|---Q--------|-----W------|-----E------|-----R------|----T-------|-----Y------|-----U------|----I-------|------O-----|----P-------|----Å-------|--( ¨^~ )---| 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, -// | |----ESC-----|---A--------|---S--------|----D-------|-----F------|-----G------|-----H------|-----J------|-----K------|-----L------|-----Ö------|-----Ä------|--( '* )----| +// | |----ESC-----|---A--------|---S--------|----D-------|-----F------|-----G------|-----H------|-----J------|-----K------|-----L------|-----Ö------|-----Ä------|--( '* )----| 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_NUHS, -// | |---SHIFT----|---Z--------|---X--------|----C-------|-----V------|-----B------|-----N------|------M-----|---( ,; )---|---( .: )---|---( -_ )---|----UP------|-BACKSPACE--| +// | |---SHIFT----|---Z--------|---X--------|----C-------|-----V------|-----B------|-----N------|------M-----|---( ,; )---|---( .: )---|---( -_ )---|----UP------|-BACKSPACE--| KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_BSPC, -// | |---CTRL-----|---ALT------|---META-----|----FN_1----|----------SPACE----------|----FN_2----|----AltGr---|--( <>| )---|---ENETER---|-LEFT-------|---DOWN-----|--RIGHT-----| - KC_LCTL, KC_LALT, KC_LGUI, TT(NUM), KC_SPC, KC_NO, TT(FN), KC_RALT, KC_NUBS, KC_ENT, KC_LEFT, KC_DOWN, KC_RIGHT -// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| +// | |---CTRL-----|---ALT------|---META-----|----FN_1----|----------SPACE----------|----FN_2----|----AltGr---|--( <>| )---|---ENETER---|-LEFT-------|---DOWN-----|--RIGHT-----| + KC_LCTL, KC_LALT, KC_LGUI, MO(NUM), KC_SPC, KC_NO, MO(FN), KC_RALT, KC_NUBS, KC_ENT, KC_LEFT, KC_DOWN, KC_RIGHT +// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| ), [NUM] = LAYOUT( /* __________________________________________________________________________________________________________________________________________________________________________ - | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ + | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ // | |---TAB------|---( 1! )---|--( 2"@ )---|--( 3#£ )---|---( 4¤$ )--|--( 5%€ )---|---( 6& )---|--( 7/{ )---|--( 8([ )---|--( 9)] )---|--( 0=} )---|---( +?\ )--|---( ´` )---| _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, -// | |----ESC-----|-----F1-----|-----F2-----|----F3------|----F4------|----F5------|-----F6-----|-----F7------|----F8-----|-----F9-----|-----F10----|----F11-----|----F12-----| +// | |----ESC-----|-----F1-----|-----F2-----|----F3------|----F4------|----F5------|-----F6-----|-----F7------|----F8-----|-----F9-----|-----F10----|----F11-----|----F12-----| _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, -// | |---SHIFT----|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| +// | |---SHIFT----|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -// | |---CTRL-----|---ALT------|---META-----|---FN_1-----|------------|------------|----FN_2----|--AltGr-----|---( §½ )---|------------|------------|------------|------------| - _______, _______, _______, TT(FN), KC_NO, KC_NO, TO(BASE), _______, KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO -// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| +// | |---CTRL-----|---ALT------|---META-----|---FN_1-----|------------|------------|----FN_2----|--AltGr-----|---( §½ )---|------------|------------|------------|------------| + _______, _______, _______, MO(FN), KC_NO, KC_NO, TO(BASE), _______, KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO +// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| ), [FN] = LAYOUT( /* __________________________________________________________________________________________________________________________________________________________________________ - | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ -// | |-RGB TOGGLE-|-CHANGE RGB-|-RGB HUE UP-|-RGB SAT UP-|------------|------------|------------|------------|------------|------------|------------|------------|-RESET KBD--| + | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ +// | |-RGB TOGGLE-|-CHANGE RGB-|-RGB HUE UP-|-RGB SAT UP-|------------|------------|------------|------------|------------|------------|------------|------------|-RESET KBD--| RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -// | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| +// | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -// | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|-RGB LIGHT +|------------| +// | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|-RGB LIGHT +|------------| KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, KC_NO, -// | |------------|------------|------------|---FN_1-----|------------|------------|----FN_2----|------------|------------|------------|------------|-RGB LIGHT -|------------| - KC_NO, KC_NO, KC_NO, TT(NUM), KC_NO, KC_NO, TO(BASE), KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, KC_NO -// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| +// | |------------|------------|------------|---FN_1-----|------------|------------|----FN_2----|------------|------------|------------|------------|-RGB LIGHT -|------------| + KC_NO, KC_NO, KC_NO, MO(NUM), KC_NO, KC_NO, TO(BASE), KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, KC_NO +// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| ) }; diff --git a/keyboards/nack/keymaps/pastapojken/keymap.c b/keyboards/nack/keymaps/farfalleflickan/keymap.c similarity index 66% rename from keyboards/nack/keymaps/pastapojken/keymap.c rename to keyboards/nack/keymaps/farfalleflickan/keymap.c index 3bbcc4b368da..6e447bee1dae 100644 --- a/keyboards/nack/keymaps/pastapojken/keymap.c +++ b/keyboards/nack/keymaps/farfalleflickan/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 pastapojken +/* Copyright 2020 farfalleflickan * * 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 @@ -21,6 +21,7 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { BASE, + NOGUI, NUM, FN }; @@ -30,52 +31,61 @@ enum custom_keycodes { CK_LSFT = SAFE_RANGE, // Shift CK_RALT, // AltGr CK_BSPC_DEL, // Backspace or Del (if pressed with CK_LSFT or CK_RALT) - CK_UP_PGUP, // Up or PgUp (if pressed with CK_LSFT or CK_RALT) - CK_DOWN_PGDOWN, // Down or PgDown (if pressed with CK_LSFT or CK_RALT) - CK_LEFT_HOME, // Left or Home (if pressed with CK_LSFT or CK_RALT) - CK_RIGHT_END, // Right or End (if pressed with CK_LSFT or CK_RALT) KK_RESET }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT( /* __________________________________________________________________________________________________________________________________________________________________________ - | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ -// | |----TAB-----|---Q--------|-----W------|-----E------|-----R------|----T-------|-----Y------|-----U------|----I-------|------O-----|----P-------|----Å-------|--( ¨^~ )---| + | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ +// | |----TAB-----|---Q--------|-----W------|-----E------|-----R------|----T-------|-----Y------|-----U------|----I-------|------O-----|----P-------|----Å-------|--( ¨^~ )---| 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, -// | |----ESC-----|---A--------|---S--------|----D-------|-----F------|-----G------|-----H------|-----J------|-----K------|-----L------|-----Ö------|-----Ä------|--( '* )----| +// | |----ESC-----|---A--------|---S--------|----D-------|-----F------|-----G------|-----H------|-----J------|-----K------|-----L------|-----Ö------|-----Ä------|--( '* )----| 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_NUHS, -// | |---SHIFT----|---Z--------|---X--------|----C-------|-----V------|-----B------|-----N------|------M-----|---( ,; )---|---( .: )---|---( -_ )---|----UP------|-BACKSPACE--| - CK_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, CK_UP_PGUP, CK_BSPC_DEL, -// | |---CTRL-----|---ALT------|---META-----|----FN_1----|----------SPACE----------|----FN_2----|----AltGr---|--( <>| )---|---ENETER---|-LEFT-------|---DOWN-----|--RIGHT-----| - KC_LCTL, KC_LALT, KC_LGUI, TT(NUM), KC_SPC, KC_NO, TT(FN), CK_RALT, KC_NUBS, KC_ENT, CK_LEFT_HOME,CK_DOWN_PGDOWN,CK_RIGHT_END -// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| +// | |---SHIFT----|---Z--------|---X--------|----C-------|-----V------|-----B------|-----N------|------M-----|---( ,; )---|---( .: )---|---( -_ )---|----UP------|-BACKSPACE--| + CK_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, CK_BSPC_DEL, +// | |---CTRL-----|---ALT------|---META-----|----FN_1----|----------SPACE----------|----FN_2----|----AltGr---|--( <>| )---|---ENTER----|-LEFT-------|---DOWN-----|--RIGHT-----| + KC_LCTL, KC_LALT, KC_LGUI, MO(NUM), KC_SPC, KC_NO, MO(FN), CK_RALT, KC_NUBS, KC_ENT, KC_LEFT, KC_DOWN, KC_RIGHT +// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| + ), + [NOGUI] = LAYOUT( +/* __________________________________________________________________________________________________________________________________________________________________________ + | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ +// | |----TAB-----|---Q--------|-----W------|-----E------|-----R------|----T-------|-----Y------|-----U------|----I-------|------O-----|----P-------|----Å-------|--( ¨^~ )---| + 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, +// | |----ESC-----|---A--------|---S--------|----D-------|-----F------|-----G------|-----H------|-----J------|-----K------|-----L------|-----Ö------|-----Ä------|--( '* )----| + 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_NUHS, +// | |---SHIFT----|---Z--------|---X--------|----C-------|-----V------|-----B------|-----N------|------M-----|---( ,; )---|---( .: )---|---( -_ )---|----UP------|-BACKSPACE--| + CK_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, CK_BSPC_DEL, +// | |---CTRL-----|---ALT------|---META-----|----FN_1----|----------SPACE----------|----FN_2----|----AltGr---|--( <>| )---|---ENTER----|-LEFT-------|---DOWN-----|--RIGHT-----| + KC_LCTL, KC_LALT, KC_NO, MO(NUM), KC_SPC, KC_NO, TO(BASE), CK_RALT, KC_NUBS, KC_ENT, KC_LEFT, KC_DOWN, KC_RIGHT +// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| ), [NUM] = LAYOUT( /* __________________________________________________________________________________________________________________________________________________________________________ - | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ + | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ // | |---TAB------|---( 1! )---|--( 2"@ )---|--( 3#£ )---|---( 4¤$ )--|--( 5%€ )---|---( 6& )---|--( 7/{ )---|--( 8([ )---|--( 9)] )---|--( 0=} )---|---( +?\ )--|---( ´` )---| ____, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, -// | |----ESC-----|-----F1-----|-----F2-----|----F3------|----F4------|----F5------|-----F6-----|-----F7------|----F8-----|-----F9-----|-----F10----|----F11-----|----F12-----| +// | |----ESC-----|-----F1-----|-----F2-----|----F3------|----F4------|----F5------|-----F6-----|-----F7------|----F8-----|-----F9-----|-----F10----|----F11-----|----F12-----| ____, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, -// | |---SHIFT----|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| - ____, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -// | |---CTRL-----|---ALT------|---META-----|---FN_1-----|------------|------------|----FN_2----|--AltGr-----|---( §½ )---|------------|------------|------------|------------| - ____, ____, ____, TT(FN), KC_NO, KC_NO, TO(BASE), ____, KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO -// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| +// | |---SHIFT----|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| + ____, KC_P0, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_PGUP, KC_NO, +// | |---CTRL-----|---ALT------|---META-----|---FN_1-----|------------|------------|----FN_2----|--AltGr-----|---( §½ )---|------------|------------|------------|------------| + ____, ____, ____, TO(BASE), KC_NO, KC_NO, MO(FN), ____, KC_GRV, KC_PDOT, KC_HOME, KC_PGDOWN, KC_END +// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| ), [FN] = LAYOUT( /* __________________________________________________________________________________________________________________________________________________________________________ - | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ -// | |-RGB TOGGLE-|-CHANGE RGB-|-RGB HUE UP-|-RGB SAT UP-|------------|------------|------------|------------|------------|------------|------------|------------|-RESET KBD--| + | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ +// | |-RGB TOGGLE-|-CHANGE RGB-|-RGB HUE UP-|-RGB SAT UP-|------------|------------|------------|------------|------------|------------|------------|------------|-RESET KBD--| RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KK_RESET, -// | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| +// | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -// | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|-RGB LIGHT +|------------| +// | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|-RGB LIGHT +|------------| KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, KC_NO, -// | |------------|------------|------------|---FN_1-----|------------|------------|----FN_2----|------------|------------|------------|------------|-RGB LIGHT -|------------| - KC_NO, KC_NO, KC_NO, TT(NUM), KC_NO, KC_NO, TO(BASE), KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, KC_NO -// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| +// | |------------|------------|------------|---FN_1-----|------------|------------|----FN_2----|------------|------------|------------|------------|-RGB LIGHT -|------------| + KC_NO, KC_NO, KC_NO, TO(BASE), KC_NO, KC_NO, TO(BASE), TO(NOGUI), KC_NO, KC_NO, KC_NO, RGB_VAD, KC_NO +// \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| ) }; @@ -138,6 +148,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { lshift = false; } return false; + break; case CK_RALT: if(record->event.pressed) { unregister_code(KC_RALT); @@ -149,33 +160,26 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { ralt = false; } return false; + break; case CK_BSPC_DEL: - RALT_NO(KC_BSPC,KC_DEL); - break; - case CK_UP_PGUP: - RALT_NO(KC_UP,KC_PGUP); - break; - case CK_DOWN_PGDOWN: - RALT_NO(KC_DOWN,KC_PGDOWN); - break; - case CK_LEFT_HOME: - RALT_NO(KC_LEFT,KC_HOME); - break; - case CK_RIGHT_END: - RALT_NO(KC_RIGHT,KC_END); + if (ralt==true) { + RALT_NO(KC_BSPC,KC_DEL); + } else { + SHIFT_NO(KC_BSPC,KC_DEL); + } break; case KK_RESET: // Basically, turn off RGB before resetting - if (record->event.pressed) { - key_timer = timer_read32(); - #ifdef RGB_MATRIX_ENABLE - rgb_matrix_disable_noeeprom(); - #endif - } else { - if (timer_elapsed32(key_timer) >= 20) { - reset_keyboard(); - } + if (record->event.pressed) { + key_timer = timer_read32(); + #ifdef RGB_MATRIX_ENABLE + rgb_matrix_disable_noeeprom(); + #endif + } else { + if (timer_elapsed32(key_timer) >= 20) { + reset_keyboard(); } - break; + } + break; default: if(record->event.pressed) { timer_timeout_keymap(); diff --git a/keyboards/nack/keymaps/pastapojken/keymap.h b/keyboards/nack/keymaps/farfalleflickan/keymap.h similarity index 94% rename from keyboards/nack/keymaps/pastapojken/keymap.h rename to keyboards/nack/keymaps/farfalleflickan/keymap.h index aaeed707069f..212f45ffdb4a 100644 --- a/keyboards/nack/keymaps/pastapojken/keymap.h +++ b/keyboards/nack/keymaps/farfalleflickan/keymap.h @@ -1,4 +1,4 @@ -/* Copyright 2020 pastapojken +/* Copyright 2020 farfalleflickan * * 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 @@ -17,12 +17,6 @@ #pragma once #include "quantum.h" -#define TAPPING_TOGGLE 2 - -#ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(NO_SOUND) -#endif - void add_to_prev(uint16_t kc); void unreg_prev(void); void timer_timeout_keymap(void); diff --git a/keyboards/nack/keymaps/farfalleflickan/readme.md b/keyboards/nack/keymaps/farfalleflickan/readme.md new file mode 100644 index 000000000000..fbe5c6f5e3cb --- /dev/null +++ b/keyboards/nack/keymaps/farfalleflickan/readme.md @@ -0,0 +1 @@ +# farfalleflickan's keymap for nack diff --git a/keyboards/nack/keymaps/pastapojken/readme.md b/keyboards/nack/keymaps/pastapojken/readme.md deleted file mode 100644 index 73e1e2add9d9..000000000000 --- a/keyboards/nack/keymaps/pastapojken/readme.md +++ /dev/null @@ -1 +0,0 @@ -# pastapojken's keymap for nack diff --git a/keyboards/nack/mcuconf.h b/keyboards/nack/mcuconf.h index d2251dbaef6f..4b714b9d52e1 100644 --- a/keyboards/nack/mcuconf.h +++ b/keyboards/nack/mcuconf.h @@ -28,4 +28,3 @@ #undef STM32_SPI_USE_SPI2 #define STM32_SPI_USE_SPI2 FALSE - diff --git a/keyboards/nack/nack.c b/keyboards/nack/nack.c index 185a96fdad7d..8433e551c481 100644 --- a/keyboards/nack/nack.c +++ b/keyboards/nack/nack.c @@ -1,4 +1,4 @@ -/* Copyright 2020 pastapojken +/* Copyright 2020 farfalleflickan * * 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 diff --git a/keyboards/nack/nack.h b/keyboards/nack/nack.h index 30e310a486c6..6680e992eea8 100644 --- a/keyboards/nack/nack.h +++ b/keyboards/nack/nack.h @@ -1,4 +1,4 @@ -/* Copyright 2020 pastapojken +/* Copyright 2020 farfalleflickan * * 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 diff --git a/keyboards/nack/readme.md b/keyboards/nack/readme.md index 6a1adeaf7be0..b654020c4fe3 100644 --- a/keyboards/nack/readme.md +++ b/keyboards/nack/readme.md @@ -4,9 +4,9 @@ A ISO-friendly ortholinear keyboard, 13x4 keys. See [screenshots](https://imgur.com/a/PPO18Lc). -* Keyboard Maintainer: [pastapojken](https://github.com/pastapojken) +* Keyboard Maintainer: [farfalleflickan](https://github.com/farfalleflickan) * Hardware Supported: nack PCB -* Hardware Availability: [github repo](https://github.com/pastapojken/nack) +* Hardware Availability: [github repo](https://github.com/farfalleflickan/nack) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/nack/rules.mk b/keyboards/nack/rules.mk index 35e9440695d1..f8b7d4d39b38 100644 --- a/keyboards/nack/rules.mk +++ b/keyboards/nack/rules.mk @@ -24,5 +24,5 @@ AUDIO_ENABLE = yes # Audio output RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 WS2812_DRIVER = spi -AUDIO_DRIVER = dac_additive # How to drive the 2 speakers +AUDIO_DRIVER = dac_basic # How to drive the 2 speakers UNICODE_ENABLE = yes # Unicode support From 336c8d3efeaf709f8d80033976141968f478fc59 Mon Sep 17 00:00:00 2001 From: drhigsby <71532157+drhigsby@users.noreply.github.com> Date: Thu, 22 Jul 2021 00:17:47 -0700 Subject: [PATCH 053/328] [Keyboard] add ogurec (#13242) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/ogurec/config.h | 56 +++++++++++++ keyboards/ogurec/info.json | 88 ++++++++++++++++++++ keyboards/ogurec/keymaps/dack/config.h | 19 +++++ keyboards/ogurec/keymaps/dack/keymap.c | 97 ++++++++++++++++++++++ keyboards/ogurec/keymaps/dack/readme.md | 3 + keyboards/ogurec/keymaps/default/config.h | 19 +++++ keyboards/ogurec/keymaps/default/keymap.c | 76 +++++++++++++++++ keyboards/ogurec/keymaps/default/readme.md | 1 + keyboards/ogurec/keymaps/default/rules.mk | 1 + keyboards/ogurec/left_pm/left_pm.h | 49 +++++++++++ keyboards/ogurec/left_pm/readme.md | 13 +++ keyboards/ogurec/left_pm/rules.mk | 0 keyboards/ogurec/ogurec.c | 16 ++++ keyboards/ogurec/ogurec.h | 24 ++++++ keyboards/ogurec/readme.md | 27 ++++++ keyboards/ogurec/right_pm/readme.md | 13 +++ keyboards/ogurec/right_pm/right_pm.h | 49 +++++++++++ keyboards/ogurec/right_pm/rules.mk | 0 keyboards/ogurec/rules.mk | 23 +++++ 19 files changed, 574 insertions(+) create mode 100644 keyboards/ogurec/config.h create mode 100644 keyboards/ogurec/info.json create mode 100644 keyboards/ogurec/keymaps/dack/config.h create mode 100644 keyboards/ogurec/keymaps/dack/keymap.c create mode 100644 keyboards/ogurec/keymaps/dack/readme.md create mode 100644 keyboards/ogurec/keymaps/default/config.h create mode 100644 keyboards/ogurec/keymaps/default/keymap.c create mode 100644 keyboards/ogurec/keymaps/default/readme.md create mode 100644 keyboards/ogurec/keymaps/default/rules.mk create mode 100644 keyboards/ogurec/left_pm/left_pm.h create mode 100644 keyboards/ogurec/left_pm/readme.md create mode 100644 keyboards/ogurec/left_pm/rules.mk create mode 100644 keyboards/ogurec/ogurec.c create mode 100644 keyboards/ogurec/ogurec.h create mode 100644 keyboards/ogurec/readme.md create mode 100644 keyboards/ogurec/right_pm/readme.md create mode 100644 keyboards/ogurec/right_pm/right_pm.h create mode 100644 keyboards/ogurec/right_pm/rules.mk create mode 100644 keyboards/ogurec/rules.mk diff --git a/keyboards/ogurec/config.h b/keyboards/ogurec/config.h new file mode 100644 index 000000000000..c5605ca645b0 --- /dev/null +++ b/keyboards/ogurec/config.h @@ -0,0 +1,56 @@ +/* Copyright 2021 drhigsby + * + * 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" + +/* USB Device descriptor parameter */ +#define MANUFACTURER DrHigsby +#define PRODUCT ogurec +#define VENDOR_ID 0x0007 +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 12 + +/* + * 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) + * + */ + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F6, B6, B2 } +#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B4, B5, F4, F5 } +#define UNUSED_PINS { F7, B1, B3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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/ogurec/info.json b/keyboards/ogurec/info.json new file mode 100644 index 000000000000..addd0ee43a67 --- /dev/null +++ b/keyboards/ogurec/info.json @@ -0,0 +1,88 @@ +{ + "keyboard_name": "ogurec", + "url": "http://www.keyboard-layout-editor.com/#/gists/f1bda3a87822868599cf6e3c4340f594", + "maintainer": "drhigsby", + "width": 12, + "height": 3, + "layouts": { + "LAYOUT_ortho_3x12": { + "layout": [ + {"label":"Q", "x":0, "y":0}, + {"label":"W", "x":1, "y":0}, + {"label":"E", "x":2, "y":0}, + {"label":"R", "x":3, "y":0}, + {"label":"T", "x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"label":"Y", "x":7, "y":0}, + {"label":"U", "x":8, "y":0}, + {"label":"I", "x":9, "y":0}, + {"label":"O", "x":10, "y":0}, + {"label":"P", "x":11, "y":0}, + {"label":"A", "x":0, "y":1}, + {"label":"S", "x":1, "y":1}, + {"label":"D", "x":2, "y":1}, + {"label":"F", "x":3, "y":1}, + {"label":"G", "x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"label":"H", "x":7, "y":1}, + {"label":"J", "x":8, "y":1}, + {"label":"K", "x":9, "y":1}, + {"label":"L", "x":10, "y":1}, + {"label":"\"", "x":11, "y":1}, + {"label":"Z", "x":0, "y":2}, + {"label":"X", "x":1, "y":2}, + {"label":"C", "x":2, "y":2}, + {"label":"V", "x":3, "y":2}, + {"label":"B", "x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"label":"N", "x":7, "y":2}, + {"label":"M", "x":8, "y":2}, + {"label":"<", "x":9, "y":2}, + {"label":">", "x":10, "y":2}, + {"label":"?", "x":11, "y":2}] + }, + + "LAYOUT_ortho_3x12_1x2uC": { + "layout": [ + {"label":"Q", "x":0, "y":0}, + {"label":"W", "x":1, "y":0}, + {"label":"E", "x":2, "y":0}, + {"label":"R", "x":3, "y":0}, + {"label":"T", "x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"label":"Y", "x":7, "y":0}, + {"label":"U", "x":8, "y":0}, + {"label":"I", "x":9, "y":0}, + {"label":"O", "x":10, "y":0}, + {"label":"P", "x":11, "y":0}, + {"label":"A", "x":0, "y":1}, + {"label":"S", "x":1, "y":1}, + {"label":"D", "x":2, "y":1}, + {"label":"F", "x":3, "y":1}, + {"label":"G", "x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"label":"H", "x":7, "y":1}, + {"label":"J", "x":8, "y":1}, + {"label":"K", "x":9, "y":1}, + {"label":"L", "x":10, "y":1}, + {"label":"\"", "x":11, "y":1}, + {"label":"Z", "x":0, "y":2}, + {"label":"X", "x":1, "y":2}, + {"label":"C", "x":2, "y":2}, + {"label":"V", "x":3, "y":2}, + {"label":"B", "x":4, "y":2}, + {"x":5, "y":2, "w":2}, + {"label":"N", "x":7, "y":2}, + {"label":"M", "x":8, "y":2}, + {"label":"<", "x":9, "y":2}, + {"label":">", "x":10, "y":2}, + {"label":"?", "x":11, "y":2}] + }, + + } +} diff --git a/keyboards/ogurec/keymaps/dack/config.h b/keyboards/ogurec/keymaps/dack/config.h new file mode 100644 index 000000000000..af5d55bf6eb9 --- /dev/null +++ b/keyboards/ogurec/keymaps/dack/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 drhigsby + * + * 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 IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_TERM 230 +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/ogurec/keymaps/dack/keymap.c b/keyboards/ogurec/keymaps/dack/keymap.c new file mode 100644 index 000000000000..420ff3d88d0a --- /dev/null +++ b/keyboards/ogurec/keymaps/dack/keymap.c @@ -0,0 +1,97 @@ +/* Copyright 2021 drhigsby + * + * 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 custom_layers { + _BASE, + _CLOSE, + _FAR, + _FUNKY, +}; +#define CLS_SPC LT(_CLOSE, KC_SPC) +#define FAR_F LT(_FAR, KC_F) +#define FNK_D LT(_FUNKY, KC_D) +#define SFT_Z LSFT_T(KC_Z) +#define SFT_ENT RSFT_T(KC_ENT) +#define CTL_X LCTL_T(KC_X) +#define CTL_DOT RCTL_T(KC_DOT) +#define WIN_C LWIN_T(KC_C) +#define WIN_COMM RWIN_T(KC_COMM) +#define ALT_V LALT_T(KC_V) +#define ALT_M LALT_T(KC_M) +#define COPY LCTL(KC_C) +#define PASTE LCTL(KC_V) +#define CUT LCTL(KC_X) +#define UNDO LCTL(KC_Z) +#define RUS_TGL RALT(KC_LSFT) +#define LOCK LWIN(KC_L) +#define vvv KC_TRNS + +enum custom_keycodes { + TYPEDON = SAFE_RANGE +}; + +bool process_record_user(uint16_t keycode, keyrecord_t* record) { + if (record->event.pressed) { + switch (keycode) { + case TYPEDON: + SEND_STRING("[typed on an ogurec]"); + return false; + } + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_ortho_3x12( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, FNK_D, FAR_F, KC_G, KC_GRAVE, KC_SCOLON, KC_H, KC_J, KC_K, KC_L, KC_QUOT, + SFT_Z, CTL_X, WIN_C, ALT_V, KC_B, KC_BSPC, CLS_SPC, KC_N, ALT_M, WIN_COMM, CTL_DOT, SFT_ENT + ), + + [_CLOSE] = LAYOUT_ortho_3x12( + KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + KC_MINUS, KC_UNDS, KC_EQL, KC_PLUS, _______, _______, vvv, _______, KC_SCOLON, KC_COLON, KC_SLSH, KC_QUES + ), + + [_FAR] = LAYOUT_ortho_3x12( + KC_ESC, TYPEDON, KC_BSLS, RUS_TGL,_______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, + KC_CAPS, KC_TAB, KC_PIPE, vvv, LOCK, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, + UNDO, CUT, COPY, PASTE, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______, _______, _______, _______ + ), + [_FUNKY] = LAYOUT_ortho_3x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, vvv, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______ + ) + +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + case FAR_F: + return TAPPING_TERM - 50; + case CLS_SPC: + return TAPPING_TERM - 50; + case SFT_Z: + return TAPPING_TERM - 80; + case SFT_ENT: + return TAPPING_TERM - 75; + default: + return TAPPING_TERM; + } +} diff --git a/keyboards/ogurec/keymaps/dack/readme.md b/keyboards/ogurec/keymaps/dack/readme.md new file mode 100644 index 000000000000..adffe1797f21 --- /dev/null +++ b/keyboards/ogurec/keymaps/dack/readme.md @@ -0,0 +1,3 @@ +# Dack's Ogurec Keymap + +This is Dack's personal ogurec keymap and it is for left-sided PM placement diff --git a/keyboards/ogurec/keymaps/default/config.h b/keyboards/ogurec/keymaps/default/config.h new file mode 100644 index 000000000000..9ff2d89acc80 --- /dev/null +++ b/keyboards/ogurec/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 drhigsby + * + * 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 COMBO_COUNT 7 +#define COMBO_TERM 40 diff --git a/keyboards/ogurec/keymaps/default/keymap.c b/keyboards/ogurec/keymaps/default/keymap.c new file mode 100644 index 000000000000..691f5c95a196 --- /dev/null +++ b/keyboards/ogurec/keymaps/default/keymap.c @@ -0,0 +1,76 @@ +/* Copyright 2021 drhigsby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _NUM, + _FN +}; + +enum combo_events { + combo_ESC, + combo_BACK, + combo_TAB, + combo_DELETE, + combo_ENTER, + combo_LPRN, + combo_RPRN, +}; + +const uint16_t PROGMEM esc_combo[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM bspc_combo[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM tab_combo[] = {KC_A, KC_S, COMBO_END}; +const uint16_t PROGMEM del_combo[] = {KC_I, KC_O, COMBO_END}; +const uint16_t PROGMEM enter_combo[] = {KC_L, KC_SCLN, COMBO_END}; +const uint16_t PROGMEM lprn_combo[] = {KC_X, KC_C, COMBO_END}; +const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END}; + + +combo_t key_combos[COMBO_COUNT] = { + [combo_ESC] = COMBO(esc_combo, KC_ESC), + [combo_BACK] = COMBO(bspc_combo, KC_BSPC), + [combo_TAB] = COMBO(tab_combo, KC_TAB), + [combo_DELETE] = COMBO(del_combo, KC_DEL), + [combo_ENTER] = COMBO(enter_combo, KC_ENT), + [combo_LPRN] = COMBO(lprn_combo, KC_LPRN), + [combo_RPRN] = COMBO(rprn_combo, KC_RPRN), +}; + +#define NUM MO(_NUM) +#define FN MO(_FN) +#define xxx KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_ortho_3x12( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, FN, KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, NUM, KC_SPC, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH) + ), + + [_NUM] = LAYOUT_ortho_3x12( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_HOME, KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_END, KC_PGDN, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LCBR, KC_LT, KC_GT, KC_RCBR, KC_PIPE, KC_BSLS, KC_DQUO, KC_QUOT + ), + + [_FN] = LAYOUT_ortho_3x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, + KC_VOLD, KC_VOLU, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_MRWD, KC_MFFD, xxx, xxx, xxx + ) + +}; diff --git a/keyboards/ogurec/keymaps/default/readme.md b/keyboards/ogurec/keymaps/default/readme.md new file mode 100644 index 000000000000..3be288eeebc1 --- /dev/null +++ b/keyboards/ogurec/keymaps/default/readme.md @@ -0,0 +1 @@ +# default ogurec keymap diff --git a/keyboards/ogurec/keymaps/default/rules.mk b/keyboards/ogurec/keymaps/default/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/ogurec/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/ogurec/left_pm/left_pm.h b/keyboards/ogurec/left_pm/left_pm.h new file mode 100644 index 000000000000..ecf87a2a49f4 --- /dev/null +++ b/keyboards/ogurec/left_pm/left_pm.h @@ -0,0 +1,49 @@ +/* Copyright 2021 drhigsby + * + * 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 "ogurec.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_ortho_3x12( \ + k011, k010, k009, k008, k007, k006, k005, k004, k003, k002, k001, k000, \ + k111, k110, k109, k108, k107, k106, k105, k104, k103, k102, k101, k100, \ + k211, k210, k209, k208, k207, k206, k205, k204, k203, k202, k201, k200 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 } \ +} + +#define LAYOUT_ortho_3x12_1x2uC( \ + k011, k010, k009, k008, k007, k006, k005, k004, k003, k002, k001, k000, \ + k111, k110, k109, k108, k107, k106, k105, k104, k103, k102, k101, k100, \ + k211, k210, k209, k208, k207, k205, k204, k203, k202, k201, k200 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, KC_NO, k207, k208, k209, k210, k211 } \ +} diff --git a/keyboards/ogurec/left_pm/readme.md b/keyboards/ogurec/left_pm/readme.md new file mode 100644 index 000000000000..c9d0cddb3b92 --- /dev/null +++ b/keyboards/ogurec/left_pm/readme.md @@ -0,0 +1,13 @@ +# ogurec keymap for left-sided PM placement + +Make example for this keyboard (after setting up your build environment): + + make ogurec/left_pm:default + +Flashing example for this keyboard: + + make ogurec/left_pm:default:flash + +To place the keyboard into bootloader mode, solder a reset switch onto the PCB and press it OR short the GND and RST pins on the pro micro. + +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). diff --git a/keyboards/ogurec/left_pm/rules.mk b/keyboards/ogurec/left_pm/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ogurec/ogurec.c b/keyboards/ogurec/ogurec.c new file mode 100644 index 000000000000..6b2efa56b6ec --- /dev/null +++ b/keyboards/ogurec/ogurec.c @@ -0,0 +1,16 @@ +/* Copyright 2021 drhigsby + * + * 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 "ogurec.h" diff --git a/keyboards/ogurec/ogurec.h b/keyboards/ogurec/ogurec.h new file mode 100644 index 000000000000..53956aa586e6 --- /dev/null +++ b/keyboards/ogurec/ogurec.h @@ -0,0 +1,24 @@ +/* Copyright 2021 drhigsby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#if defined(KEYBOARD_ogurec_left_pm) +# include "left_pm.h" +#elif defined(KEYBOARD_ogurec_right_pm) +# include "right_pm.h" +#endif diff --git a/keyboards/ogurec/readme.md b/keyboards/ogurec/readme.md new file mode 100644 index 000000000000..3e0ae153faf0 --- /dev/null +++ b/keyboards/ogurec/readme.md @@ -0,0 +1,27 @@ +# ogurec + +![ogurec](https://i.imgur.com/OJ5UnXT.png) + +ogurec is a reversible 12u x 3u ortholinear keyboard that offers left-sided and right-sided PM placement. + +The default ogurec keymap is for left-sided PM placement. + +When flashing ogurec with the PM soldered onto the right side, follow the second example below and use: make ogure/right_pm:default + +* Keyboard Maintainer: [H. Bond](https://github.com/drhigsby) +* Hardware Supported: ogurec (https://github.com/drhigsby/ogurec) +* Hardware Availability: open source 3DP case available here https://github.com/drhigsby (case creator: https://github.com/dpalka15) + +Make example for this keyboard (after setting up your build environment): + + make ogurec:default + make ogurec/right_pm:default + +To place the keyboard into bootloader mode, solder a reset switch onto the PCB and press it OR short the GND and RST pins on the pro micro. + +Flashing example for this keyboard: + + make ogurec:default:flash + make ogurec/right_pm: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). diff --git a/keyboards/ogurec/right_pm/readme.md b/keyboards/ogurec/right_pm/readme.md new file mode 100644 index 000000000000..54efcecfe115 --- /dev/null +++ b/keyboards/ogurec/right_pm/readme.md @@ -0,0 +1,13 @@ +# ogurec keymap for right-sided PM placement + +Make example for this keyboard (after setting up your build environment): + + make ogurec/right_pm:default + +Flashing example for this keyboard: + + make ogurec/right_pm:default:flash + +To place the keyboard into bootloader mode, solder a reset switch onto the PCB and press it OR short the GND and RST pins on the pro micro. + +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). diff --git a/keyboards/ogurec/right_pm/right_pm.h b/keyboards/ogurec/right_pm/right_pm.h new file mode 100644 index 000000000000..e413a835bcba --- /dev/null +++ b/keyboards/ogurec/right_pm/right_pm.h @@ -0,0 +1,49 @@ +/* Copyright 2021 drhigsby + * + * 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 "ogurec.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_ortho_3x12( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 } \ +} + +#define LAYOUT_ortho_3x12_1x2uC( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k207, k208, k209, k210, k211 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, KC_NO, k207, k208, k209, k210, k211 } \ +} diff --git a/keyboards/ogurec/right_pm/rules.mk b/keyboards/ogurec/right_pm/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ogurec/rules.mk b/keyboards/ogurec/rules.mk new file mode 100644 index 000000000000..26b1d0da8e77 --- /dev/null +++ b/keyboards/ogurec/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +DEFAULT_FOLDER = ogurec/left_pm From 8158473464935ff51a364450898ba78b6206c073 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 22 Jul 2021 00:53:18 -0700 Subject: [PATCH 054/328] [Keyboard] Fix clawsome/hatchback and reviung5 compile issues (#13607) --- .../hatchback/{hatcback.h => hatchback.h} | 2 ++ keyboards/reviung5/config.h | 33 ++++++++++--------- 2 files changed, 20 insertions(+), 15 deletions(-) rename keyboards/clawsome/hatchback/{hatcback.h => hatchback.h} (98%) diff --git a/keyboards/clawsome/hatchback/hatcback.h b/keyboards/clawsome/hatchback/hatchback.h similarity index 98% rename from keyboards/clawsome/hatchback/hatcback.h rename to keyboards/clawsome/hatchback/hatchback.h index b30eda09f478..b55f6adc2802 100644 --- a/keyboards/clawsome/hatchback/hatcback.h +++ b/keyboards/clawsome/hatchback/hatchback.h @@ -18,6 +18,7 @@ #include "quantum.h" +// clang-format off #define LAYOUT( \ K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K18, K09, \ K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K38, K29, \ @@ -39,3 +40,4 @@ { KA0, KA1, KA2, KA3, KA4, KA5, KA6, KA7, KC_NO, KA9 }, \ { KB0, KC_NO, KC_NO, KC_NO, KC_NO, KB5, KB6, KC_NO, KB8, KC_NO }, \ } +// clang-format on diff --git a/keyboards/reviung5/config.h b/keyboards/reviung5/config.h index 493cc6af99b5..b06c5797fdbd 100644 --- a/keyboards/reviung5/config.h +++ b/keyboards/reviung5/config.h @@ -27,8 +27,8 @@ along with this program. If not, see . #define PRODUCT reviung5 /* key matrix size */ -#define MATRIX_ROWS 1 -#define MATRIX_COLS 5 +#define MATRIX_ROWS 1 +#define MATRIX_COLS 5 /* * Keyboard Matrix Assignments @@ -40,28 +40,31 @@ along with this program. If not, see . * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ -#define MATRIX_ROW_PINS { F4 } -#define MATRIX_COL_PINS { D4, C6, D7, E6, B4 } +#define MATRIX_ROW_PINS \ + { F4 } +#define MATRIX_COL_PINS \ + { D4, C6, D7, E6, B4 } #define UNUSED_PINS /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW /* Encoder */ -#define ENCODERS_PAD_A { D0 } -#define ENCODERS_PAD_B { D1 } - +#define ENCODERS_PAD_A \ + { D0 } +#define ENCODERS_PAD_B \ + { D1 } #define RGB_DI_PIN D3 #ifdef RGB_DI_PIN -# define RGBLED_NUM 4 -# define RGBLIGHT_HUE_STEP 16 -# define RGBLIGHT_SAT_STEP 16 -# define RGBLIGHT_VAL_STEP 16 -# 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 */ - /*== all animations enable ==*/ -# define RGBLIGHT_ANIMATIONS +# define RGBLED_NUM 4 +# define RGBLIGHT_HUE_STEP 16 +# define RGBLIGHT_SAT_STEP 16 +# define RGBLIGHT_VAL_STEP 16 +# 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 */ +/*== all animations enable ==*/ +# define RGBLIGHT_ANIMATIONS /*== or choose animations ==*/ //# define RGBLIGHT_EFFECT_BREATHING //# define RGBLIGHT_EFFECT_RAINBOW_MOOD From 78a3f43c08ea61be2b4f5d51db95630c4658b2be Mon Sep 17 00:00:00 2001 From: Trent Hoh Date: Thu, 22 Jul 2021 16:11:11 +0800 Subject: [PATCH 055/328] [Keyboard] Ymd40v2new layouts and fixed per-switch backlight (#13622) --- keyboards/ymdk/ymd40/v2/config.h | 2 +- keyboards/ymdk/ymd40/v2/info.json | 216 ++++++++++++++++++++++++++++++ keyboards/ymdk/ymd40/v2/v2.h | 48 +++++++ 3 files changed, 265 insertions(+), 1 deletion(-) diff --git a/keyboards/ymdk/ymd40/v2/config.h b/keyboards/ymdk/ymd40/v2/config.h index 926333f4e66d..0ad5a8471829 100644 --- a/keyboards/ymdk/ymd40/v2/config.h +++ b/keyboards/ymdk/ymd40/v2/config.h @@ -44,7 +44,7 @@ #define DIODE_DIRECTION COL2ROW -#define BACKLIGHT_PIN B6 +#define BACKLIGHT_PIN B7 #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 diff --git a/keyboards/ymdk/ymd40/v2/info.json b/keyboards/ymdk/ymd40/v2/info.json index 7bb677e209cb..bf8ca657e6cd 100644 --- a/keyboards/ymdk/ymd40/v2/info.json +++ b/keyboards/ymdk/ymd40/v2/info.json @@ -59,6 +59,222 @@ {"label":"K3A (B1,B4)", "x":10, "y":3}, {"label":"K3B (B1,D7)", "x":11, "y":3} ] + }, + "LAYOUT_ortho_4x12_2x2u": { + "layout": [ + {"label":"K00 (D0,F1)", "x":0, "y":0}, + {"label":"K01 (D0,F0)", "x":1, "y":0}, + {"label":"K02 (D0,B0)", "x":2, "y":0}, + {"label":"K03 (D0,C7)", "x":3, "y":0}, + {"label":"K04 (D0,F4)", "x":4, "y":0}, + {"label":"K05 (D0,F5)", "x":5, "y":0}, + {"label":"K06 (D0,F6)", "x":6, "y":0}, + {"label":"K07 (D0,F7)", "x":7, "y":0}, + {"label":"K08 (D0,D4)", "x":8, "y":0}, + {"label":"K09 (D0,D6)", "x":9, "y":0}, + {"label":"K0A (D0,B4)", "x":10, "y":0}, + {"label":"K0B (D0,D7)", "x":11, "y":0}, + + {"label":"K10 (B3,F1)", "x":0, "y":1}, + {"label":"K11 (B3,F0)", "x":1, "y":1}, + {"label":"K12 (B3,B0)", "x":2, "y":1}, + {"label":"K13 (B3,C7)", "x":3, "y":1}, + {"label":"K14 (B3,F4)", "x":4, "y":1}, + {"label":"K15 (B3,F5)", "x":5, "y":1}, + {"label":"K16 (B3,F6)", "x":6, "y":1}, + {"label":"K17 (B3,F7)", "x":7, "y":1}, + {"label":"K18 (B3,D4)", "x":8, "y":1}, + {"label":"K19 (B3,D6)", "x":9, "y":1}, + {"label":"K1A (B3,B4)", "x":10, "y":1}, + {"label":"K1B (B3,D7)", "x":11, "y":1}, + + {"label":"K20 (B2,F1)", "x":0, "y":2}, + {"label":"K21 (B2,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B0)", "x":2, "y":2}, + {"label":"K23 (B2,C7)", "x":3, "y":2}, + {"label":"K24 (B2,F4)", "x":4, "y":2}, + {"label":"K25 (B2,F5)", "x":5, "y":2}, + {"label":"K26 (B2,F6)", "x":6, "y":2}, + {"label":"K27 (B2,F7)", "x":7, "y":2}, + {"label":"K28 (B2,D4)", "x":8, "y":2}, + {"label":"K29 (B2,D6)", "x":9, "y":2}, + {"label":"K2A (B2,B4)", "x":10, "y":2}, + {"label":"K2B (B2,D7)", "x":11, "y":2}, + + {"label":"K30 (B1,F1)", "x":0, "y":3}, + {"label":"K31 (B1,F0)", "x":1, "y":3}, + {"label":"K32 (B1,B0)", "x":2, "y":3}, + {"label":"K33 (B1,C7)", "x":3, "y":3}, + {"label":"K34 (B1,F4)", "x":4, "y":3, "w":2}, + {"label":"K37 (B1,F7)", "x":6, "y":3, "w":2}, + {"label":"K38 (B1,D4)", "x":8, "y":3}, + {"label":"K39 (B1,D6)", "x":9, "y":3}, + {"label":"K3A (B1,B4)", "x":10, "y":3}, + {"label":"K3B (B1,D7)", "x":11, "y":3} + ] + }, + "LAYOUT_ortho_4x12_1x2uR": { + "layout": [ + {"label":"K00 (D0,F1)", "x":0, "y":0}, + {"label":"K01 (D0,F0)", "x":1, "y":0}, + {"label":"K02 (D0,B0)", "x":2, "y":0}, + {"label":"K03 (D0,C7)", "x":3, "y":0}, + {"label":"K04 (D0,F4)", "x":4, "y":0}, + {"label":"K05 (D0,F5)", "x":5, "y":0}, + {"label":"K06 (D0,F6)", "x":6, "y":0}, + {"label":"K07 (D0,F7)", "x":7, "y":0}, + {"label":"K08 (D0,D4)", "x":8, "y":0}, + {"label":"K09 (D0,D6)", "x":9, "y":0}, + {"label":"K0A (D0,B4)", "x":10, "y":0}, + {"label":"K0B (D0,D7)", "x":11, "y":0}, + + {"label":"K10 (B3,F1)", "x":0, "y":1}, + {"label":"K11 (B3,F0)", "x":1, "y":1}, + {"label":"K12 (B3,B0)", "x":2, "y":1}, + {"label":"K13 (B3,C7)", "x":3, "y":1}, + {"label":"K14 (B3,F4)", "x":4, "y":1}, + {"label":"K15 (B3,F5)", "x":5, "y":1}, + {"label":"K16 (B3,F6)", "x":6, "y":1}, + {"label":"K17 (B3,F7)", "x":7, "y":1}, + {"label":"K18 (B3,D4)", "x":8, "y":1}, + {"label":"K19 (B3,D6)", "x":9, "y":1}, + {"label":"K1A (B3,B4)", "x":10, "y":1}, + {"label":"K1B (B3,D7)", "x":11, "y":1}, + + {"label":"K20 (B2,F1)", "x":0, "y":2}, + {"label":"K21 (B2,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B0)", "x":2, "y":2}, + {"label":"K23 (B2,C7)", "x":3, "y":2}, + {"label":"K24 (B2,F4)", "x":4, "y":2}, + {"label":"K25 (B2,F5)", "x":5, "y":2}, + {"label":"K26 (B2,F6)", "x":6, "y":2}, + {"label":"K27 (B2,F7)", "x":7, "y":2}, + {"label":"K28 (B2,D4)", "x":8, "y":2}, + {"label":"K29 (B2,D6)", "x":9, "y":2}, + {"label":"K2A (B2,B4)", "x":10, "y":2}, + {"label":"K2B (B2,D7)", "x":11, "y":2}, + + {"label":"K30 (B1,F1)", "x":0, "y":3}, + {"label":"K31 (B1,F0)", "x":1, "y":3}, + {"label":"K32 (B1,B0)", "x":2, "y":3}, + {"label":"K33 (B1,C7)", "x":3, "y":3}, + {"label":"K34 (B1,F4)", "x":4, "y":3}, + {"label":"K35 (B1,F5)", "x":5, "y":3}, + {"label":"K37 (B1,F7)", "x":6, "y":3, "w":2}, + {"label":"K38 (B1,D4)", "x":8, "y":3}, + {"label":"K39 (B1,D6)", "x":9, "y":3}, + {"label":"K3A (B1,B4)", "x":10, "y":3}, + {"label":"K3B (B1,D7)", "x":11, "y":3} + ] + }, + "LAYOUT_ortho_4x12_1x2uL": { + "layout": [ + {"label":"K00 (D0,F1)", "x":0, "y":0}, + {"label":"K01 (D0,F0)", "x":1, "y":0}, + {"label":"K02 (D0,B0)", "x":2, "y":0}, + {"label":"K03 (D0,C7)", "x":3, "y":0}, + {"label":"K04 (D0,F4)", "x":4, "y":0}, + {"label":"K05 (D0,F5)", "x":5, "y":0}, + {"label":"K06 (D0,F6)", "x":6, "y":0}, + {"label":"K07 (D0,F7)", "x":7, "y":0}, + {"label":"K08 (D0,D4)", "x":8, "y":0}, + {"label":"K09 (D0,D6)", "x":9, "y":0}, + {"label":"K0A (D0,B4)", "x":10, "y":0}, + {"label":"K0B (D0,D7)", "x":11, "y":0}, + + {"label":"K10 (B3,F1)", "x":0, "y":1}, + {"label":"K11 (B3,F0)", "x":1, "y":1}, + {"label":"K12 (B3,B0)", "x":2, "y":1}, + {"label":"K13 (B3,C7)", "x":3, "y":1}, + {"label":"K14 (B3,F4)", "x":4, "y":1}, + {"label":"K15 (B3,F5)", "x":5, "y":1}, + {"label":"K16 (B3,F6)", "x":6, "y":1}, + {"label":"K17 (B3,F7)", "x":7, "y":1}, + {"label":"K18 (B3,D4)", "x":8, "y":1}, + {"label":"K19 (B3,D6)", "x":9, "y":1}, + {"label":"K1A (B3,B4)", "x":10, "y":1}, + {"label":"K1B (B3,D7)", "x":11, "y":1}, + + {"label":"K20 (B2,F1)", "x":0, "y":2}, + {"label":"K21 (B2,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B0)", "x":2, "y":2}, + {"label":"K23 (B2,C7)", "x":3, "y":2}, + {"label":"K24 (B2,F4)", "x":4, "y":2}, + {"label":"K25 (B2,F5)", "x":5, "y":2}, + {"label":"K26 (B2,F6)", "x":6, "y":2}, + {"label":"K27 (B2,F7)", "x":7, "y":2}, + {"label":"K28 (B2,D4)", "x":8, "y":2}, + {"label":"K29 (B2,D6)", "x":9, "y":2}, + {"label":"K2A (B2,B4)", "x":10, "y":2}, + {"label":"K2B (B2,D7)", "x":11, "y":2}, + + {"label":"K30 (B1,F1)", "x":0, "y":3}, + {"label":"K31 (B1,F0)", "x":1, "y":3}, + {"label":"K32 (B1,B0)", "x":2, "y":3}, + {"label":"K33 (B1,C7)", "x":3, "y":3}, + {"label":"K34 (B1,F4)", "x":4, "y":3, "w":2}, + {"label":"K36 (B1,F6)", "x":6, "y":3}, + {"label":"K37 (B1,F7)", "x":7, "y":3}, + {"label":"K38 (B1,D4)", "x":8, "y":3}, + {"label":"K39 (B1,D6)", "x":9, "y":3}, + {"label":"K3A (B1,B4)", "x":10, "y":3}, + {"label":"K3B (B1,D7)", "x":11, "y":3} + ] + }, + "LAYOUT_ortho_4x12_1x2uC": { + "layout": [ + {"label":"K00 (D0,F1)", "x":0, "y":0}, + {"label":"K01 (D0,F0)", "x":1, "y":0}, + {"label":"K02 (D0,B0)", "x":2, "y":0}, + {"label":"K03 (D0,C7)", "x":3, "y":0}, + {"label":"K04 (D0,F4)", "x":4, "y":0}, + {"label":"K05 (D0,F5)", "x":5, "y":0}, + {"label":"K06 (D0,F6)", "x":6, "y":0}, + {"label":"K07 (D0,F7)", "x":7, "y":0}, + {"label":"K08 (D0,D4)", "x":8, "y":0}, + {"label":"K09 (D0,D6)", "x":9, "y":0}, + {"label":"K0A (D0,B4)", "x":10, "y":0}, + {"label":"K0B (D0,D7)", "x":11, "y":0}, + + {"label":"K10 (B3,F1)", "x":0, "y":1}, + {"label":"K11 (B3,F0)", "x":1, "y":1}, + {"label":"K12 (B3,B0)", "x":2, "y":1}, + {"label":"K13 (B3,C7)", "x":3, "y":1}, + {"label":"K14 (B3,F4)", "x":4, "y":1}, + {"label":"K15 (B3,F5)", "x":5, "y":1}, + {"label":"K16 (B3,F6)", "x":6, "y":1}, + {"label":"K17 (B3,F7)", "x":7, "y":1}, + {"label":"K18 (B3,D4)", "x":8, "y":1}, + {"label":"K19 (B3,D6)", "x":9, "y":1}, + {"label":"K1A (B3,B4)", "x":10, "y":1}, + {"label":"K1B (B3,D7)", "x":11, "y":1}, + + {"label":"K20 (B2,F1)", "x":0, "y":2}, + {"label":"K21 (B2,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B0)", "x":2, "y":2}, + {"label":"K23 (B2,C7)", "x":3, "y":2}, + {"label":"K24 (B2,F4)", "x":4, "y":2}, + {"label":"K25 (B2,F5)", "x":5, "y":2}, + {"label":"K26 (B2,F6)", "x":6, "y":2}, + {"label":"K27 (B2,F7)", "x":7, "y":2}, + {"label":"K28 (B2,D4)", "x":8, "y":2}, + {"label":"K29 (B2,D6)", "x":9, "y":2}, + {"label":"K2A (B2,B4)", "x":10, "y":2}, + {"label":"K2B (B2,D7)", "x":11, "y":2}, + + {"label":"K30 (B1,F1)", "x":0, "y":3}, + {"label":"K31 (B1,F0)", "x":1, "y":3}, + {"label":"K32 (B1,B0)", "x":2, "y":3}, + {"label":"K33 (B1,C7)", "x":3, "y":3}, + {"label":"K34 (B1,F4)", "x":4, "y":3}, + {"label":"K35 (B1,F5)", "x":5, "y":3, "w":2}, + {"label":"K37 (B1,F7)", "x":7, "y":3}, + {"label":"K38 (B1,D4)", "x":8, "y":3}, + {"label":"K39 (B1,D6)", "x":9, "y":3}, + {"label":"K3A (B1,B4)", "x":10, "y":3}, + {"label":"K3B (B1,D7)", "x":11, "y":3} + ] } + } } diff --git a/keyboards/ymdk/ymd40/v2/v2.h b/keyboards/ymdk/ymd40/v2/v2.h index 6d524e07356f..d28f6d591aa4 100644 --- a/keyboards/ymdk/ymd40/v2/v2.h +++ b/keyboards/ymdk/ymd40/v2/v2.h @@ -29,3 +29,51 @@ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B }, \ } + +#define LAYOUT_ortho_4x12_2x2u( \ + 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, K37, K38, K39, K3A, K3B \ +) { \ + { 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, KC_NO, KC_NO, K37, K38, K39, K3A, K3B }, \ +} + +#define LAYOUT_ortho_4x12_1x2uR( \ + 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, K37, K38, K39, K3A, K3B \ +) { \ + { 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, KC_NO, K37, K38, K39, K3A, K3B }, \ +} + +#define LAYOUT_ortho_4x12_1x2uL( \ + 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, K36, K37, K38, K39, K3A, K3B \ +) { \ + { 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, KC_NO, K36, K37, K38, K39, K3A, K3B }, \ +} + +#define LAYOUT_ortho_4x12_1x2uC( \ + 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, K37, K38, K39, K3A, K3B \ +) { \ + { 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, KC_NO, K37, K38, K39, K3A, K3B }, \ +} From 58abdfc834a8918f4b2ecb48d2d52d6688c66ec4 Mon Sep 17 00:00:00 2001 From: "Md. Mashur Shalehin Sakib" <41992136+h0oni@users.noreply.github.com> Date: Thu, 22 Jul 2021 22:35:28 +0600 Subject: [PATCH 056/328] [Keyboard] Fixing info.json for h0oni/hotduck (#13640) --- keyboards/h0oni/hotduck/info.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/keyboards/h0oni/hotduck/info.json b/keyboards/h0oni/hotduck/info.json index e25703da2e25..1239a77e6eee 100644 --- a/keyboards/h0oni/hotduck/info.json +++ b/keyboards/h0oni/hotduck/info.json @@ -2,8 +2,8 @@ "keyboard_name": "hotDuck", "url": "", "maintainer": "h0oni", - "width": 10, - "height": 7, + "width": 17.25, + "height": 4, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, @@ -18,9 +18,9 @@ {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, - {"label":"+", "x":12, "y":0}, - {"label":"Bksp", "x":13, "y":0}, - {"label":"Menu", "x":15.25, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0, "w":2}, + {"label":"Menu", "x":15.25, "y":0}, {"label":"Home", "x":16.25, "y":0}, {"label":"PgUp", "x":17.25, "y":0}, @@ -37,10 +37,10 @@ {"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":"Del", "x":15.25, "y":0}, - {"label":"End", "x":16.25, "y":0}, - {"label":"PgDn", "x":17.25, "y":0}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"Del", "x":15.25, "y":1}, + {"label":"End", "x":16.25, "y":1}, + {"label":"PgDn", "x":17.25, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, @@ -66,9 +66,9 @@ {"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}, - {"label":"\u2191", "x":16.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3,"w":2.75}, + {"label":"\u2191", "x":16.25, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Alt", "x":1.25, "y":4, "w":1.25}, From 95a7c2282466252641a1d0bb1b15d50752193f4b Mon Sep 17 00:00:00 2001 From: Tran Kim Tung Date: Fri, 23 Jul 2021 00:39:08 +0800 Subject: [PATCH 057/328] [Keyboard] adds new revision: dztech/dz60rgb/v2_1 (#13636) --- keyboards/dztech/dz60rgb/readme.md | 5 +- keyboards/dztech/dz60rgb/v2_1/config.h | 79 ++++++++++++++++++++++++++ keyboards/dztech/dz60rgb/v2_1/rules.mk | 26 +++++++++ 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 keyboards/dztech/dz60rgb/v2_1/config.h create mode 100644 keyboards/dztech/dz60rgb/v2_1/rules.mk diff --git a/keyboards/dztech/dz60rgb/readme.md b/keyboards/dztech/dz60rgb/readme.md index 1b2eb6f85ff9..6accc60765f3 100644 --- a/keyboards/dztech/dz60rgb/readme.md +++ b/keyboards/dztech/dz60rgb/readme.md @@ -8,14 +8,17 @@ A hotswap 60% RGB keyboard. * Hardware Supported: DZtech DZ60RGB V1 and V2 * Hardware Availability: [KBDfans](https://kbdfans.com/) -There are two versions of the DZ60RGB. Please use the appropriate firmware for your board. +There are three versions of the DZ60RGB. Please use the appropriate firmware for your board. * V1: STM32F303 (Arm), takes .bin files * V2: ATmega32U4 (AVR), takes .hex files +* V2.1: ATmega32U4 (AVR), takes .bin files [Flash Manual](https://docs.google.com/document/d/111qx6Qec4JqtIhWaZlMND-VuRnFtn9a-gJaHN8fsL7M/edit?usp=sharing) + Started shipping in June 2021 as a slightly modified version of v2. Make example for this keyboard (after setting up your build environment): make dztech/dz60rgb/v1:default # Arm (STM32F303) make dztech/dz60rgb/v2:default # AVR (ATmega32U4) + make dztech/dz60rgb/v2_1:default # AVR (ATmega32U4) 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). diff --git a/keyboards/dztech/dz60rgb/v2_1/config.h b/keyboards/dztech/dz60rgb/v2_1/config.h new file mode 100644 index 000000000000..6928ad50ad25 --- /dev/null +++ b/keyboards/dztech/dz60rgb/v2_1/config.h @@ -0,0 +1,79 @@ +/* Copyright 2021 trankimtung + * + * 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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x445A +#define PRODUCT_ID 0x1121 +#define DEVICE_VER 0x0003 +#define MANUFACTURER DZTECH +#define PRODUCT DZ60RGB + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * 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 { F5, F4, F1, B3, B2 } +#define MATRIX_COL_PINS { C7, F7, F6, F0, B0, B1, B4, D7, D6, D4, D5, D3, D2, B7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 3 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#ifdef RGB_MATRIX_ENABLE +# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define DISABLE_RGB_MATRIX_BAND_SAT +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define DISABLE_RGB_MATRIX_SPLASH +# define DISABLE_RGB_MATRIX_MULTISPLASH +# define DISABLE_RGB_MATRIX_SOLID_SPLASH +# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +# define DISABLE_RGB_MATRIX_DIGITAL_RAIN +# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_2 0b1010000 // this is here for compliancy reasons. +# define DRIVER_COUNT 2 +# define DRIVER_1_LED_TOTAL 63 +# define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#endif diff --git a/keyboards/dztech/dz60rgb/v2_1/rules.mk b/keyboards/dztech/dz60rgb/v2_1/rules.mk new file mode 100644 index 000000000000..7fdadb18dcee --- /dev/null +++ b/keyboards/dztech/dz60rgb/v2_1/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = lufa-ms + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3733 +NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in +LTO_ENABLE = yes From 5d7f2823c947264d3ff3bb4f057f8e050d6b4af1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 22 Jul 2021 23:01:19 +0100 Subject: [PATCH 058/328] Implement GPIO abstraction for atsam (#13567) * Implement GPIO abstraction for atsam * Convert Drop boards to normal matrix config * Work round pin conflicts and matrix delay --- keyboards/massdrop/alt/alt.c | 21 +++++++ keyboards/massdrop/alt/config.h | 19 +++--- keyboards/massdrop/alt/matrix.c | 76 ---------------------- keyboards/massdrop/alt/rules.mk | 3 - keyboards/massdrop/ctrl/config.h | 18 +++--- keyboards/massdrop/ctrl/ctrl.c | 21 +++++++ keyboards/massdrop/ctrl/matrix.c | 76 ---------------------- keyboards/massdrop/ctrl/rules.mk | 3 - tmk_core/common/arm_atsam/atomic_util.h | 37 +++++++++++ tmk_core/common/arm_atsam/gpio.h | 71 +++++++++++++++++++++ tmk_core/common/arm_atsam/pin_defs.h | 84 +++++++++++++++++++++++++ 11 files changed, 255 insertions(+), 174 deletions(-) create mode 100644 keyboards/massdrop/alt/alt.c delete mode 100644 keyboards/massdrop/alt/matrix.c create mode 100644 keyboards/massdrop/ctrl/ctrl.c delete mode 100644 keyboards/massdrop/ctrl/matrix.c create mode 100644 tmk_core/common/arm_atsam/atomic_util.h create mode 100644 tmk_core/common/arm_atsam/gpio.h create mode 100644 tmk_core/common/arm_atsam/pin_defs.h diff --git a/keyboards/massdrop/alt/alt.c b/keyboards/massdrop/alt/alt.c new file mode 100644 index 000000000000..81dd66b3c1bc --- /dev/null +++ b/keyboards/massdrop/alt/alt.c @@ -0,0 +1,21 @@ +/* +Copyright 2021 Massdrop Inc. + +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 "alt.h" + +/* Temporary solution for matrix delay */ +void matrix_output_select_delay(void) { matrix_io_delay(); } +void matrix_output_unselect_delay(void) { } diff --git a/keyboards/massdrop/alt/config.h b/keyboards/massdrop/alt/config.h index d8389fc0093e..d28094c49239 100644 --- a/keyboards/massdrop/alt/config.h +++ b/keyboards/massdrop/alt/config.h @@ -32,18 +32,21 @@ along with this program. If not, see . #define MATRIX_ROWS 5 #define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { A00, A01, A02, A03, A04 } +#define MATRIX_COL_PINS { B04, B05, B06, B07, B08, B09, B10, B11, B12, B13, A05, A06, A07, A10, A11 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Temporary solution for matrix delay */ +#define IGNORE_ATOMIC_BLOCK + /* MCU Port name definitions */ #define PA 0 #define PB 1 -/* Port and Pin definition of key row hardware configuration */ -#define MATRIX_ROW_PORTS PA, PA, PA, PA, PA -#define MATRIX_ROW_PINS 0, 1, 2, 3, 4 - -/* Port and Pin definition of key column hardware configuration */ -#define MATRIX_COL_PORTS PB, PB, PB, PB, PB, PB, PB, PB, PB, PB, PA, PA, PA, PA, PA -#define MATRIX_COL_PINS 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 6, 7, 10, 11 - /* This Shift Register expands available hardware output lines to control additional peripherals */ /* It uses four lines from the MCU to provide 16 output lines */ /* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */ diff --git a/keyboards/massdrop/alt/matrix.c b/keyboards/massdrop/alt/matrix.c deleted file mode 100644 index 181f223e40b3..000000000000 --- a/keyboards/massdrop/alt/matrix.c +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2018 Massdrop Inc. - -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 "alt.h" -#include "d51_util.h" - -const uint8_t row_ports[] = {MATRIX_ROW_PORTS}; -const uint8_t row_pins[] = {MATRIX_ROW_PINS}; -const uint8_t col_ports[] = {MATRIX_COL_PORTS}; -const uint8_t col_pins[] = {MATRIX_COL_PINS}; -uint32_t row_masks[2]; // NOTE: If more than PA PB used in the future, adjust code to accommodate - -void matrix_init_custom(void) { - row_masks[PA] = 0; - row_masks[PB] = 0; - - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - PORT->Group[row_ports[row]].DIRCLR.reg = 1 << row_pins[row]; // Input - PORT->Group[row_ports[row]].OUTCLR.reg = 1 << row_pins[row]; // Low - PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.INEN = 1; // Input Enable, - PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.PULLEN = 1; // Pull Enable - row_masks[row_ports[row]] |= 1 << row_pins[row]; // Add pin to proper row mask - } - - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - PORT->Group[col_ports[col]].DIRSET.reg = 1 << col_pins[col]; // Output - PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; // Low - } -} - -bool matrix_scan_custom(matrix_row_t current_matrix[]) { - matrix_row_t raw[MATRIX_ROWS] = {0}; - uint32_t scans[2]; // PA PB - - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - PORT->Group[col_ports[col]].OUTSET.reg = 1 << col_pins[col]; // Set col output - - matrix_io_delay(); // Delay for output - - scans[PA] = PORT->Group[PA].IN.reg & row_masks[PA]; // Read PA row pins data - scans[PB] = PORT->Group[PB].IN.reg & row_masks[PB]; // Read PB row pins data - - PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; // Clear col output - - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - // Move scan bits from scans array into proper row bit locations - if (scans[row_ports[row]] & (1 << row_pins[row])) { - raw[row] |= 1 << col; - } - } - } - - bool changed = false; - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - if (current_matrix[row] != raw[row]) { - current_matrix[row] = raw[row]; - changed = true; - } - } - - return changed; -} diff --git a/keyboards/massdrop/alt/rules.mk b/keyboards/massdrop/alt/rules.mk index 86403d830d7f..3921d57ab709 100644 --- a/keyboards/massdrop/alt/rules.mk +++ b/keyboards/massdrop/alt/rules.mk @@ -1,13 +1,10 @@ # project specific files -SRC = matrix.c SRC += config_led.c #For platform and packs ARM_ATSAM = SAMD51J18A MCU = cortex-m4 -CUSTOM_MATRIX = lite - # Build Options # comment out to disable the options. # diff --git a/keyboards/massdrop/ctrl/config.h b/keyboards/massdrop/ctrl/config.h index 215a2e1b19b0..3dbd9b887700 100644 --- a/keyboards/massdrop/ctrl/config.h +++ b/keyboards/massdrop/ctrl/config.h @@ -32,18 +32,20 @@ along with this program. If not, see . #define MATRIX_ROWS 11 #define MATRIX_COLS 8 +#define MATRIX_ROW_PINS { B04, B05, B06, B07, B08, B09, A10, A11, B10, B11, B12 } +#define MATRIX_COL_PINS { A00, A01, A02, A03, A04, A05, A06, A07 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Temporary solution for matrix delay */ +#define IGNORE_ATOMIC_BLOCK + /* MCU Port name definitions */ #define PA 0 #define PB 1 -/* Port and Pin definition of key row hardware configuration */ -#define MATRIX_ROW_PORTS PB, PB, PB, PB, PB, PB, PA, PA, PB, PB, PB -#define MATRIX_ROW_PINS 4, 5, 6, 7, 8, 9, 10, 11, 10, 11, 12 - -/* Port and Pin definition of key column hardware configuration */ -#define MATRIX_COL_PORTS PA, PA, PA, PA, PA, PA, PA, PA -#define MATRIX_COL_PINS 0, 1, 2, 3, 4, 5, 6, 7 - /* This Shift Register expands available hardware output lines to control additional peripherals */ /* It uses four lines from the MCU to provide 16 output lines */ /* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */ diff --git a/keyboards/massdrop/ctrl/ctrl.c b/keyboards/massdrop/ctrl/ctrl.c new file mode 100644 index 000000000000..b50f1cb59f3a --- /dev/null +++ b/keyboards/massdrop/ctrl/ctrl.c @@ -0,0 +1,21 @@ +/* +Copyright 2021 Massdrop Inc. + +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 "ctrl.h" + +/* Temporary solution for matrix delay */ +void matrix_output_select_delay(void) { matrix_io_delay(); } +void matrix_output_unselect_delay(void) { } diff --git a/keyboards/massdrop/ctrl/matrix.c b/keyboards/massdrop/ctrl/matrix.c deleted file mode 100644 index a542d18c297c..000000000000 --- a/keyboards/massdrop/ctrl/matrix.c +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2018 Massdrop Inc. - -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 "ctrl.h" -#include "d51_util.h" - -const uint8_t row_ports[] = {MATRIX_ROW_PORTS}; -const uint8_t row_pins[] = {MATRIX_ROW_PINS}; -const uint8_t col_ports[] = {MATRIX_COL_PORTS}; -const uint8_t col_pins[] = {MATRIX_COL_PINS}; -uint32_t row_masks[2]; // NOTE: If more than PA PB used in the future, adjust code to accommodate - -void matrix_init_custom(void) { - row_masks[PA] = 0; - row_masks[PB] = 0; - - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - PORT->Group[row_ports[row]].DIRCLR.reg = 1 << row_pins[row]; // Input - PORT->Group[row_ports[row]].OUTCLR.reg = 1 << row_pins[row]; // Low - PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.INEN = 1; // Input Enable, - PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.PULLEN = 1; // Pull Enable - row_masks[row_ports[row]] |= 1 << row_pins[row]; // Add pin to proper row mask - } - - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - PORT->Group[col_ports[col]].DIRSET.reg = 1 << col_pins[col]; // Output - PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; // Low - } -} - -bool matrix_scan_custom(matrix_row_t current_matrix[]) { - matrix_row_t raw[MATRIX_ROWS] = {0}; - uint32_t scans[2]; // PA PB - - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - PORT->Group[col_ports[col]].OUTSET.reg = 1 << col_pins[col]; // Set col output - - matrix_io_delay(); // Delay for output - - scans[PA] = PORT->Group[PA].IN.reg & row_masks[PA]; // Read PA row pins data - scans[PB] = PORT->Group[PB].IN.reg & row_masks[PB]; // Read PB row pins data - - PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; // Clear col output - - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - // Move scan bits from scans array into proper row bit locations - if (scans[row_ports[row]] & (1 << row_pins[row])) { - raw[row] |= 1 << col; - } - } - } - - bool changed = false; - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - if (current_matrix[row] != raw[row]) { - current_matrix[row] = raw[row]; - changed = true; - } - } - - return changed; -} diff --git a/keyboards/massdrop/ctrl/rules.mk b/keyboards/massdrop/ctrl/rules.mk index f58042b75f5c..ad79bbf91804 100644 --- a/keyboards/massdrop/ctrl/rules.mk +++ b/keyboards/massdrop/ctrl/rules.mk @@ -1,13 +1,10 @@ # project specific files -SRC = matrix.c SRC += config_led.c #For platform and packs ARM_ATSAM = SAMD51J18A MCU = cortex-m4 -CUSTOM_MATRIX = lite - # Build Options # comment out to disable the options. # diff --git a/tmk_core/common/arm_atsam/atomic_util.h b/tmk_core/common/arm_atsam/atomic_util.h new file mode 100644 index 000000000000..848542d23a04 --- /dev/null +++ b/tmk_core/common/arm_atsam/atomic_util.h @@ -0,0 +1,37 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "samd51j18a.h" + +static __inline__ uint8_t __interrupt_disable__(void) { + __disable_irq(); + + return 1; +} + +static __inline__ void __interrupt_enable__(const uint8_t *__s) { + __enable_irq(); + + __asm__ volatile("" ::: "memory"); + (void)__s; +} + +#define ATOMIC_BLOCK(type) for (type, __ToDo = __interrupt_disable__(); __ToDo; __ToDo = 0) +#define ATOMIC_FORCEON uint8_t sreg_save __attribute__((__cleanup__(__interrupt_enable__))) = 0 + +#define ATOMIC_BLOCK_RESTORESTATE _Static_assert(0, "ATOMIC_BLOCK_RESTORESTATE not implemented") +#define ATOMIC_BLOCK_FORCEON ATOMIC_BLOCK(ATOMIC_FORCEON) diff --git a/tmk_core/common/arm_atsam/gpio.h b/tmk_core/common/arm_atsam/gpio.h new file mode 100644 index 000000000000..c2d5a30889b0 --- /dev/null +++ b/tmk_core/common/arm_atsam/gpio.h @@ -0,0 +1,71 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "stdint.h" +#include "samd51j18a.h" + +#include "pin_defs.h" + +typedef uint8_t pin_t; + +#define SAMD_PORT(pin) ((pin & 0x20) >> 5) +#define SAMD_PIN(pin) (pin & 0x1f) +#define SAMD_PIN_MASK(pin) (1 << (pin & 0x1f)) + +#define setPinInput(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.INEN = 1; \ + PORT->Group[SAMD_PORT(pin)].DIRCLR.reg = SAMD_PIN_MASK(pin); \ + } while (0) + +#define setPinInputHigh(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].DIRCLR.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].OUTSET.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.INEN = 1; \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.PULLEN = 1; \ + } while (0) + +#define setPinInputLow(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].DIRCLR.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].OUTCLR.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.INEN = 1; \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.PULLEN = 1; \ + } while (0) + +#define setPinOutput(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].DIRSET.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].OUTCLR.reg = SAMD_PIN_MASK(pin); \ + } while (0) + +#define writePinHigh(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].OUTSET.reg = SAMD_PIN_MASK(pin); \ + } while (0) + +#define writePinLow(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].OUTCLR.reg = SAMD_PIN_MASK(pin); \ + } while (0) + +#define writePin(pin, level) ((level) ? (writePinHigh(pin)) : (writePinLow(pin))) + +#define readPin(pin) ((PORT->Group[SAMD_PORT(pin)].IN.reg & SAMD_PIN_MASK(pin)) != 0) + +#define togglePin(pin) (PORT->Group[SAMD_PORT(pin)].OUTTGL.reg = SAMD_PIN_MASK(pin)) diff --git a/tmk_core/common/arm_atsam/pin_defs.h b/tmk_core/common/arm_atsam/pin_defs.h new file mode 100644 index 000000000000..5b50b2391003 --- /dev/null +++ b/tmk_core/common/arm_atsam/pin_defs.h @@ -0,0 +1,84 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "samd51j18a.h" + +#define A00 PIN_PA00 +#define A01 PIN_PA01 +#define A02 PIN_PA02 +#define A03 PIN_PA03 +#define A04 PIN_PA04 +#define A05 PIN_PA05 +#define A06 PIN_PA06 +#define A07 PIN_PA07 +#define A08 PIN_PA08 +#define A09 PIN_PA09 +#define A10 PIN_PA10 +#define A11 PIN_PA11 +#define A12 PIN_PA12 +#define A13 PIN_PA13 +#define A14 PIN_PA14 +#define A15 PIN_PA15 +#define A16 PIN_PA16 +#define A17 PIN_PA17 +#define A18 PIN_PA18 +#define A19 PIN_PA19 +#define A20 PIN_PA20 +#define A21 PIN_PA21 +#define A22 PIN_PA22 +#define A23 PIN_PA23 +#define A24 PIN_PA24 +#define A25 PIN_PA25 +#define A26 PIN_PA26 +#define A27 PIN_PA27 +#define A28 PIN_PA28 +#define A29 PIN_PA29 +#define A30 PIN_PA30 +#define A31 PIN_PA31 + +#define B00 PIN_PB00 +#define B01 PIN_PB01 +#define B02 PIN_PB02 +#define B03 PIN_PB03 +#define B04 PIN_PB04 +#define B05 PIN_PB05 +#define B06 PIN_PB06 +#define B07 PIN_PB07 +#define B08 PIN_PB08 +#define B09 PIN_PB09 +#define B10 PIN_PB10 +#define B11 PIN_PB11 +#define B12 PIN_PB12 +#define B13 PIN_PB13 +#define B14 PIN_PB14 +#define B15 PIN_PB15 +#define B16 PIN_PB16 +#define B17 PIN_PB17 +#define B18 PIN_PB18 +#define B19 PIN_PB19 +#define B20 PIN_PB20 +#define B21 PIN_PB21 +#define B22 PIN_PB22 +#define B23 PIN_PB23 +#define B24 PIN_PB24 +#define B25 PIN_PB25 +#define B26 PIN_PB26 +#define B27 PIN_PB27 +#define B28 PIN_PB28 +#define B29 PIN_PB29 +#define B30 PIN_PB30 +#define B31 PIN_PB31 From 79c8f035ccfcc7d0eba1aa7bc96ad5e0e78ddcd4 Mon Sep 17 00:00:00 2001 From: KnoblesseOblige <63174954+KnoblesseOblige@users.noreply.github.com> Date: Thu, 22 Jul 2021 20:47:32 -0500 Subject: [PATCH 059/328] [Keyboard] Added Crin keyboard (#13630) Co-authored-by: Ryan --- keyboards/crin/config.h | 38 ++++++++++++ keyboards/crin/crin.c | 18 ++++++ keyboards/crin/crin.h | 78 +++++++++++++++++++++++++ keyboards/crin/info.json | 21 +++++++ keyboards/crin/keymaps/default/keymap.c | 63 ++++++++++++++++++++ keyboards/crin/keymaps/via/keymap.c | 63 ++++++++++++++++++++ keyboards/crin/keymaps/via/rules.mk | 1 + keyboards/crin/readme.md | 20 +++++++ keyboards/crin/rules.mk | 25 ++++++++ 9 files changed, 327 insertions(+) create mode 100644 keyboards/crin/config.h create mode 100644 keyboards/crin/crin.c create mode 100644 keyboards/crin/crin.h create mode 100644 keyboards/crin/info.json create mode 100644 keyboards/crin/keymaps/default/keymap.c create mode 100644 keyboards/crin/keymaps/via/keymap.c create mode 100644 keyboards/crin/keymaps/via/rules.mk create mode 100644 keyboards/crin/readme.md create mode 100644 keyboards/crin/rules.mk diff --git a/keyboards/crin/config.h b/keyboards/crin/config.h new file mode 100644 index 000000000000..4561a05df0ac --- /dev/null +++ b/keyboards/crin/config.h @@ -0,0 +1,38 @@ +/* +Copyright 2020 KnoblesseOblige + +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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6400 +#define PRODUCT_ID 0xCC11 +#define DEVICE_VER 0x0001 + +#define MANUFACTURER Bachoo +#define PRODUCT Crin + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, B9, B8, B7, B6, B5, B4, B3 } +#define MATRIX_ROW_PINS { A9, A8, B15, B14, B13 } +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/crin/crin.c b/keyboards/crin/crin.c new file mode 100644 index 000000000000..dd7d9383083b --- /dev/null +++ b/keyboards/crin/crin.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 KnoblesseOblige + +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 "crin.h" diff --git a/keyboards/crin/crin.h b/keyboards/crin/crin.h new file mode 100644 index 000000000000..3b234c0072bd --- /dev/null +++ b/keyboards/crin/crin.h @@ -0,0 +1,78 @@ +/* +Copyright 2020 KnoblesseOblige + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define kxx KC_NO + +#define LAYOUT_default( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + 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, k3d, k3f, \ + k40, k41, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, k3d, kxx, k3f, kxx }, \ + { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} + +#define LAYOUT_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} + +#define LAYOUT_tsangan( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} + +#define LAYOUT_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} diff --git a/keyboards/crin/info.json b/keyboards/crin/info.json new file mode 100644 index 000000000000..daccb9bbcd08 --- /dev/null +++ b/keyboards/crin/info.json @@ -0,0 +1,21 @@ +{ + "keyboard_name": "Crin", + "url": "https://bachoo.com", + "maintainer": "KnoblesseOblige", + "width": 17, + "height": 5, + "layouts": { + "LAYOUT_default": { + "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}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "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}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "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}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"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}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":16.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}] + }, + "LAYOUT_ansi": { + "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}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "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}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "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}, {"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}, {"x":16.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}] + }, + "LAYOUT_tsangan": { + "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}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "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}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "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}, {"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}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":16.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}] + }, + "LAYOUT_iso": { + "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}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "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}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "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}, {"x":12.75, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"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}, {"x":16.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}] + } + } +} diff --git a/keyboards/crin/keymaps/default/keymap.c b/keyboards/crin/keymaps/default/keymap.c new file mode 100644 index 000000000000..7058b0cafc6d --- /dev/null +++ b/keyboards/crin/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_tsangan( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN2] = LAYOUT_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/crin/keymaps/via/keymap.c b/keyboards/crin/keymaps/via/keymap.c new file mode 100644 index 000000000000..7058b0cafc6d --- /dev/null +++ b/keyboards/crin/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_tsangan( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN2] = LAYOUT_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/crin/keymaps/via/rules.mk b/keyboards/crin/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/crin/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/crin/readme.md b/keyboards/crin/readme.md new file mode 100644 index 000000000000..36a2080c422d --- /dev/null +++ b/keyboards/crin/readme.md @@ -0,0 +1,20 @@ +# Bachoo Crin + +Crin is an F-rowless 65%. + +* Keyboard Maintainer: [KnoblesseOblige](https://github.com/KnoblesseOblige) +* Hardware Supported: STM32F303CBT +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make crin:default:flash + +To enter the bootloader either: + +0. Hold Esc while plugging the PCB in, if BOOTMAGIC lite is enabled. +0. Press the RESET keycode, if programmed on the keymap. +0. Slide the switch just below the reset button to the left and press the reset button. + * Please note that you must slide it back to the right for the PCB to boot QMK again. + +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). diff --git a/keyboards/crin/rules.mk b/keyboards/crin/rules.mk new file mode 100644 index 000000000000..8f7a0fa279e7 --- /dev/null +++ b/keyboards/crin/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F303 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From 270bf7a87a6f76b2ddc246851c226b4e7206299d Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Fri, 23 Jul 2021 03:51:12 +0200 Subject: [PATCH 060/328] [Keyboard] Added Stratos keyboard (#13139) --- keyboards/stratos/config.h | 54 ++ keyboards/stratos/info.json | 608 ++++++++++++++++++ .../stratos/keymaps/ansi_arrows/keymap.c | 33 + .../keymaps/ansi_split_bs_rshift/keymap.c | 33 + keyboards/stratos/keymaps/default/keymap.c | 33 + keyboards/stratos/keymaps/iso/keymap.c | 33 + .../keymaps/iso_split_bs_rshift/keymap.c | 33 + .../stratos/keymaps/iso_tsangan/keymap.c | 33 + keyboards/stratos/keymaps/tsangan/keymap.c | 33 + .../stratos/keymaps/tsangan_hhkb/keymap.c | 33 + keyboards/stratos/keymaps/via/keymap.c | 47 ++ keyboards/stratos/keymaps/via/rules.mk | 2 + keyboards/stratos/readme.md | 21 + keyboards/stratos/rules.mk | 24 + keyboards/stratos/stratos.c | 17 + keyboards/stratos/stratos.h | 147 +++++ 16 files changed, 1184 insertions(+) create mode 100644 keyboards/stratos/config.h create mode 100644 keyboards/stratos/info.json create mode 100644 keyboards/stratos/keymaps/ansi_arrows/keymap.c create mode 100644 keyboards/stratos/keymaps/ansi_split_bs_rshift/keymap.c create mode 100644 keyboards/stratos/keymaps/default/keymap.c create mode 100644 keyboards/stratos/keymaps/iso/keymap.c create mode 100644 keyboards/stratos/keymaps/iso_split_bs_rshift/keymap.c create mode 100644 keyboards/stratos/keymaps/iso_tsangan/keymap.c create mode 100644 keyboards/stratos/keymaps/tsangan/keymap.c create mode 100644 keyboards/stratos/keymaps/tsangan_hhkb/keymap.c create mode 100644 keyboards/stratos/keymaps/via/keymap.c create mode 100644 keyboards/stratos/keymaps/via/rules.mk create mode 100644 keyboards/stratos/readme.md create mode 100644 keyboards/stratos/rules.mk create mode 100644 keyboards/stratos/stratos.c create mode 100644 keyboards/stratos/stratos.h diff --git a/keyboards/stratos/config.h b/keyboards/stratos/config.h new file mode 100644 index 000000000000..09aac207afe4 --- /dev/null +++ b/keyboards/stratos/config.h @@ -0,0 +1,54 @@ +/* +Copyright 2021 kb-elmo + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xD5D0 +#define PRODUCT_ID 0x992D +#define DEVICE_VER 0x0001 +#define MANUFACTURER eggyolk +#define PRODUCT stratos + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { B1, B2, B3, F0, F1 } +#define MATRIX_COL_PINS { F4, F7, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* RGB LEDs */ +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN D2 +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 200 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_ANIMATIONS +#endif diff --git a/keyboards/stratos/info.json b/keyboards/stratos/info.json new file mode 100644 index 000000000000..0d73a0dc8f92 --- /dev/null +++ b/keyboards/stratos/info.json @@ -0,0 +1,608 @@ +{ + "keyboard_name": "stratos", + "url": "", + "maintainer": "kb-elmo", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + }, + "LAYOUT_60_ansi": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_hhkb": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_ansi_arrow": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3, "w":1.75}, + {"x":13, "y":3}, + {"x":14, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + }, + "LAYOUT_60_iso": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/stratos/keymaps/ansi_arrows/keymap.c b/keyboards/stratos/keymaps/ansi_arrows/keymap.c new file mode 100644 index 000000000000..5c11d70656b7 --- /dev/null +++ b/keyboards/stratos/keymaps/ansi_arrows/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * 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_arrow( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_60_ansi_arrow( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, 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/stratos/keymaps/ansi_split_bs_rshift/keymap.c b/keyboards/stratos/keymaps/ansi_split_bs_rshift/keymap.c new file mode 100644 index 000000000000..3c9fa24614ca --- /dev/null +++ b/keyboards/stratos/keymaps/ansi_split_bs_rshift/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * 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_split_bs_rshift( + 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_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/stratos/keymaps/default/keymap.c b/keyboards/stratos/keymaps/default/keymap.c new file mode 100644 index 000000000000..3531e43b2c2b --- /dev/null +++ b/keyboards/stratos/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + [1] = LAYOUT_60_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/stratos/keymaps/iso/keymap.c b/keyboards/stratos/keymaps/iso/keymap.c new file mode 100644 index 000000000000..57af44ea4ba3 --- /dev/null +++ b/keyboards/stratos/keymaps/iso/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * 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_iso( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + [1] = LAYOUT_60_iso( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/stratos/keymaps/iso_split_bs_rshift/keymap.c b/keyboards/stratos/keymaps/iso_split_bs_rshift/keymap.c new file mode 100644 index 000000000000..a83b54a376a0 --- /dev/null +++ b/keyboards/stratos/keymaps/iso_split_bs_rshift/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * 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_iso_split_bs_rshift( + 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_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_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, KC_APP, KC_RCTL + ), + [1] = LAYOUT_60_iso_split_bs_rshift( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/stratos/keymaps/iso_tsangan/keymap.c b/keyboards/stratos/keymaps/iso_tsangan/keymap.c new file mode 100644 index 000000000000..5fa190419074 --- /dev/null +++ b/keyboards/stratos/keymaps/iso_tsangan/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * 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_iso_tsangan( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL + ), + [1] = LAYOUT_60_iso_tsangan( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/stratos/keymaps/tsangan/keymap.c b/keyboards/stratos/keymaps/tsangan/keymap.c new file mode 100644 index 000000000000..8808cf0d4dc1 --- /dev/null +++ b/keyboards/stratos/keymaps/tsangan/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_tsangan( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL + ), + [1] = LAYOUT_60_ansi_tsangan( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/stratos/keymaps/tsangan_hhkb/keymap.c b/keyboards/stratos/keymaps/tsangan_hhkb/keymap.c new file mode 100644 index 000000000000..d8b6c552fcf8 --- /dev/null +++ b/keyboards/stratos/keymaps/tsangan_hhkb/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * 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( + 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_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL + ), + [1] = LAYOUT_60_tsangan_hhkb( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/stratos/keymaps/via/keymap.c b/keyboards/stratos/keymaps/via/keymap.c new file mode 100644 index 000000000000..7321955fdd14 --- /dev/null +++ b/keyboards/stratos/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, 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 + ), + [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 + ) +}; diff --git a/keyboards/stratos/keymaps/via/rules.mk b/keyboards/stratos/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/stratos/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/stratos/readme.md b/keyboards/stratos/readme.md new file mode 100644 index 000000000000..abffae3e4a18 --- /dev/null +++ b/keyboards/stratos/readme.md @@ -0,0 +1,21 @@ +# Stratos + +![stratos](https://i.imgur.com/cIT710dl.png) + +Stacked acrylic keyboard with a custom PCB made by eggyolk05 + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Stratos60 PCB +* Hardware Availability: https://geekhack.org/index.php?topic=111357 + +Make example for this keyboard (after setting up your build environment): + + make stratos:default + +Flashing example for this keyboard: + + make stratos:default:flash + +**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board. + +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). diff --git a/keyboards/stratos/rules.mk b/keyboards/stratos/rules.mk new file mode 100644 index 000000000000..f5fd19f2cd0c --- /dev/null +++ b/keyboards/stratos/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_ansi 60_ansi_arrow 60_ansi_tsangan 60_tsangan_hhkb 60_ansi_split_bs_rshift 60_iso 60_iso_split_bs_rshift 60_iso_tsangan diff --git a/keyboards/stratos/stratos.c b/keyboards/stratos/stratos.c new file mode 100644 index 000000000000..5de05cbc9dba --- /dev/null +++ b/keyboards/stratos/stratos.c @@ -0,0 +1,17 @@ +/* Copyright 2021 kb-elmo + * + * 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 "stratos.h" diff --git a/keyboards/stratos/stratos.h b/keyboards/stratos/stratos.h new file mode 100644 index 000000000000..478874b6e8c8 --- /dev/null +++ b/keyboards/stratos/stratos.h @@ -0,0 +1,147 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k212, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k400, k401, k402, k404, k406, k408, k409, k410, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \ + { k400, k401, k402, ____, k404, ____, k406, ____, k408, k409, k410, k411, k412, k413 } \ +} + +#define LAYOUT_60_ansi( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k212, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k400, k401, k402, k406, k409, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____ }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, k409, ____, k411, k412, k413 } \ +} + +#define LAYOUT_60_ansi_split_bs_rshift( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k212, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k400, k401, k402, k406, k409, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, k409, ____, k411, k412, k413 } \ +} + +#define LAYOUT_60_ansi_tsangan( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k212, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k400, k401, k402, k406, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____ }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413 } \ +} + +#define LAYOUT_60_tsangan_hhkb( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k212, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k400, k401, k402, k406, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413 } \ +} + +#define LAYOUT_60_ansi_arrow( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k212, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k400, k401, k402, k406, k409, k410, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____ }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, k409, k410, k411, k412, k413 } \ +} + +#define LAYOUT_60_iso( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k400, k401, k402, k406, k409, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____ }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, k409, ____, k411, k412, k413 } \ +} + +#define LAYOUT_60_iso_split_bs_rshift( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k400, k401, k402, k406, k409, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, k409, ____, k411, k412, k413 } \ +} + +#define LAYOUT_60_iso_tsangan( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k400, k401, k402, k406, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____ }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413 } \ +} From 4a8f540949a22b0f51e654ea6f76ddea9af78748 Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Fri, 23 Jul 2021 03:51:29 +0200 Subject: [PATCH 061/328] [Keyboard] Added another layer for VIA on the AEK II (#13100) --- keyboards/kb_elmo/aek2_usb/config.h | 5 +++-- keyboards/kb_elmo/aek2_usb/keymaps/via/keymap.c | 8 ++++++++ keyboards/kb_elmo/aek2_usb/keymaps/via/rules.mk | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/keyboards/kb_elmo/aek2_usb/config.h b/keyboards/kb_elmo/aek2_usb/config.h index cf8c9d66f9ad..9cad5d5c72f9 100644 --- a/keyboards/kb_elmo/aek2_usb/config.h +++ b/keyboards/kb_elmo/aek2_usb/config.h @@ -52,5 +52,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* reduce VIA layer count because of EEPROM size */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 2 +/* reduce EEPROM usage */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 +#define LAYER_STATE_8BIT diff --git a/keyboards/kb_elmo/aek2_usb/keymaps/via/keymap.c b/keyboards/kb_elmo/aek2_usb/keymaps/via/keymap.c index c5ff48e23ed6..86b69ceebdba 100644 --- a/keyboards/kb_elmo/aek2_usb/keymaps/via/keymap.c +++ b/keyboards/kb_elmo/aek2_usb/keymaps/via/keymap.c @@ -32,5 +32,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/kb_elmo/aek2_usb/keymaps/via/rules.mk b/keyboards/kb_elmo/aek2_usb/keymaps/via/rules.mk index 1e5b99807cb7..36b7ba9cbc98 100644 --- a/keyboards/kb_elmo/aek2_usb/keymaps/via/rules.mk +++ b/keyboards/kb_elmo/aek2_usb/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +LTO_ENABLE = yes From dfd795e48eda882320a50479adcfa9dddceec564 Mon Sep 17 00:00:00 2001 From: Domantas Date: Fri, 23 Jul 2021 06:24:16 +0200 Subject: [PATCH 062/328] Add backslash in lily58 domnantas keymap (#12713) --- keyboards/lily58/keymaps/domnantas/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/lily58/keymaps/domnantas/keymap.c b/keyboards/lily58/keymaps/domnantas/keymap.c index badc3bb63c7d..f1b2b2dcda11 100644 --- a/keyboards/lily58/keymaps/domnantas/keymap.c +++ b/keyboards/lily58/keymaps/domnantas/keymap.c @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * |LShift| 7 | 8 | 9 | 0 | |-------. ,-------| | | | | | | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| - * |LCTRL | = | + | - | | | |-------| |-------| | | | | | | + * |LCTRL | = | + | - | | | |-------| |-------| | | | | \ | | * `-----------------------------------------/ / \ \-----------------------------------------' * | LGUI | LAlt |LOWER | / Space / \ Enter\ | Bksp |RAISE | Del | * | | ||||||||/ / \ \ | | | | @@ -108,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, LT_1, LT_2, LT_3, LT_4, LT_5, LT_6, LT_7, LT_8, LT_9, LT_0, KC_GRV, _______, LT_4, LT_5, LT_6, _______, _______, _______, _______, _______, _______, _______, _______, _______, LT_7, LT_8, LT_9, LT_0, _______, _______, _______, _______, _______, _______, _______, - _______, LT_EQL, KC_PPLS, KC_PMNS, KC_PIPE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, LT_EQL, KC_PPLS, KC_PMNS, KC_PIPE, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), From a08c7087bef89b8b23e7462ece413a1861f8e4af Mon Sep 17 00:00:00 2001 From: Jay Greco Date: Thu, 22 Jul 2021 21:45:17 -0700 Subject: [PATCH 063/328] [Keymap] Reduce NIBBLE oled_bongocat keymap size so it compiles (#13638) --- .../nibble/keymaps/oled_bongocat/keymap.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c index 1d8559627a2a..d9365f54bf46 100644 --- a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c +++ b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c @@ -17,8 +17,6 @@ */ #include QMK_KEYBOARD_H #include "animation_frames.h" -#include - enum layer_names { _BASE, @@ -97,7 +95,6 @@ uint32_t anim_timer = 0; uint32_t anim_sleep = 0; uint8_t current_idle_frame = 0; -char wpm_str[10]; bool tap_anim = false; bool tap_anim_toggle = false; @@ -161,8 +158,16 @@ static void render_anim(void) { void oled_task_user(void) { render_anim(); oled_set_cursor(0, 14); - sprintf(wpm_str, ">%04d", get_current_wpm()); - oled_write_ln(wpm_str, false); + + uint8_t n = get_current_wpm(); + char wpm_counter[6]; + wpm_counter[5] = '\0'; + wpm_counter[4] = '0' + n % 10; + wpm_counter[3] = '0' + (n /= 10) % 10; + wpm_counter[2] = '0' + n / 10 ; + wpm_counter[1] = '0'; + wpm_counter[0] = '>'; + oled_write_ln(wpm_counter, false); } #endif From cda1792ece293cbea27c3e3039edd1ae8aada2ca Mon Sep 17 00:00:00 2001 From: Matthew Dias Date: Fri, 23 Jul 2021 00:45:35 -0400 Subject: [PATCH 064/328] [Keyboard] Add Txuu keyboard (#13650) Co-authored-by: Ryan --- keyboards/txuu/config.h | 63 +++++++++++++++++++ keyboards/txuu/info.json | 80 +++++++++++++++++++++++++ keyboards/txuu/keymaps/default/keymap.c | 36 +++++++++++ keyboards/txuu/keymaps/via/keymap.c | 44 ++++++++++++++ keyboards/txuu/keymaps/via/rules.mk | 1 + keyboards/txuu/readme.md | 18 ++++++ keyboards/txuu/rules.mk | 22 +++++++ keyboards/txuu/txuu.c | 18 ++++++ keyboards/txuu/txuu.h | 37 ++++++++++++ 9 files changed, 319 insertions(+) create mode 100644 keyboards/txuu/config.h create mode 100644 keyboards/txuu/info.json create mode 100644 keyboards/txuu/keymaps/default/keymap.c create mode 100644 keyboards/txuu/keymaps/via/keymap.c create mode 100644 keyboards/txuu/keymaps/via/rules.mk create mode 100644 keyboards/txuu/readme.md create mode 100644 keyboards/txuu/rules.mk create mode 100644 keyboards/txuu/txuu.c create mode 100644 keyboards/txuu/txuu.h diff --git a/keyboards/txuu/config.h b/keyboards/txuu/config.h new file mode 100644 index 000000000000..202777a965ef --- /dev/null +++ b/keyboards/txuu/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2021 Matthew Dias + +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" + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6D64 +#define PRODUCT_ID 0x2809 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Matthew Dias +#define PRODUCT txuu + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* m3n3van PCB default pin-out */ +#define MATRIX_ROW_PINS { B1, B0, F7, F4, F1 } +#define MATRIX_COL_PINS { F0, F5, F6, D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7 } +#define UNUSED_PINS { } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* + * 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/txuu/info.json b/keyboards/txuu/info.json new file mode 100644 index 000000000000..7225605f5e68 --- /dev/null +++ b/keyboards/txuu/info.json @@ -0,0 +1,80 @@ +{ + "keyboard_name": "Txuu", + "maintainer": "matthewdias", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0}, + {"label":"0,14", "x":14, "y":0}, + {"label":"0,15", "x":15, "y":0}, + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":13.5, "y":1, "w":1.5}, + {"label":"1,15", "x":15, "y":1}, + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,15", "x":15, "y":2}, + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,14", "x":14, "y":3}, + {"label":"3,15", "x":15, "y":3}, + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,3", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,10", "x":10, "y":4, "w":1.25}, + {"label":"4,11", "x":11.25, "y":4, "w":1.25}, + {"label":"4,13", "x":13, "y":4}, + {"label":"4,14", "x":14, "y":4}, + {"label":"4,15", "x":15, "y":4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/txuu/keymaps/default/keymap.c b/keyboards/txuu/keymaps/default/keymap.c new file mode 100644 index 000000000000..2e0ed852b1c9 --- /dev/null +++ b/keyboards/txuu/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* +Copyright 2021 Matthew Dias + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_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_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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/txuu/keymaps/via/keymap.c b/keyboards/txuu/keymaps/via/keymap.c new file mode 100644 index 000000000000..b4318cd5dd8d --- /dev/null +++ b/keyboards/txuu/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* +Copyright 2021 Matthew Dias + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_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_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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/txuu/keymaps/via/rules.mk b/keyboards/txuu/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/txuu/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/txuu/readme.md b/keyboards/txuu/readme.md new file mode 100644 index 000000000000..1800d8a8ca9e --- /dev/null +++ b/keyboards/txuu/readme.md @@ -0,0 +1,18 @@ +# txuu + +A 65% PCB + +- Keyboard Maintainer: matthewdias +- Hardware Supported: txuu PCB, Unified Daughterboard + +To reset the keyboard into bootloader mode, press the reset switch on the underside. + +Make example for this keyboard (after setting up your build environment): + + make txuu:default + +Flashing example for this keyboard ([using the command line](https://docs.qmk.fm/#/newbs_flashing?id=flash-your-keyboard-from-the-command-line)): + + make txuu: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). diff --git a/keyboards/txuu/rules.mk b/keyboards/txuu/rules.mk new file mode 100644 index 000000000000..32981133b2eb --- /dev/null +++ b/keyboards/txuu/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/txuu/txuu.c b/keyboards/txuu/txuu.c new file mode 100644 index 000000000000..81c4b440ad25 --- /dev/null +++ b/keyboards/txuu/txuu.c @@ -0,0 +1,18 @@ +/* +Copyright 2021 Matthew Dias + +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 "txuu.h" diff --git a/keyboards/txuu/txuu.h b/keyboards/txuu/txuu.h new file mode 100644 index 000000000000..2de782c64bb6 --- /dev/null +++ b/keyboards/txuu/txuu.h @@ -0,0 +1,37 @@ +/* +Copyright 2021 Matthew Dias + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX, K3E, K3F }, \ + { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, XXX, K4D, K4E, K4F } \ +} From 4a47ee937db397b32387b5d71851569cdfc8a8d2 Mon Sep 17 00:00:00 2001 From: Matthew Dias Date: Fri, 23 Jul 2021 11:10:01 -0400 Subject: [PATCH 065/328] [Keyboard] Add model-v keyboard (#13643) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/model_v/config.h | 62 +++++++++ keyboards/model_v/info.json | 153 +++++++++++++++++++++ keyboards/model_v/keymaps/default/keymap.c | 41 ++++++ keyboards/model_v/keymaps/via/keymap.c | 48 +++++++ keyboards/model_v/keymaps/via/rules.mk | 1 + keyboards/model_v/model_v.c | 18 +++ keyboards/model_v/model_v.h | 61 ++++++++ keyboards/model_v/readme.md | 20 +++ keyboards/model_v/rules.mk | 22 +++ 9 files changed, 426 insertions(+) create mode 100644 keyboards/model_v/config.h create mode 100644 keyboards/model_v/info.json create mode 100644 keyboards/model_v/keymaps/default/keymap.c create mode 100644 keyboards/model_v/keymaps/via/keymap.c create mode 100644 keyboards/model_v/keymaps/via/rules.mk create mode 100644 keyboards/model_v/model_v.c create mode 100644 keyboards/model_v/model_v.h create mode 100644 keyboards/model_v/readme.md create mode 100644 keyboards/model_v/rules.mk diff --git a/keyboards/model_v/config.h b/keyboards/model_v/config.h new file mode 100644 index 000000000000..847599a369c2 --- /dev/null +++ b/keyboards/model_v/config.h @@ -0,0 +1,62 @@ +/* +Copyright 2021 Matthew Dias + +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" + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6D64 +#define PRODUCT_ID 0x6D76 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Matthew Dias +#define PRODUCT model-v + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* model-v PCB default pin-out */ +#define MATRIX_ROW_PINS { D3, D5, D6, D4 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* + * 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/model_v/info.json b/keyboards/model_v/info.json new file mode 100644 index 000000000000..1179e3e3dfce --- /dev/null +++ b/keyboards/model_v/info.json @@ -0,0 +1,153 @@ +{ + "keyboard_name": "model-v", + "maintainer": "matthewdias", + "width": 12.75, + "height": 4, + "layouts": { + "LAYOUT_split": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "Q", "x": 1, "y": 0 }, + { "label": "W", "x": 2, "y": 0 }, + { "label": "E", "x": 3, "y": 0 }, + { "label": "R", "x": 4, "y": 0 }, + { "label": "T", "x": 5, "y": 0 }, + { "label": "Y", "x": 6, "y": 0 }, + { "label": "U", "x": 7, "y": 0 }, + { "label": "I", "x": 8, "y": 0 }, + { "label": "O", "x": 9, "y": 0 }, + { "label": "P", "x": 10, "y": 0 }, + { "label": "Backspace", "x": 11, "y": 0, "w": 1.75 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.25 }, + { "label": "A", "x": 1.25, "y": 1 }, + { "label": "S", "x": 2.25, "y": 1 }, + { "label": "D", "x": 3.25, "y": 1 }, + { "label": "F", "x": 4.25, "y": 1 }, + { "label": "G", "x": 5.25, "y": 1 }, + { "label": "H", "x": 6.25, "y": 1 }, + { "label": "J", "x": 7.25, "y": 1 }, + { "label": "K", "x": 8.25, "y": 1 }, + { "label": "L", "x": 9.25, "y": 1 }, + { "label": ";", "x": 10.25, "y": 1 }, + { "label": "Enter", "x": 11.25, "y": 1, "w": 1.5 }, + { "label": "Shift", "x": 0, "y": 2, "w": 1.75 }, + { "label": "Z", "x": 1.75, "y": 2 }, + { "label": "X", "x": 2.75, "y": 2 }, + { "label": "C", "x": 3.75, "y": 2 }, + { "label": "V", "x": 4.75, "y": 2 }, + { "label": "B", "x": 5.75, "y": 2 }, + { "label": "N", "x": 6.75, "y": 2 }, + { "label": "M", "x": 7.75, "y": 2 }, + { "label": "<", "x": 8.75, "y": 2 }, + { "label": ">", "x": 9.75, "y": 2 }, + { "label": "/", "x": 10.75, "y": 2 }, + { "label": "Shift", "x": 11.75, "y": 2 }, + { "label": "Ctrl", "x": 0, "y": 3, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 3 }, + { "label": "Meta", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "Raise", "x": 3.5, "y": 3 }, + { "x": 4.5, "y": 3, "w": 2.25 }, + { "x": 6.75, "y": 3, "w": 2 }, + { "label": "Lower", "x": 8.75, "y": 3 }, + { "label": "Meta", "x": 9.75, "y": 3 }, + { "label": "Alt", "x": 10.75, "y": 3 }, + { "label": "Ctrl", "x": 11.75, "y": 3 } + ] + }, + "LAYOUT_2x3u": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "Q", "x": 1, "y": 0 }, + { "label": "W", "x": 2, "y": 0 }, + { "label": "E", "x": 3, "y": 0 }, + { "label": "R", "x": 4, "y": 0 }, + { "label": "T", "x": 5, "y": 0 }, + { "label": "Y", "x": 6, "y": 0 }, + { "label": "U", "x": 7, "y": 0 }, + { "label": "I", "x": 8, "y": 0 }, + { "label": "O", "x": 9, "y": 0 }, + { "label": "P", "x": 10, "y": 0 }, + { "label": "Backspace", "x": 11, "y": 0, "w": 1.75 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.25 }, + { "label": "A", "x": 1.25, "y": 1 }, + { "label": "S", "x": 2.25, "y": 1 }, + { "label": "D", "x": 3.25, "y": 1 }, + { "label": "F", "x": 4.25, "y": 1 }, + { "label": "G", "x": 5.25, "y": 1 }, + { "label": "H", "x": 6.25, "y": 1 }, + { "label": "J", "x": 7.25, "y": 1 }, + { "label": "K", "x": 8.25, "y": 1 }, + { "label": "L", "x": 9.25, "y": 1 }, + { "label": ";", "x": 10.25, "y": 1 }, + { "label": "Enter", "x": 11.25, "y": 1, "w": 1.5 }, + { "label": "Shift", "x": 0, "y": 2, "w": 1.75 }, + { "label": "Z", "x": 1.75, "y": 2 }, + { "label": "X", "x": 2.75, "y": 2 }, + { "label": "C", "x": 3.75, "y": 2 }, + { "label": "V", "x": 4.75, "y": 2 }, + { "label": "B", "x": 5.75, "y": 2 }, + { "label": "N", "x": 6.75, "y": 2 }, + { "label": "M", "x": 7.75, "y": 2 }, + { "label": "<", "x": 8.75, "y": 2 }, + { "label": ">", "x": 9.75, "y": 2 }, + { "label": "/", "x": 10.75, "y": 2 }, + { "label": "Shift", "x": 11.75, "y": 2 }, + { "label": "Ctrl", "x": 0, "y": 3, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 3 }, + { "label": "Meta", "x": 2.25, "y": 3, "w": 1.25 }, + { "x": 3.5, "y": 3, "w": 3 }, + { "x": 6.5, "y": 3, "w": 3 }, + { "label": "Meta", "x": 9.5, "y": 3, "w": 1.25 }, + { "label": "Alt", "x": 10.75, "y": 3 }, + { "label": "Ctrl", "x": 11.75, "y": 3 } + ] + }, + "LAYOUT_bigbar": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "Q", "x": 1, "y": 0 }, + { "label": "W", "x": 2, "y": 0 }, + { "label": "E", "x": 3, "y": 0 }, + { "label": "R", "x": 4, "y": 0 }, + { "label": "T", "x": 5, "y": 0 }, + { "label": "Y", "x": 6, "y": 0 }, + { "label": "U", "x": 7, "y": 0 }, + { "label": "I", "x": 8, "y": 0 }, + { "label": "O", "x": 9, "y": 0 }, + { "label": "P", "x": 10, "y": 0 }, + { "label": "Backspace", "x": 11, "y": 0, "w": 1.75 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.25 }, + { "label": "A", "x": 1.25, "y": 1 }, + { "label": "S", "x": 2.25, "y": 1 }, + { "label": "D", "x": 3.25, "y": 1 }, + { "label": "F", "x": 4.25, "y": 1 }, + { "label": "G", "x": 5.25, "y": 1 }, + { "label": "H", "x": 6.25, "y": 1 }, + { "label": "J", "x": 7.25, "y": 1 }, + { "label": "K", "x": 8.25, "y": 1 }, + { "label": "L", "x": 9.25, "y": 1 }, + { "label": ";", "x": 10.25, "y": 1 }, + { "label": "Enter", "x": 11.25, "y": 1, "w": 1.5 }, + { "label": "Shift", "x": 0, "y": 2, "w": 1.75 }, + { "label": "Z", "x": 1.75, "y": 2 }, + { "label": "X", "x": 2.75, "y": 2 }, + { "label": "C", "x": 3.75, "y": 2 }, + { "label": "V", "x": 4.75, "y": 2 }, + { "label": "B", "x": 5.75, "y": 2 }, + { "label": "N", "x": 6.75, "y": 2 }, + { "label": "M", "x": 7.75, "y": 2 }, + { "label": "<", "x": 8.75, "y": 2 }, + { "label": ">", "x": 9.75, "y": 2 }, + { "label": "/", "x": 10.75, "y": 2 }, + { "label": "Shift", "x": 11.75, "y": 2 }, + { "label": "Ctrl", "x": 0, "y": 3, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 3 }, + { "label": "Meta", "x": 2.25, "y": 3, "w": 1.25 }, + { "x": 3.5, "y": 3, "w": 6.25 }, + { "label": "Meta", "x": 9.75, "y": 3 }, + { "label": "Alt", "x": 10.75, "y": 3 }, + { "label": "Ctrl", "x": 11.75, "y": 3 } + ] + } + } +} diff --git a/keyboards/model_v/keymaps/default/keymap.c b/keyboards/model_v/keymaps/default/keymap.c new file mode 100644 index 000000000000..d64a12b35fd7 --- /dev/null +++ b/keyboards/model_v/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* +Copyright 2021 Matthew Dias + +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_split( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, + KC_LCTL, KC_LALT, KC_LGUI, MO(2), KC_SPC, KC_SPC, MO(1), KC_RGUI, KC_RALT, KC_RCTL + ), + + [1] = LAYOUT_split( + KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_LBRC, KC_RBRC, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_QUOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_split( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, 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/model_v/keymaps/via/keymap.c b/keyboards/model_v/keymaps/via/keymap.c new file mode 100644 index 000000000000..ae16e72b207d --- /dev/null +++ b/keyboards/model_v/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2021 Matthew Dias + +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_split( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, + KC_LCTL, KC_LALT, KC_LGUI, MO(2), KC_SPC, KC_SPC, MO(1), KC_RGUI, KC_RALT, KC_RCTL + ), + + [1] = LAYOUT_split( + KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_LBRC, KC_RBRC, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_QUOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_split( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_split( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, 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/model_v/keymaps/via/rules.mk b/keyboards/model_v/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/model_v/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/model_v/model_v.c b/keyboards/model_v/model_v.c new file mode 100644 index 000000000000..a65738d97b51 --- /dev/null +++ b/keyboards/model_v/model_v.c @@ -0,0 +1,18 @@ +/* +Copyright 2021 Matthew Dias + +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 "model_v.h" diff --git a/keyboards/model_v/model_v.h b/keyboards/model_v/model_v.h new file mode 100644 index 000000000000..6f3a96080e57 --- /dev/null +++ b/keyboards/model_v/model_v.h @@ -0,0 +1,61 @@ +/* +Copyright 2021 Matthew Dias + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_split( \ + 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, K35, K37, K38, K39, K3A, K3B \ +) \ +{ \ + { 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, XXX, K35, XXX, K37, K38, K39, K3A, K3B } \ +} + +#define LAYOUT_2x3u( \ + 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, K35, K37, K39, K3A, K3B \ +) \ +{ \ + { 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, XXX, XXX, K35, XXX, K37, XXX, K39, K3A, K3B } \ +} + +#define LAYOUT_bigbar( \ + 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, K35, K39, K3A, K3B \ +) \ +{ \ + { 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, XXX, XXX, K35, XXX, XXX, XXX, K39, K3A, K3B } \ +} diff --git a/keyboards/model_v/readme.md b/keyboards/model_v/readme.md new file mode 100644 index 000000000000..17d12d810856 --- /dev/null +++ b/keyboards/model_v/readme.md @@ -0,0 +1,20 @@ +# model-v + +![](https://i.imgur.com/uqL3HSWl.png) + +A minivan case compatible PCB with flex cuts. + +- Keyboard Maintainer: matthewdias +- Hardware Supported: model-v pcb + +To reset the keyboard into bootloader mode, press the reset switch on the underside. + +Make example for this keyboard (after setting up your build environment): + + make model_v:default + +Flashing example for this keyboard ([using the command line](https://docs.qmk.fm/#/newbs_flashing?id=flash-your-keyboard-from-the-command-line)): + + make model_v: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). diff --git a/keyboards/model_v/rules.mk b/keyboards/model_v/rules.mk new file mode 100644 index 000000000000..32981133b2eb --- /dev/null +++ b/keyboards/model_v/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From e08203f16a5d9b69abea796583491d4b2de3aa6b Mon Sep 17 00:00:00 2001 From: Rafael Yumagulov Date: Sat, 24 Jul 2021 06:45:24 +0300 Subject: [PATCH 066/328] [Keyboard] Added Compound keyboard support (#12942) * [Keyboard] Added Compound keyboard support * Small fixes for Compound keyboard * Fixed readme and header file for Compound keyboard * Update keyboards/compound/rules.mk Co-authored-by: Ryan * Changed info.json and readme.md for Compound Keyboard info.json - removed key_count readme.md - changed PCB picture url to low-resolution Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/compound/compound.c | 18 +++++ keyboards/compound/compound.h | 38 ++++++++++ keyboards/compound/config.h | 48 +++++++++++++ keyboards/compound/info.json | 79 +++++++++++++++++++++ keyboards/compound/keymaps/default/keymap.c | 40 +++++++++++ keyboards/compound/keymaps/via/keymap.c | 49 +++++++++++++ keyboards/compound/keymaps/via/rules.mk | 1 + keyboards/compound/readme.md | 30 ++++++++ keyboards/compound/rules.mk | 22 ++++++ 9 files changed, 325 insertions(+) create mode 100644 keyboards/compound/compound.c create mode 100644 keyboards/compound/compound.h create mode 100644 keyboards/compound/config.h create mode 100644 keyboards/compound/info.json create mode 100644 keyboards/compound/keymaps/default/keymap.c create mode 100644 keyboards/compound/keymaps/via/keymap.c create mode 100644 keyboards/compound/keymaps/via/rules.mk create mode 100644 keyboards/compound/readme.md create mode 100644 keyboards/compound/rules.mk diff --git a/keyboards/compound/compound.c b/keyboards/compound/compound.c new file mode 100644 index 000000000000..046eae950fcc --- /dev/null +++ b/keyboards/compound/compound.c @@ -0,0 +1,18 @@ +/* +Copyright 2021 Rafael Yumagulov + +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 "compound.h" diff --git a/keyboards/compound/compound.h b/keyboards/compound/compound.h new file mode 100644 index 000000000000..697ca3d0f81f --- /dev/null +++ b/keyboards/compound/compound.h @@ -0,0 +1,38 @@ +/* +Copyright 2021 Rafael Yumagulov + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +// Improve readability +#define XXX KC_NO + +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + 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, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k46, k4a, k4b, k4c \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, XXX, XXX}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX}, \ + {k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, XXX, XXX} \ +} diff --git a/keyboards/compound/config.h b/keyboards/compound/config.h new file mode 100644 index 000000000000..43edc00660f5 --- /dev/null +++ b/keyboards/compound/config.h @@ -0,0 +1,48 @@ +/* +Copyright 2021 Rafael Yumagulov + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x420A +#define PRODUCT_ID 0xB0BA +#define DEVICE_VER 0x0001 +#define MANUFACTURER Sabomov +#define PRODUCT Compound + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {B0,B7,D0,D1,D2} +#define MATRIX_COL_PINS {F0,D5,D4,D6,D7,B4,B5,B6,C6,C7,F7,F6,F5,F4,F1} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT B3 // usually COL +#define QMK_ESC_INPUT F0 // usually ROW diff --git a/keyboards/compound/info.json b/keyboards/compound/info.json new file mode 100644 index 000000000000..ad899d1a4c0b --- /dev/null +++ b/keyboards/compound/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "Compound", + "url": "https://geekhack.org/index.php?topic=111187.0", + "maintainer": "yumagulovrn", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "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": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.5}, + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4, "w": 1.5}, + {"x": 4, "y": 4, "w": 7}, + {"x": 11, "y": 4, "w": 1.5}, + {"x": 12.5, "y": 4}, + {"x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/compound/keymaps/default/keymap.c b/keyboards/compound/keymaps/default/keymap.c new file mode 100644 index 000000000000..c5f4bd73896e --- /dev/null +++ b/keyboards/compound/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2021 Rafael Yumagulov + +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 { + _MA, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_MA] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), + +[_FN] = LAYOUT( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/compound/keymaps/via/keymap.c b/keyboards/compound/keymaps/via/keymap.c new file mode 100644 index 000000000000..797be4dc6838 --- /dev/null +++ b/keyboards/compound/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2021 Rafael Yumagulov + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), + +[1] = LAYOUT( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______), + +[2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______), + +[3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/compound/keymaps/via/rules.mk b/keyboards/compound/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/compound/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/compound/readme.md b/keyboards/compound/readme.md new file mode 100644 index 000000000000..9422939ac83e --- /dev/null +++ b/keyboards/compound/readme.md @@ -0,0 +1,30 @@ +# Compound + +![Compound](https://imgur.com/0DC9F9dh.jpg) + +A compact 60% Compound keyboard with fixed Tsangan style layout. + +* Keyboard Maintainer: [yumagulovrn](https://github.com/yumagulovrn) +* Hardware Supported: Compound PCB +* Hardware Availability: [GeekHack IC](https://geekhack.org/index.php?topic=111187.0) + +## Entering bootloader mode + +Keyboard doesn't have dedicated RESET button on the PCB, however, there are alternatives: + +### Bootmagic + +Hold down ESC while plugging the keyboard in. + +### Shorting RESET pin + +Short GND and RST pads on the bottom of the keyboard. Location of the pads can be seen [here](https://imgur.com/uw7Zz7Y.jpg). + + +## Building keyboard firmware + +Make example for this keyboard (after setting up your build environment): + + make compound:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/compound/rules.mk b/keyboards/compound/rules.mk new file mode 100644 index 000000000000..a90eef1fc65a --- /dev/null +++ b/keyboards/compound/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From d4bc77ac9492b8c0183e97fdb2b34407e0b197b6 Mon Sep 17 00:00:00 2001 From: Shane Celis Date: Sat, 24 Jul 2021 11:39:04 -0400 Subject: [PATCH 067/328] feature: Add swap hands support for sofle keyboard. (#13654) --- keyboards/sofle/rules.mk | 1 + keyboards/sofle/sofle.c | 41 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/keyboards/sofle/rules.mk b/keyboards/sofle/rules.mk index 820061832a01..8009f4625c35 100644 --- a/keyboards/sofle/rules.mk +++ b/keyboards/sofle/rules.mk @@ -2,3 +2,4 @@ MCU = atmega32u4 BOOTLOADER = caterina SPLIT_KEYBOARD = yes DEFAULT_FOLDER = sofle/rev1 +SWAP_HANDS_ENABLE = yes diff --git a/keyboards/sofle/sofle.c b/keyboards/sofle/sofle.c index bbb014c4df74..3e9f45656a6a 100644 --- a/keyboards/sofle/sofle.c +++ b/keyboards/sofle/sofle.c @@ -1 +1,42 @@ #include "sofle.h" + +#ifdef SWAP_HANDS_ENABLE + +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = + // The LAYOUT macro could work for this, but it was harder to figure out the + // identity using it. + + // This is the identity layout. +/* +{ \ + { {0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0} }, \ + { {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1} }, \ + { {0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2} }, \ + { {0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3} }, \ + { {0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4} }, \ + \ + { {0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5} }, \ + { {0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6} }, \ + { {0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7} }, \ + { {0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8} }, \ + { {0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9} }, \ +}; +*/ + + // This is the mirror, q <-> p, w <-> o, etc... +{ \ + { {0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5} }, \ + { {0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6} }, \ + { {0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7} }, \ + { {0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8} }, \ + { {0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9} }, \ + \ + { {0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0} }, \ + { {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1} }, \ + { {0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2} }, \ + { {0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3} }, \ + { {0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4} }, \ +}; + +#endif From 1b002b7dcc1707564db171d7926ade7f7d4894fc Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun, 25 Jul 2021 01:39:26 +1000 Subject: [PATCH 068/328] [Keyboard] Dharma (#13663) Co-authored-by: Ryan --- keyboards/xelus/dharma/config.h | 51 ++++++++++++++++++ keyboards/xelus/dharma/dharma.c | 17 ++++++ keyboards/xelus/dharma/dharma.h | 35 ++++++++++++ .../xelus/dharma/keymaps/default/config.h | 19 +++++++ .../xelus/dharma/keymaps/default/keymap.c | 37 +++++++++++++ .../xelus/dharma/keymaps/default/readme.md | 2 + keyboards/xelus/dharma/keymaps/via/config.h | 19 +++++++ keyboards/xelus/dharma/keymaps/via/keymap.c | 53 +++++++++++++++++++ keyboards/xelus/dharma/keymaps/via/readme.md | 2 + keyboards/xelus/dharma/keymaps/via/rules.mk | 1 + keyboards/xelus/dharma/readme.md | 20 +++++++ keyboards/xelus/dharma/rules.mk | 22 ++++++++ 12 files changed, 278 insertions(+) create mode 100644 keyboards/xelus/dharma/config.h create mode 100644 keyboards/xelus/dharma/dharma.c create mode 100644 keyboards/xelus/dharma/dharma.h create mode 100644 keyboards/xelus/dharma/keymaps/default/config.h create mode 100644 keyboards/xelus/dharma/keymaps/default/keymap.c create mode 100644 keyboards/xelus/dharma/keymaps/default/readme.md create mode 100644 keyboards/xelus/dharma/keymaps/via/config.h create mode 100644 keyboards/xelus/dharma/keymaps/via/keymap.c create mode 100644 keyboards/xelus/dharma/keymaps/via/readme.md create mode 100644 keyboards/xelus/dharma/keymaps/via/rules.mk create mode 100644 keyboards/xelus/dharma/readme.md create mode 100644 keyboards/xelus/dharma/rules.mk diff --git a/keyboards/xelus/dharma/config.h b/keyboards/xelus/dharma/config.h new file mode 100644 index 000000000000..eab2c224c2f8 --- /dev/null +++ b/keyboards/xelus/dharma/config.h @@ -0,0 +1,51 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * 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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5845 // XE +#define PRODUCT_ID 0xDAAA // Dharma +#define DEVICE_VER 0x0001 +#define MANUFACTURER Xelus +#define PRODUCT Dharma + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 18 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, B0 } +#define MATRIX_COL_PINS { B3, B2, B1, D5, D4, E6, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1 } +#define UNUSED_PINS + +/* 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 + +#define FORCE_NKRO + +#define LED_CAPS_LOCK_PIN B7 +#define LED_NUM_LOCK_PIN F0 +#define LED_PIN_ON_STATE 1 diff --git a/keyboards/xelus/dharma/dharma.c b/keyboards/xelus/dharma/dharma.c new file mode 100644 index 000000000000..15493ff022bc --- /dev/null +++ b/keyboards/xelus/dharma/dharma.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * 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" diff --git a/keyboards/xelus/dharma/dharma.h b/keyboards/xelus/dharma/dharma.h new file mode 100644 index 000000000000..3626877b1366 --- /dev/null +++ b/keyboards/xelus/dharma/dharma.h @@ -0,0 +1,35 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K012, K011, K010, K013, K213, K014, K015, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, K216, K217, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K311, K312, K313, K314, K315, K316, K317, \ + K400, K401, K402, K405, K409, K411, K412, K413, K414, K415, K416 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, ____, K311, K312, K313, K314, K315, K316, K317 }, \ + { K400, K401, K402, ____, ____, K405, ____, ____, ____, K409, ____, K411, K412, K413, K414, K415, K416, ____ } \ +} diff --git a/keyboards/xelus/dharma/keymaps/default/config.h b/keyboards/xelus/dharma/keymaps/default/config.h new file mode 100644 index 000000000000..ea9bfa60eb8e --- /dev/null +++ b/keyboards/xelus/dharma/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * 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 USB_POLLING_INTERVAL_MS 1 +#define QMK_KEYS_PER_SCAN 4 diff --git a/keyboards/xelus/dharma/keymaps/default/keymap.c b/keyboards/xelus/dharma/keymaps/default/keymap.c new file mode 100644 index 000000000000..8039663e5f00 --- /dev/null +++ b/keyboards/xelus/dharma/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * 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 . + */ + +// Default layout for Dharma +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Default layer + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + // Fn1 Layer + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/xelus/dharma/keymaps/default/readme.md b/keyboards/xelus/dharma/keymaps/default/readme.md new file mode 100644 index 000000000000..6ed75f1ec3f5 --- /dev/null +++ b/keyboards/xelus/dharma/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The Default Dharma Layout + diff --git a/keyboards/xelus/dharma/keymaps/via/config.h b/keyboards/xelus/dharma/keymaps/via/config.h new file mode 100644 index 000000000000..ea9bfa60eb8e --- /dev/null +++ b/keyboards/xelus/dharma/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * 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 USB_POLLING_INTERVAL_MS 1 +#define QMK_KEYS_PER_SCAN 4 diff --git a/keyboards/xelus/dharma/keymaps/via/keymap.c b/keyboards/xelus/dharma/keymaps/via/keymap.c new file mode 100644 index 000000000000..7f28ab1c23d6 --- /dev/null +++ b/keyboards/xelus/dharma/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * 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 . + */ + +// VIA layout for Dharma +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Default layer + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + // Fn1 Layer + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + + // Fn2 Layer + [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_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + + // Fn3 Layer + [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_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/xelus/dharma/keymaps/via/readme.md b/keyboards/xelus/dharma/keymaps/via/readme.md new file mode 100644 index 000000000000..a64bbb0faf4e --- /dev/null +++ b/keyboards/xelus/dharma/keymaps/via/readme.md @@ -0,0 +1,2 @@ +# The VIA Dharma Layout + diff --git a/keyboards/xelus/dharma/keymaps/via/rules.mk b/keyboards/xelus/dharma/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/xelus/dharma/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xelus/dharma/readme.md b/keyboards/xelus/dharma/readme.md new file mode 100644 index 000000000000..37d06356a924 --- /dev/null +++ b/keyboards/xelus/dharma/readme.md @@ -0,0 +1,20 @@ +# Dharma + +A Mini 1800 - esque keyboard by [Janglad](https://qoda.studio/dharma/) + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: Dharma +* Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make xelus/dharma:default + +Reset your keyboard in 3 ways: +
    +
  1. Software reset on Fn + Backspace
  2. +
  3. Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard
  4. +
  5. Physical reset button: on the back of the PCB, use tweezers and short RST and GND together
  6. +
+ +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). diff --git a/keyboards/xelus/dharma/rules.mk b/keyboards/xelus/dharma/rules.mk new file mode 100644 index 000000000000..32981133b2eb --- /dev/null +++ b/keyboards/xelus/dharma/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 44a0aa924c411298ff33cb90c9ddef709d44d843 Mon Sep 17 00:00:00 2001 From: James Won Date: Sat, 24 Jul 2021 08:40:05 -0700 Subject: [PATCH 069/328] [Keymap] add kinesis/keymaps/jwon (#13618) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/kinesis/keymaps/jwon/keymap.c | 174 +++++++++++++++++++++++ keyboards/kinesis/keymaps/jwon/readme.md | 8 ++ keyboards/kinesis/keymaps/jwon/rules.mk | 3 + 3 files changed, 185 insertions(+) create mode 100644 keyboards/kinesis/keymaps/jwon/keymap.c create mode 100644 keyboards/kinesis/keymaps/jwon/readme.md create mode 100644 keyboards/kinesis/keymaps/jwon/rules.mk diff --git a/keyboards/kinesis/keymaps/jwon/keymap.c b/keyboards/kinesis/keymaps/jwon/keymap.c new file mode 100644 index 000000000000..d0e9d812310b --- /dev/null +++ b/keyboards/kinesis/keymaps/jwon/keymap.c @@ -0,0 +1,174 @@ +/* Copyright 2021 James Won + * + * 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 { + _BASE_DVORAK, + _RAISE_DVORAK, + _KEYPAD, + _QWERTY, +}; + +// Mac-specific macros +#define MACCOPY LGUI(KC_C) +#define MACPAST LGUI(KC_V) +#define MACUNDO LGUI(KC_Z) +#define MACREDO LGUI(KC_Y) +#define MACLOCK LGUI(LCTL(KC_Q)) + +#define LSA_ LSA(KC_NO) +#define SFT_ESC SFT_T(KC_ESC) +#define KEYPAD TG(_KEYPAD) +#define QWERTY TG(_QWERTY) +#define RAISE MO(_RAISE_DVORAK) + +// clang-format off + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_BASE_DVORAK] = LAYOUT ( + // Left Hand + MACLOCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_PIPE, KC_PLUS, KC_LBRC, KC_LCBR, KC_LPRN, KC_AMPR, + KC_TAB, KC_SCLN, KC_COMM, KC_DOT, KC_P, KC_Y, + SFT_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LCTL, KC_QUOT, KC_Q, KC_J, KC_K, KC_X, + KC_DLR, KC_BSLS, KC_LEFT, KC_RGHT, + // Left Thumb + KC_LGUI, KC_LALT, + MACPAST, + KC_BSPC, KC_SPC, MACCOPY, + + // Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, QWERTY, RESET, + KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_ASTR, KC_EXLM, + KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, + KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_DOWN, KC_UP, KC_SLSH, KC_AT, + // Right Thumb + KEYPAD, LSA_, + MACUNDO, + MACREDO, RAISE, KC_ENT + ), + +[_RAISE_DVORAK] = LAYOUT ( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, + _______, KC_COLN, KC_LABK, KC_RABK, S(KC_P), S(KC_Y), + _______, S(KC_A), S(KC_O), S(KC_E), S(KC_U), S(KC_I), + _______, KC_DQUO, S(KC_Q), S(KC_J), S(KC_K), S(KC_X), + KC_TILD, KC_PIPE, _______, _______, + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_6, KC_7, KC_8, KC_9, KC_0, KC_PERC, + S(KC_F), S(KC_G), S(KC_C), S(KC_R), S(KC_L), KC_HASH, + S(KC_D), S(KC_H), S(KC_T), S(KC_N), S(KC_S), KC_UNDS, + S(KC_B), S(KC_M), S(KC_W), S(KC_V), S(KC_Z), _______, + _______, _______, KC_QUES, KC_CIRC, + // Right Thumb + _______, _______, + _______, + _______, _______, _______ + ), + +[_KEYPAD] = LAYOUT ( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + _______, _______, KC_PDOT, KC_PENT, + // Right Thumb + _______, _______, + _______, + _______, _______, KC_P0 + ), + +[_QWERTY] = LAYOUT( + // Left Hand + KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_GRV, KC_INS, KC_LEFT, KC_RGHT, + // Left Thumb + KC_LGUI, KC_LALT, + KC_HOME, + KC_BSPC, KC_DEL, KC_END , + + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + // Right Thumb + KC_RGUI, KC_RCTL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _KEYPAD: + writePinLow(LED_COMPOSE_PIN); + break; + case _RAISE_DVORAK: + writePinLow(LED_NUM_LOCK_PIN); + break; + case _QWERTY: + writePinLow(LED_SCROLL_LOCK_PIN); + break; + default: // for any other layers, or the default layer + writePinHigh(LED_NUM_LOCK_PIN); + writePinHigh(LED_SCROLL_LOCK_PIN); + writePinHigh(LED_COMPOSE_PIN); + break; + } + return state; +} + +bool led_update_user(led_t led_state) { + // Disable led_update_kb() so that layer indication code doesn't get overridden. + return false; +} + +void matrix_scan_user(void) { + writePin(LED_CAPS_LOCK_PIN, !(get_mods() & MOD_MASK_SHIFT)); +} diff --git a/keyboards/kinesis/keymaps/jwon/readme.md b/keyboards/kinesis/keymaps/jwon/readme.md new file mode 100644 index 000000000000..719e693384bb --- /dev/null +++ b/keyboards/kinesis/keymaps/jwon/readme.md @@ -0,0 +1,8 @@ +![jwon Programmer Dvorak Layout Image](https://i.imgur.com/3llBswG.png) + +# jwon's Programmer Dvorak + +Loosely based off [Programmer Dvorak](https://www.kaufmann.no/roland/dvorak/) and ThePrimeagen's [Real Programmers Dvorak](https://github.com/ThePrimeagen/keyboards) + +## Requirements +* The Stapelberg mod diff --git a/keyboards/kinesis/keymaps/jwon/rules.mk b/keyboards/kinesis/keymaps/jwon/rules.mk new file mode 100644 index 000000000000..e04ac19e4c3b --- /dev/null +++ b/keyboards/kinesis/keymaps/jwon/rules.mk @@ -0,0 +1,3 @@ +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = no +NKRO_ENABLE = yes From 145d89ab9192d08b7e22a14105d27988944b7b0c Mon Sep 17 00:00:00 2001 From: lokher Date: Sun, 25 Jul 2021 00:37:24 +0800 Subject: [PATCH 070/328] [Keyboard] Add Keychron Q1 (#13397) Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre --- keyboards/keychron/q1/config.h | 51 ++++++ keyboards/keychron/q1/q1.c | 159 ++++++++++++++++++ keyboards/keychron/q1/q1.h | 23 +++ keyboards/keychron/q1/readme.md | 21 +++ keyboards/keychron/q1/rev_0100/config.h | 26 +++ keyboards/keychron/q1/rev_0100/info.json | 93 ++++++++++ .../q1/rev_0100/keymaps/default/keymap.c | 66 ++++++++ .../keychron/q1/rev_0100/keymaps/via/keymap.c | 66 ++++++++ .../keychron/q1/rev_0100/keymaps/via/rules.mk | 2 + keyboards/keychron/q1/rev_0100/readme.md | 21 +++ keyboards/keychron/q1/rev_0100/rev_0100.h | 37 ++++ keyboards/keychron/q1/rev_0100/rules.mk | 25 +++ 12 files changed, 590 insertions(+) create mode 100644 keyboards/keychron/q1/config.h create mode 100644 keyboards/keychron/q1/q1.c create mode 100644 keyboards/keychron/q1/q1.h create mode 100644 keyboards/keychron/q1/readme.md create mode 100644 keyboards/keychron/q1/rev_0100/config.h create mode 100644 keyboards/keychron/q1/rev_0100/info.json create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1/rev_0100/readme.md create mode 100644 keyboards/keychron/q1/rev_0100/rev_0100.h create mode 100644 keyboards/keychron/q1/rev_0100/rules.mk diff --git a/keyboards/keychron/q1/config.h b/keyboards/keychron/q1/config.h new file mode 100644 index 000000000000..fb6a70c869e9 --- /dev/null +++ b/keyboards/keychron/q1/config.h @@ -0,0 +1,51 @@ +/* Copyright 2021 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3434 +#define MANUFACTURER Keychron +#define PRODUCT Keychron Q1 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* RGB LED Matrix Configuration */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_2 0b1011111 + +#define DRIVER_1_LED_TOTAL 59 +#define DRIVER_2_LED_TOTAL 23 +#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* DIP switch */ +#define DIP_SWITCH_MATRIX_GRID { {0,1} } + +/* Disable DIP switch in matrix data */ +#define MATRIX_MASKED + +/* NKRO */ +#define FORCE_NKRO diff --git a/keyboards/keychron/q1/q1.c b/keyboards/keychron/q1/q1.c new file mode 100644 index 000000000000..943cf26cef3a --- /dev/null +++ b/keyboards/keychron/q1/q1.c @@ -0,0 +1,159 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "q1.h" + +const matrix_row_t matrix_mask[] = { + 0b0111111111111101, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, +}; + +void dip_switch_update_kb(uint8_t index, bool active) { + if (index == 0) { + default_layer_set(1UL << (active ? 2 : 0)); + } + dip_switch_update_user(index, active); +} + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + + {0, A_1, C_1, B_1}, + {0, A_3, C_3, B_3}, + {0, A_4, C_4, B_4}, + {0, A_5, C_5, B_5}, + {0, A_6, C_6, B_6}, + {0, A_7, C_7, B_7}, + {0, A_8, C_8, B_8}, + {0, A_9, C_9, B_9}, + {0, A_10, C_10, B_10}, + {0, A_11, C_11, B_11}, + {0, A_12, C_12, B_12}, + {0, A_13, C_13, B_13}, + {0, A_14, C_14, B_14}, + {0, A_15, C_15, B_15}, + {0, A_16, C_16, B_16}, + + {0, D_1, F_1, E_1}, + {0, D_2, F_2, E_2}, + {0, D_3, F_3, E_3}, + {0, D_4, F_4, E_4}, + {0, D_5, F_5, E_5}, + {0, D_6, F_6, E_6}, + {0, D_7, F_7, E_7}, + {0, D_8, F_8, E_8}, + {0, D_9, F_9, E_9}, + {0, D_10, F_10, E_10}, + {0, D_11, F_11, E_11}, + {0, D_12, F_12, E_12}, + {0, D_13, F_13, E_13}, + {0, D_14, F_14, E_14}, + {0, D_16, F_16, E_16}, + + {0, G_1, I_1, H_1}, + {0, G_2, I_2, H_2}, + {0, G_3, I_3, H_3}, + {0, G_4, I_4, H_4}, + {0, G_5, I_5, H_5}, + {0, G_6, I_6, H_6}, + {0, G_7, I_7, H_7}, + {0, G_8, I_8, H_8}, + {0, G_9, I_9, H_9}, + {0, G_10, I_10, H_10}, + {0, G_11, I_11, H_11}, + {0, G_12, I_12, H_12}, + {0, G_13, I_13, H_13}, + {0, G_14, I_14, H_14}, + {0, G_16, I_16, H_16}, + + {0, J_1, L_1, K_1}, + {0, J_2, L_2, K_2}, + {0, J_3, L_3, K_3}, + {0, J_4, L_4, K_4}, + {0, J_5, L_5, K_5}, + {0, J_6, L_6, K_6}, + {0, J_7, L_7, K_7}, + {0, J_8, L_8, K_8}, + {0, J_9, L_9, K_9}, + {0, J_10, L_10, K_10}, + {0, J_11, L_11, K_11}, + {0, J_12, L_12, K_12}, + {0, J_14, L_14, K_14}, + {0, J_16, L_16, K_16}, + {1, A_1, C_1, B_1}, + + {1, A_3, C_3, B_3}, + {1, A_4, C_4, B_4}, + {1, A_5, C_5, B_5}, + {1, A_6, C_6, B_6}, + {1, A_7, C_7, B_7}, + {1, A_8, C_8, B_8}, + {1, A_9, C_9, B_9}, + {1, A_10, C_10, B_10}, + {1, A_11, C_11, B_11}, + {1, A_12, C_12, B_12}, + {1, A_14, C_14, B_14}, + {1, A_15, C_15, B_15}, + + {1, D_1, F_1, E_1}, + {1, D_2, F_2, E_2}, + {1, D_3, F_3, E_3}, + {1, D_7, F_7, E_7}, + {1, D_11, F_11, E_11}, + {1, D_12, F_12, E_12}, + {1, D_13, F_13, E_13}, + {1, D_14, F_14, E_14}, + {1, D_15, F_15, E_15}, + {1, D_16, F_16, E_16} + +}; + +led_config_t g_led_config = { + { + { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 }, + { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 }, + { 59, NO_LED, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 }, + { 72, 73, 74, NO_LED, NO_LED, NO_LED,75, NO_LED, NO_LED, NO_LED, 76, 77, 78, 79, 81 } + }, + { + {0,0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0}, + {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {120,13}, {135,13}, {150,13}, {165,13}, {180,13}, {195,13}, {224,13}, + {0,26}, {15,26}, {30,26}, {45,26}, {60,26}, {75,26}, {90,26}, {105,26}, {120,26}, {135,26}, {150,26}, {165,26}, {180,26}, {195,26}, {224,26}, + {0,39}, {15,39}, {30,39}, {45,39}, {60,39}, {75,39}, {90,39}, {105,39}, {120,39}, {135,39}, {150,39}, {165,39}, {195,39}, {224,39}, + {0,52}, {30,52}, {45,52}, {60,52}, {75,52}, {90,52}, {105,52}, {120,52}, {135,52}, {150,52}, {165,52}, {195,52}, {210,52}, + {0,64}, {15,64}, {30,64}, {90,64}, {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64}, + }, + { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 + + } +}; diff --git a/keyboards/keychron/q1/q1.h b/keyboards/keychron/q1/q1.h new file mode 100644 index 000000000000..1e92a062adf6 --- /dev/null +++ b/keyboards/keychron/q1/q1.h @@ -0,0 +1,23 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#if defined(KEYBOARD_keychron_q1_rev_0100) +# include "rev_0100.h" +#endif diff --git a/keyboards/keychron/q1/readme.md b/keyboards/keychron/q1/readme.md new file mode 100644 index 000000000000..d7b6af3b374c --- /dev/null +++ b/keyboards/keychron/q1/readme.md @@ -0,0 +1,21 @@ +# Keychron Q1 + +![Keychron Q1](https://cdn.shopify.com/s/files/1/0059/0630/1017/t/5/assets/pf-823ebdc7--1073.jpg) + +A customizable 75% keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron Q1 +* Hardware Availability: [Keychron](https://www.keychron.com) + +Make example for this keyboard (after setting up your build environment): + + make keychron/q1/rev_0100:default + +Flashing example for this keyboard: + + make keychron/q1/rev_0100:default:flash + +**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. + +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). diff --git a/keyboards/keychron/q1/rev_0100/config.h b/keyboards/keychron/q1/rev_0100/config.h new file mode 100644 index 000000000000..5b910f738120 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/config.h @@ -0,0 +1,26 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + + +/* USB Device descriptor parameter */ +#define PRODUCT_ID 0x0100 +#define DEVICE_VER 0x0001 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D3, D2, B3, B2, B1, B0 } +#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 } diff --git a/keyboards/keychron/q1/rev_0100/info.json b/keyboards/keychron/q1/rev_0100/info.json new file mode 100644 index 000000000000..4d101eac7061 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/info.json @@ -0,0 +1,93 @@ +{ + "keyboard_name": "Keychron Q1", + "url": "https://github.com/Keychron", + "maintainer": "lokher", + "width": 16.25, + "height": 6.25, + "layouts": { + "LAYOUT_ansi_82": { + "layout": [{"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"Delete", "x":14, "y":0}, + {"label":"Insert", "x":15.25, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"!", "x":1, "y":1}, + {"label":"@", "x":2, "y":1}, + {"label":"#", "x":3, "y":1}, + {"label":"$", "x":4, "y":1}, + {"label":"%", "x":5, "y":1}, + {"label":"^", "x":6, "y":1}, + {"label":"&", "x":7, "y":1}, + {"label":"*", "x":8, "y":1}, + {"label":"(", "x":9, "y":1}, + {"label":")", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"Backspace", "x":13, "y":1, "w":2}, + {"label":"Page Up", "x":15.25, "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":"Page Down", "x":15.25, "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":"Home", "x":15.25, "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":"\u2191", "x":14.25, "y":4.25}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.25}, + {"label":"Alt", "x":10, "y":5}, + {"label":"Fn", "x":11, "y":5}, + {"label":"Ctrl", "x":12, "y":5}, + {"label":"\u2190", "x":13.25, "y":5.25}, + {"label":"\u2193", "x":14.25, "y":5.25}, + {"label":"\u2192", "x":15.25, "y":5.25}] + } + } +} diff --git a/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c b/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c new file mode 100644 index 000000000000..fa6f79175914 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + 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_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[MAC_FN] = LAYOUT_ansi_82( + 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, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, + 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_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[WIN_FN] = LAYOUT_ansi_82( + KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keychron/q1/rev_0100/keymaps/via/keymap.c b/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c new file mode 100644 index 000000000000..4108ade04f84 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + 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_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[MAC_FN] = LAYOUT_ansi_82( + 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, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, + 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_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[WIN_FN] = LAYOUT_ansi_82( + KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keychron/q1/rev_0100/keymaps/via/rules.mk b/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk new file mode 100644 index 000000000000..96d2d189b2e6 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no diff --git a/keyboards/keychron/q1/rev_0100/readme.md b/keyboards/keychron/q1/rev_0100/readme.md new file mode 100644 index 000000000000..0131794c18d9 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/readme.md @@ -0,0 +1,21 @@ +# Keychron Q1 + +![Keychron Q1](https://cdn.shopify.com/s/files/1/0059/0630/1017/t/5/assets/pf-823ebdc7--1073.jpg) + +A customizable 75% keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron Q1, Atmega32u4 +* Hardware Availability: [Keychron](https://www.keychron.com) + +Make example for this keyboard (after setting up your build environment): + + make keychron/q1/rev_0100:default + +Flashing example for this keyboard: + + make keychron/q1/rev_0100:default:flash + +**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. + +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). diff --git a/keyboards/keychron/q1/rev_0100/rev_0100.h b/keyboards/keychron/q1/rev_0100/rev_0100.h new file mode 100644 index 000000000000..2a1edac646fe --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/rev_0100.h @@ -0,0 +1,37 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define xxx KC_NO + +#define LAYOUT_ansi_82( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K3C, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K4C, K5E \ +) { \ + { K00, xxx, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, xxx, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E }, \ + { K50, K51, K52, xxx, xxx, xxx, K56, xxx, xxx, xxx, K5A, K5B, K5C, K5D, K5E } \ +} diff --git a/keyboards/keychron/q1/rev_0100/rules.mk b/keyboards/keychron/q1/rev_0100/rules.mk new file mode 100644 index 000000000000..5080a4638cf1 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3733 From b5bcd5b0a18079df1252a718588255c62d24a054 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 24 Jul 2021 19:56:45 +0100 Subject: [PATCH 071/328] Refactor some platform dependent logic (#13675) --- quantum/audio/luts.h | 10 ++-------- quantum/audio/voices.h | 3 --- quantum/keymap_common.c | 4 ---- quantum/quantum.h | 11 +---------- quantum/rgblight.c | 14 +++----------- quantum/rgblight.h | 5 +---- tmk_core/common/arm_atsam/platform.h | 18 ++++++++++++++++++ tmk_core/common/avr/platform.h | 20 ++++++++++++++++++++ tmk_core/common/chibios/platform.h | 19 +++++++++++++++++++ tmk_core/common/print.h | 2 +- tmk_core/common/timer.h | 5 ----- 11 files changed, 65 insertions(+), 46 deletions(-) create mode 100644 tmk_core/common/arm_atsam/platform.h create mode 100644 tmk_core/common/avr/platform.h create mode 100644 tmk_core/common/chibios/platform.h diff --git a/quantum/audio/luts.h b/quantum/audio/luts.h index 74980b292edf..8bb04544933a 100644 --- a/quantum/audio/luts.h +++ b/quantum/audio/luts.h @@ -16,14 +16,8 @@ #pragma once -#if defined(__AVR__) -# include -# include -# include -#else -# include -# include -#endif +#include +#include #define VIBRATO_LUT_LENGTH 20 diff --git a/quantum/audio/voices.h b/quantum/audio/voices.h index 578350d337df..1f402e7e1269 100644 --- a/quantum/audio/voices.h +++ b/quantum/audio/voices.h @@ -18,9 +18,6 @@ #include #include -#if defined(__AVR__) -# include -#endif #include "wait.h" #include "luts.h" diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 570d4798debe..e0fd6d479325 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -19,10 +19,6 @@ along with this program. If not, see . #include "report.h" #include "keycode.h" #include "action_layer.h" -#if defined(__AVR__) -# include -# include -#endif #include "action.h" #include "action_macro.h" #include "debug.h" diff --git a/quantum/quantum.h b/quantum/quantum.h index 46fc0eb1e4c7..55f6dbb7da5a 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -15,16 +15,7 @@ */ #pragma once -#if defined(__AVR__) -# include -# include -# include -#endif -#if defined(PROTOCOL_CHIBIOS) -# include -# include "chibios_config.h" -#endif - +#include "platform.h" #include "wait.h" #include "matrix.h" #include "keymap.h" diff --git a/quantum/rgblight.c b/quantum/rgblight.c index baa10ec416bb..04bbb1283b90 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -16,17 +16,6 @@ #include #include #include -#ifdef __AVR__ -# include -# include -#endif -#ifdef EEPROM_ENABLE -# include "eeprom.h" -#endif -#ifdef STM32_EEPROM_ENABLE -# include -# include "eeprom_stm32.h" -#endif #include "wait.h" #include "progmem.h" #include "sync_timer.h" @@ -35,6 +24,9 @@ #include "debug.h" #include "led_tables.h" #include +#ifdef EEPROM_ENABLE +# include "eeprom.h" +#endif #ifdef VELOCIKEY_ENABLE # include "velocikey.h" #endif diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 58250a088852..c05870f4986a 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -170,15 +170,12 @@ enum RGBLIGHT_EFFECT_MODE { #include #include +#include "progmem.h" #include "eeconfig.h" #include "ws2812.h" #include "color.h" #include "rgblight_list.h" -#if defined(__AVR__) -# include -#endif - #ifdef RGBLIGHT_LAYERS typedef struct { uint8_t index; // The first LED to light diff --git a/tmk_core/common/arm_atsam/platform.h b/tmk_core/common/arm_atsam/platform.h new file mode 100644 index 000000000000..f296d1d535e7 --- /dev/null +++ b/tmk_core/common/arm_atsam/platform.h @@ -0,0 +1,18 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// here just to please the build diff --git a/tmk_core/common/avr/platform.h b/tmk_core/common/avr/platform.h new file mode 100644 index 000000000000..45d9dcebfaaf --- /dev/null +++ b/tmk_core/common/avr/platform.h @@ -0,0 +1,20 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include +#include +#include diff --git a/tmk_core/common/chibios/platform.h b/tmk_core/common/chibios/platform.h new file mode 100644 index 000000000000..8243dcec53f3 --- /dev/null +++ b/tmk_core/common/chibios/platform.h @@ -0,0 +1,19 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include +#include "chibios_config.h" diff --git a/tmk_core/common/print.h b/tmk_core/common/print.h index 48f91e63429b..8c055f549e59 100644 --- a/tmk_core/common/print.h +++ b/tmk_core/common/print.h @@ -47,7 +47,7 @@ void print_set_sendchar(sendchar_func_t func); # define uprintln(s) printf(s "\r\n") # define uprintf printf -# endif /* __AVR__ / PROTOCOL_CHIBIOS / PROTOCOL_ARM_ATSAM */ +# endif /* __has_include_next("_print.h") */ #else /* NO_PRINT */ # undef xprintf // Remove print defines diff --git a/tmk_core/common/timer.h b/tmk_core/common/timer.h index 58f637dd9359..abddcea857dd 100644 --- a/tmk_core/common/timer.h +++ b/tmk_core/common/timer.h @@ -18,11 +18,6 @@ along with this program. If not, see . #pragma once #include -#include - -#if defined(__AVR__) -# include "avr/timer_avr.h" -#endif #define TIMER_DIFF(a, b, max) ((max == UINT8_MAX) ? ((uint8_t)((a) - (b))) : ((max == UINT16_MAX) ? ((uint16_t)((a) - (b))) : ((max == UINT32_MAX) ? ((uint32_t)((a) - (b))) : ((a) >= (b) ? (a) - (b) : (max) + 1 - (b) + (a))))) #define TIMER_DIFF_8(a, b) TIMER_DIFF(a, b, UINT8_MAX) From b69e7431aa2e22b4f4662c64e84ed242caac055e Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 24 Jul 2021 19:07:46 -0700 Subject: [PATCH 072/328] [Keyboard] Fix keymaps for clueboard 66_hotswap (#13694) * [Keyboard] Fix default keymap for clueboard proto * Fix keymaps, because they're not actually revision compatible * Add copyright headers --- .../{ => gen1}/keymaps/66_ansi/keymap.c | 16 ++ .../{ => gen1}/keymaps/66_ansi/readme.md | 0 .../{ => gen1}/keymaps/default/keymap.c | 16 ++ .../{ => gen1}/keymaps/default/readme.md | 0 .../{ => gen1}/keymaps/json/keymap.json | 0 .../prototype/keymaps/66_ansi/keymap.c | 52 +++++++ .../prototype/keymaps/66_ansi/readme.md | 11 ++ .../prototype/keymaps/default/keymap.c | 139 ++++++++++++++++++ .../prototype/keymaps/default/readme.md | 8 + 9 files changed, 242 insertions(+) rename keyboards/clueboard/66_hotswap/{ => gen1}/keymaps/66_ansi/keymap.c (78%) rename keyboards/clueboard/66_hotswap/{ => gen1}/keymaps/66_ansi/readme.md (100%) rename keyboards/clueboard/66_hotswap/{ => gen1}/keymaps/default/keymap.c (88%) rename keyboards/clueboard/66_hotswap/{ => gen1}/keymaps/default/readme.md (100%) rename keyboards/clueboard/66_hotswap/{ => gen1}/keymaps/json/keymap.json (100%) create mode 100644 keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/keymap.c create mode 100644 keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/readme.md create mode 100644 keyboards/clueboard/66_hotswap/prototype/keymaps/default/keymap.c create mode 100644 keyboards/clueboard/66_hotswap/prototype/keymaps/default/readme.md diff --git a/keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c b/keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/keymap.c similarity index 78% rename from keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c rename to keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/keymap.c index 224362fe549e..9c4bd407942b 100644 --- a/keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c +++ b/keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. diff --git a/keyboards/clueboard/66_hotswap/keymaps/66_ansi/readme.md b/keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/readme.md similarity index 100% rename from keyboards/clueboard/66_hotswap/keymaps/66_ansi/readme.md rename to keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/readme.md diff --git a/keyboards/clueboard/66_hotswap/keymaps/default/keymap.c b/keyboards/clueboard/66_hotswap/gen1/keymaps/default/keymap.c similarity index 88% rename from keyboards/clueboard/66_hotswap/keymaps/default/keymap.c rename to keyboards/clueboard/66_hotswap/gen1/keymaps/default/keymap.c index 6451cf0370bc..3d640d89b149 100644 --- a/keyboards/clueboard/66_hotswap/keymaps/default/keymap.c +++ b/keyboards/clueboard/66_hotswap/gen1/keymaps/default/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. diff --git a/keyboards/clueboard/66_hotswap/keymaps/default/readme.md b/keyboards/clueboard/66_hotswap/gen1/keymaps/default/readme.md similarity index 100% rename from keyboards/clueboard/66_hotswap/keymaps/default/readme.md rename to keyboards/clueboard/66_hotswap/gen1/keymaps/default/readme.md diff --git a/keyboards/clueboard/66_hotswap/keymaps/json/keymap.json b/keyboards/clueboard/66_hotswap/gen1/keymaps/json/keymap.json similarity index 100% rename from keyboards/clueboard/66_hotswap/keymaps/json/keymap.json rename to keyboards/clueboard/66_hotswap/gen1/keymaps/json/keymap.json diff --git a/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/keymap.c b/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/keymap.c new file mode 100644 index 000000000000..9c4bd407942b --- /dev/null +++ b/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +#define _BL 0 +#define _FL 1 +#define _CL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[_BL] = LAYOUT_66_ansi( + 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_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_PGDN, \ + KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), + + /* Keymap _FL: Function Layer + */ +[_FL] = LAYOUT_66_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLU, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, \ + _______,_______,_______, _______, _______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), + + /* Keymap _CL: Control layer + */ +[_CL] = LAYOUT_66_ansi( + BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, RGB_TOG, RGB_VAI, \ + _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \ + _______,_______,_______, RGB_MOD, _______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), +}; diff --git a/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/readme.md b/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/readme.md new file mode 100644 index 000000000000..25b5d7eb18c7 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/readme.md @@ -0,0 +1,11 @@ +![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) + +# Basic Clueboard 66% Hotswap Layout + +This is the default layout that comes flashed on every Clueboard. For the most +part it's a straightforward and easy to follow layout. The only unusual key is +the key in the upper left, which sends Escape normally, but Grave when any of +the Ctrl, Alt, or GUI modifiers are held down. + +This uses `LAYOUT_66_ansi`, which is compatable with the `66_ansi` community +layout. diff --git a/keyboards/clueboard/66_hotswap/prototype/keymaps/default/keymap.c b/keyboards/clueboard/66_hotswap/prototype/keymaps/default/keymap.c new file mode 100644 index 000000000000..3b8ff6600506 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/prototype/keymaps/default/keymap.c @@ -0,0 +1,139 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +#define _BL 0 +#define _FL 1 +#define _CL 2 + +enum custom_keycodes { + S_BSKTC = SAFE_RANGE, + S_ODEJY, + S_RCKBY, + S_DOEDR, + S_SCALE, + S_ONEUP, + S_COIN, + S_SONIC, + S_ZELDA +}; + +#ifdef AUDIO_ENABLE + float song_basketcase[][2] = SONG(BASKET_CASE); + float song_ode_to_joy[][2] = SONG(ODE_TO_JOY); + float song_rock_a_bye_baby[][2] = SONG(ROCK_A_BYE_BABY); + float song_doe_a_deer[][2] = SONG(DOE_A_DEER); + float song_scale[][2] = SONG(MUSIC_SCALE_SOUND); + float song_coin[][2] = SONG(COIN_SOUND); + float song_one_up[][2] = SONG(ONE_UP_SOUND); + float song_sonic_ring[][2] = SONG(SONIC_RING); + float song_zelda_puzzle[][2] = SONG(ZELDA_PUZZLE); +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[_BL] = LAYOUT( + 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_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_PGDN, \ + KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ + KC_LSFT, KC_NUHS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_NUBS,KC_RSFT, KC_UP, \ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_SPC, KC_RGUI,KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), + + /* Keymap _FL: Function Layer + */ +[_FL] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLU, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, KC_PGUP, \ + _______,_______,_______, _______,_______, _______,_______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), + + /* Keymap _CL: Control layer + */ +[_CL] = LAYOUT( + BL_STEP,S_ONEUP,S_SCALE,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, BL_TOGG, BL_INC, \ + _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_SAI, \ + _______,_______,_______, BL_BRTG,BL_BRTG, _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + #ifdef AUDIO_ENABLE + case S_BSKTC: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_basketcase); + } + return false; + case S_ODEJY: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_ode_to_joy); + } + return false; + case S_RCKBY: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_rock_a_bye_baby); + } + return false; + case S_DOEDR: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_doe_a_deer); + } + return false; + case S_SCALE: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_scale); + } + return false; + case S_ONEUP: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_one_up); + } + return false; + case S_COIN: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_coin); + } + return false; + case S_SONIC: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_sonic_ring); + } + return false; + case S_ZELDA: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_zelda_puzzle); + } + return false; + #endif + } + return true; +} diff --git a/keyboards/clueboard/66_hotswap/prototype/keymaps/default/readme.md b/keyboards/clueboard/66_hotswap/prototype/keymaps/default/readme.md new file mode 100644 index 000000000000..66e52308869d --- /dev/null +++ b/keyboards/clueboard/66_hotswap/prototype/keymaps/default/readme.md @@ -0,0 +1,8 @@ +![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) + +# Default Clueboard 66% Hotswap Layout + +This is the default layout that comes flashed on every Clueboard. For the most +part it's a straightforward and easy to follow layout. The only unusual key is +the key in the upper left, which sends Escape normally, but Grave when any of +the Ctrl, Alt, or GUI modifiers are held down. From fc9fb2c77505cf1dcf5d1f50dd61a980471b3494 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 25 Jul 2021 17:18:09 +0100 Subject: [PATCH 073/328] Allow output of logging when running unit tests (#13556) * Initial pass at enabling logging for unit tests * Add to docs * Bind debug for more test types * Force everything * Tidy up slightly --- build_test.mk | 13 ++++++++++-- docs/faq_debug.md | 2 +- docs/unit_testing.md | 10 +++++++++- tests/test_common/main.cpp | 32 ++++++++++++++++++++++++++++++ tests/test_common/test_fixture.cpp | 8 ++++++-- 5 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 tests/test_common/main.cpp diff --git a/build_test.mk b/build_test.mk index 77c4265f9371..519c142c4230 100644 --- a/build_test.mk +++ b/build_test.mk @@ -24,7 +24,6 @@ GTEST_INTERNAL_INC :=\ $(GTEST_OUTPUT)_SRC :=\ googletest/src/gtest-all.cc\ - googletest/src/gtest_main.cc\ googlemock/src/gmock-all.cc $(GTEST_OUTPUT)_DEFS := @@ -35,7 +34,8 @@ CREATE_MAP := no VPATH +=\ $(LIB_PATH)/googletest\ - $(LIB_PATH)/googlemock + $(LIB_PATH)/googlemock\ + $(LIB_PATH)/printf all: elf @@ -43,6 +43,10 @@ VPATH += $(COMMON_VPATH) PLATFORM:=TEST PLATFORM_KEY:=test +ifeq ($(strip $(DEBUG)), 1) +CONSOLE_ENABLE = yes +endif + ifneq ($(filter $(FULL_TESTS),$(TEST)),) include tests/$(TEST)/rules.mk endif @@ -55,6 +59,11 @@ ifneq ($(filter $(FULL_TESTS),$(TEST)),) include build_full_test.mk endif +$(TEST)_SRC += \ + tests/test_common/main.c \ + $(LIB_PATH)/printf/printf.c \ + $(COMMON_DIR)/printf.c + $(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC) $(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC) $(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS) diff --git a/docs/faq_debug.md b/docs/faq_debug.md index 13a649bfa2f3..1afa38a6243b 100644 --- a/docs/faq_debug.md +++ b/docs/faq_debug.md @@ -28,7 +28,7 @@ For compatible platforms, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) can Prefer a terminal based solution? [hid_listen](https://www.pjrc.com/teensy/hid_listen.html), provided by PJRC, can also be used to display debug messages. Prebuilt binaries for Windows,Linux,and MacOS are available. -## Sending Your Own Debug Messages +## Sending Your Own Debug Messages :id=debug-api Sometimes it's useful to print debug messages from within your [custom code](custom_quantum_functions.md). Doing so is pretty simple. Start by including `print.h` at the top of your file: diff --git a/docs/unit_testing.md b/docs/unit_testing.md index 82073a201655..a0eef51cb638 100644 --- a/docs/unit_testing.md +++ b/docs/unit_testing.md @@ -36,12 +36,20 @@ Note how there's several different tests, each mocking out a separate part. Also ## Running the Tests -To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test:matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. +To run all the tests in the codebase, type `make test:all`. You can also run test matching a substring by typing `make test:matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. ## Debugging the Tests If there are problems with the tests, you can find the executable in the `./build/test` folder. You should be able to run those with GDB or a similar debugger. +To forward any [debug messages](unit_testing.md#debug-api) to `stderr`, the tests can run with `DEBUG=1`. For example + +```console +make test:all DEBUG=1 +``` + +Alternatively, add `CONSOLE_ENABLE=yes` to the tests `rules.mk`. + ## Full Integration Tests It's not yet possible to do a full integration test, where you would compile the whole firmware and define a keymap that you are going to test. However there are plans for doing that, because writing tests that way would probably be easier, at least for people that are not used to unit testing. diff --git a/tests/test_common/main.cpp b/tests/test_common/main.cpp new file mode 100644 index 000000000000..3e4b4c0f9540 --- /dev/null +++ b/tests/test_common/main.cpp @@ -0,0 +1,32 @@ +#include "gtest/gtest.h" + +extern "C" { +#include "stdio.h" +#include "debug.h" + +int8_t sendchar(uint8_t c) { + fprintf(stderr, "%c", c); + return 0; +} + +__attribute__((weak)) debug_config_t debug_config = {0}; + +void init_logging(void) { + print_set_sendchar(sendchar); + + // Customise these values to desired behaviour + // debug_enable = true; + // debug_matrix = true; + // debug_keyboard = true; + // debug_mouse = true; + debug_config.raw = 0xFF; +} +} + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + + init_logging(); + + return RUN_ALL_TESTS(); +} \ No newline at end of file diff --git a/tests/test_common/test_fixture.cpp b/tests/test_common/test_fixture.cpp index 20ed838eb6a9..e041df7128df 100644 --- a/tests/test_common/test_fixture.cpp +++ b/tests/test_common/test_fixture.cpp @@ -7,10 +7,10 @@ #include "action_tapping.h" extern "C" { +#include "debug.h" +#include "eeconfig.h" #include "action_layer.h" -} -extern "C" { void set_time(uint32_t t); void advance_time(uint32_t ms); } @@ -21,6 +21,10 @@ using testing::Between; using testing::Return; void TestFixture::SetUpTestCase() { + // The following is enough to bootstrap the values set in main + eeconfig_init_quantum(); + eeconfig_update_debug(debug_config.raw); + TestDriver driver; EXPECT_CALL(driver, send_keyboard_mock(_)); keyboard_init(); From d45da3f0fb76222a2af63b0b61f21ae78117b2d4 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 25 Jul 2021 18:18:22 -0700 Subject: [PATCH 074/328] [Keyboard] Update ZSA Keyboard Readmes and keymaps (#13041) * [Keyboard] Update ZSA Keyboard Readmes and keymaps * Apply suggestions from code review Co-authored-by: Ryan * Remove custom rgb code for RGB_M_P * Fix inevitable typo Co-authored-by: Ryan * Update keyboards/planck/ez/readme.md Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/ergodox_ez/ergodox_ez.c | 181 ++++--- keyboards/ergodox_ez/keymaps/default/keymap.c | 156 +++--- keyboards/ergodox_ez/rules.mk | 7 - keyboards/moonlander/config.h | 2 +- keyboards/moonlander/keymaps/default/config.h | 2 +- keyboards/moonlander/keymaps/default/keymap.c | 2 +- keyboards/moonlander/matrix.c | 2 +- keyboards/moonlander/moonlander.c | 11 +- keyboards/moonlander/moonlander.h | 2 +- keyboards/moonlander/readme.md | 18 +- keyboards/planck/ez/config.h | 5 +- keyboards/planck/ez/ez.c | 2 + keyboards/planck/ez/ez.h | 2 + keyboards/planck/ez/glow/config.h | 5 +- keyboards/planck/ez/glow/glow.c | 18 + keyboards/planck/ez/glow/glow.h | 18 + keyboards/planck/ez/readme.md | 18 +- keyboards/planck/keymaps/oryx/config.h | 29 +- keyboards/planck/keymaps/oryx/keymap.c | 456 +++++------------- keyboards/planck/keymaps/oryx/rules.mk | 5 +- 20 files changed, 386 insertions(+), 555 deletions(-) diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 4d356752113c..47dd1b0cc9ea 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -44,29 +44,29 @@ extern inline void ergodox_led_all_set(uint8_t n); keyboard_config_t keyboard_config; -bool i2c_initialized = 0; +bool i2c_initialized = 0; i2c_status_t mcp23018_status = 0x20; void matrix_init_kb(void) { - // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md") + // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md") TCCR1A = 0b10101001; // set and configure fast PWM TCCR1B = 0b00001001; // set and configure fast PWM // (tied to Vcc for hardware convenience) - DDRB &= ~(1<<4); // set B(4) as input - PORTB &= ~(1<<4); // set B(4) internal pull-up disabled + DDRB &= ~(1 << 4); // set B(4) as input + PORTB &= ~(1 << 4); // set B(4) internal pull-up disabled // unused pins - C7, D4, D5, D7, E6 // set as input with internal pull-up enabled - DDRC &= ~(1<<7); - DDRD &= ~(1<<5 | 1<<4); - DDRE &= ~(1<<6); - PORTC |= (1<<7); - PORTD |= (1<<5 | 1<<4); - PORTE |= (1<<6); + DDRC &= ~(1 << 7); + DDRD &= ~(1 << 5 | 1 << 4); + DDRE &= ~(1 << 6); + PORTC |= (1 << 7); + PORTD |= (1 << 5 | 1 << 4); + PORTE |= (1 << 6); keyboard_config.raw = eeconfig_read_kb(); - ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); + ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4); #ifdef RGB_MATRIX_ENABLE if (keyboard_config.rgb_matrix_enable) { rgb_matrix_set_flags(LED_FLAG_ALL); @@ -80,8 +80,7 @@ void matrix_init_kb(void) { matrix_init_user(); } -void ergodox_blink_all_leds(void) -{ +void ergodox_blink_all_leds(void) { ergodox_led_all_off(); ergodox_led_all_set(LED_BRIGHTNESS_DEFAULT); ergodox_right_led_1_on(); @@ -94,17 +93,17 @@ void ergodox_blink_all_leds(void) ergodox_left_led_1_on(); _delay_ms(50); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = ergodox_left_leds_update(); } ergodox_left_led_2_on(); _delay_ms(50); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = ergodox_left_leds_update(); } ergodox_left_led_3_on(); _delay_ms(50); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = ergodox_left_leds_update(); } #endif ergodox_right_led_1_off(); @@ -116,21 +115,21 @@ void ergodox_blink_all_leds(void) _delay_ms(50); ergodox_left_led_1_off(); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = ergodox_left_leds_update(); } _delay_ms(50); ergodox_left_led_2_off(); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = ergodox_left_leds_update(); } _delay_ms(50); ergodox_left_led_3_off(); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = ergodox_left_leds_update(); } #endif - //ergodox_led_all_on(); + // ergodox_led_all_on(); //_delay_ms(333); ergodox_led_all_off(); } @@ -156,27 +155,35 @@ uint8_t init_mcp23018(void) { // - unused : input : 1 // - input : input : 1 // - driving : output : 0 - mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(IODIRA, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00000000, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00111111, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); + if (mcp23018_status) goto out; + mcp23018_status = i2c_write(IODIRA, ERGODOX_EZ_I2C_TIMEOUT); + if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000, ERGODOX_EZ_I2C_TIMEOUT); + if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111, ERGODOX_EZ_I2C_TIMEOUT); + if (mcp23018_status) goto out; i2c_stop(); // set pull-up // - unused : on : 1 // - input : on : 1 // - driving : off : 0 - mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(GPPUA, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00000000, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00111111, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); + if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPPUA, ERGODOX_EZ_I2C_TIMEOUT); + if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000, ERGODOX_EZ_I2C_TIMEOUT); + if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111, ERGODOX_EZ_I2C_TIMEOUT); + if (mcp23018_status) goto out; out: i2c_stop(); #ifdef LEFT_LEDS if (!mcp23018_status) mcp23018_status = ergodox_left_leds_update(); -#endif // LEFT_LEDS +#endif // LEFT_LEDS // SREG=sreg_prev; @@ -185,12 +192,12 @@ uint8_t init_mcp23018(void) { #ifdef LEFT_LEDS uint8_t ergodox_left_leds_update(void) { - if (mcp23018_status) { // if there was an error + if (mcp23018_status) { // if there was an error return mcp23018_status; } -#define LEFT_LED_1_SHIFT 7 // in MCP23018 port B -#define LEFT_LED_2_SHIFT 6 // in MCP23018 port B -#define LEFT_LED_3_SHIFT 7 // in MCP23018 port A +# define LEFT_LED_1_SHIFT 7 // in MCP23018 port B +# define LEFT_LED_2_SHIFT 6 // in MCP23018 port B +# define LEFT_LED_3_SHIFT 7 // in MCP23018 port A // set logical value (doesn't matter on inputs) // - unused : hi-Z : 1 @@ -200,47 +207,42 @@ uint8_t ergodox_left_leds_update(void) { if (mcp23018_status) goto out; mcp23018_status = i2c_write(OLATA, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b11111111 - & ~(ergodox_left_led_3<event.pressed) { - keyboard_config.led_level++; - if (keyboard_config.led_level > 4) { + keyboard_config.led_level++; + if (keyboard_config.led_level > 4) { keyboard_config.led_level = 0; - } - ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); - eeconfig_update_kb(keyboard_config.raw); - layer_state_set_kb(layer_state); + } + ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4); + eeconfig_update_kb(keyboard_config.raw); + layer_state_set_kb(layer_state); } break; -#ifdef RGB_MATRIX_ENABLE +# ifdef RGB_MATRIX_ENABLE case TOGGLE_LAYER_COLOR: if (record->event.pressed) { keyboard_config.disable_layer_led ^= 1; - if (keyboard_config.disable_layer_led) - rgb_matrix_set_color_all(0, 0, 0); + if (keyboard_config.disable_layer_led) rgb_matrix_set_color_all(0, 0, 0); eeconfig_update_kb(keyboard_config.raw); } break; case RGB_TOG: if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - keyboard_config.rgb_matrix_enable = false; - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - keyboard_config.rgb_matrix_enable = true; - } - break; - } - eeconfig_update_kb(keyboard_config.raw); + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + keyboard_config.rgb_matrix_enable = false; + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + keyboard_config.rgb_matrix_enable = true; + } break; + } + eeconfig_update_kb(keyboard_config.raw); } return false; -#endif +# endif } return process_record_user(keycode, record); } #endif void eeconfig_init_kb(void) { // EEPROM is getting reset! - keyboard_config.raw = 0; - keyboard_config.led_level = 4; + keyboard_config.raw = 0; + keyboard_config.led_level = 4; keyboard_config.rgb_matrix_enable = true; eeconfig_update_kb(keyboard_config.raw); eeconfig_init_user(); diff --git a/keyboards/ergodox_ez/keymaps/default/keymap.c b/keyboards/ergodox_ez/keymaps/default/keymap.c index 9079e48fcb3a..3c0ef320a42f 100644 --- a/keyboards/ergodox_ez/keymaps/default/keymap.c +++ b/keyboards/ergodox_ez/keymaps/default/keymap.c @@ -2,20 +2,20 @@ #include "version.h" enum layers { - BASE, // default layer - SYMB, // symbols + BASE, // default layer + SYMB, // symbols MDIA, // media keys }; enum custom_keycodes { #ifdef ORYX_CONFIGURATOR - VRSN = EZ_SAFE_RANGE, + VRSN = EZ_SAFE_RANGE, #else - VRSN = SAFE_RANGE, + VRSN = SAFE_RANGE, #endif - RGB_SLD }; +// clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, EEP_RST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_0, KC_EQL, KC_TRNS, - RGB_MOD, KC_TRNS, RGB_TOG, RGB_SLD, + RGB_MOD, KC_TRNS, RGB_TOG, RGB_M_P, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, RGB_HUD, RGB_HUI ), @@ -115,94 +115,90 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK ), }; +// clang-format on bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch (keycode) { - case VRSN: - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - return false; - #ifdef RGBLIGHT_ENABLE - case RGB_SLD: - rgblight_mode(1); - return false; - #endif + if (record->event.pressed) { + switch (keycode) { + case VRSN: + SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + return false; + } } - } - return true; + return true; } // Runs just one time when the keyboard initializes. void keyboard_post_init_user(void) { #ifdef RGBLIGHT_COLOR_LAYER_0 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); #endif }; // Runs whenever there is a layer state change. layer_state_t layer_state_set_user(layer_state_t state) { - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); - uint8_t layer = get_highest_layer(state); - switch (layer) { - case 0: - #ifdef RGBLIGHT_COLOR_LAYER_0 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); - #endif - break; - case 1: - ergodox_right_led_1_on(); - #ifdef RGBLIGHT_COLOR_LAYER_1 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); - #endif - break; - case 2: - ergodox_right_led_2_on(); - #ifdef RGBLIGHT_COLOR_LAYER_2 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); - #endif - break; - case 3: - ergodox_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_3 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); - #endif - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - #ifdef RGBLIGHT_COLOR_LAYER_4 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); - #endif - break; - case 5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_5 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); - #endif - break; - case 6: - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_6 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); - #endif - break; - case 7: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_7 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); - #endif - break; - default: - break; + uint8_t layer = get_highest_layer(state); + switch (layer) { + case 0: +#ifdef RGBLIGHT_COLOR_LAYER_0 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); +#endif + break; + case 1: + ergodox_right_led_1_on(); +#ifdef RGBLIGHT_COLOR_LAYER_1 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); +#endif + break; + case 2: + ergodox_right_led_2_on(); +#ifdef RGBLIGHT_COLOR_LAYER_2 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); +#endif + break; + case 3: + ergodox_right_led_3_on(); +#ifdef RGBLIGHT_COLOR_LAYER_3 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); +#endif + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); +#ifdef RGBLIGHT_COLOR_LAYER_4 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); +#endif + break; + case 5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); +#ifdef RGBLIGHT_COLOR_LAYER_5 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); +#endif + break; + case 6: + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); +#ifdef RGBLIGHT_COLOR_LAYER_6 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); +#endif + break; + case 7: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); +#ifdef RGBLIGHT_COLOR_LAYER_7 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); +#endif + break; + default: + break; } - return state; + return state; }; diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk index 1000ef78633c..dce2aff80323 100644 --- a/keyboards/ergodox_ez/rules.mk +++ b/keyboards/ergodox_ez/rules.mk @@ -2,13 +2,6 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = halfkay # If you have Left LEDs (see diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index c88feea3d006..16a41c9cc676 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/moonlander/keymaps/default/config.h b/keyboards/moonlander/keymaps/default/config.h index 576aae9f52f7..83ea2a1b583a 100644 --- a/keyboards/moonlander/keymaps/default/config.h +++ b/keyboards/moonlander/keymaps/default/config.h @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/moonlander/keymaps/default/keymap.c b/keyboards/moonlander/keymaps/default/keymap.c index 6d98a8607e4c..0cb7fa5d2720 100644 --- a/keyboards/moonlander/keymaps/default/keymap.c +++ b/keyboards/moonlander/keymaps/default/keymap.c @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/moonlander/matrix.c b/keyboards/moonlander/matrix.c index 566f8bb1b214..dbd44d16189b 100644 --- a/keyboards/moonlander/matrix.c +++ b/keyboards/moonlander/matrix.c @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/moonlander/moonlander.c b/keyboards/moonlander/moonlander.c index bc4047b847eb..d66b74d97345 100644 --- a/keyboards/moonlander/moonlander.c +++ b/keyboards/moonlander/moonlander.c @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -340,15 +340,6 @@ led_config_t g_led_config = { { } }; // clang-format on -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} #endif #ifdef AUDIO_ENABLE diff --git a/keyboards/moonlander/moonlander.h b/keyboards/moonlander/moonlander.h index 08bec5c070e7..8598260211a4 100644 --- a/keyboards/moonlander/moonlander.h +++ b/keyboards/moonlander/moonlander.h @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/moonlander/readme.md b/keyboards/moonlander/readme.md index 7ddfdb84a712..0ad2e4775cfa 100644 --- a/keyboards/moonlander/readme.md +++ b/keyboards/moonlander/readme.md @@ -19,7 +19,23 @@ Flashing example for this keyboard: 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). -## Oryx Configuation + +## Moonlander Customization + +### Indicator LEDs + +There are 6 functions for enabling and disabling the LEDs on the top of the boards. The functions are `ML_LED_1(bool)` through `ML_LED_6(bool)`, with the first LED being the left most LED on the left hand, and the sixth LED being the right most LED on the right side. + +By default, the Indicator LEDs are used to indicate the layer state for the keyboard. If you wish to change this (and indicate caps/num/scroll lock status instead), then define `MOONLANDER_USER_LEDS` in your `config.h` file. + + +### Oryx Configuration + +To enable the features from Oryx (ZSA's Configurator), either compile the the `default` keymap, or add `#define ORYX_CONFIGURATOR` to your `config.h` file. + +This enables the front Indicator LEDs, and the `TOGGLE_LAYER_COLOR` keycode. The `TOGGLE_LAYER_COLOR` keycode toggles the customized LED map configured on Oryx. + +### RGB Matrix Features If you're using the Smart LED (layer indication) feature from the Oryx Configurator, you want to make sure that you enable these options by adding `#define ORYX_CONFIGURATOR` to your keymap's `config.h`. diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index 7f8876496382..5a0d9697b805 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -1,5 +1,6 @@ -/* - * Copyright 2018 Jack Humbert +/* Copyright 2018 Jack Humbert + * Copyright 2015 ZSA Technology Labs Inc (@zsa) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c index 8c498a552092..6b381ed4a668 100644 --- a/keyboards/planck/ez/ez.c +++ b/keyboards/planck/ez/ez.c @@ -1,4 +1,6 @@ /* Copyright 2018 Jack Humbert + * Copyright 2015 ZSA Technology Labs Inc (@zsa) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/planck/ez/ez.h b/keyboards/planck/ez/ez.h index d11929d3ef88..0915ddbea46a 100644 --- a/keyboards/planck/ez/ez.h +++ b/keyboards/planck/ez/ez.h @@ -1,4 +1,6 @@ /* Copyright 2018 Jack Humbert + * Copyright 2015 ZSA Technology Labs Inc (@zsa) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/planck/ez/glow/config.h b/keyboards/planck/ez/glow/config.h index 21a339da2893..55ce2890107b 100644 --- a/keyboards/planck/ez/glow/config.h +++ b/keyboards/planck/ez/glow/config.h @@ -1,5 +1,6 @@ -/* - * Copyright 2018 Jack Humbert +/* Copyright 2018 Jack Humbert + * Copyright 2015 ZSA Technology Labs Inc (@zsa) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/planck/ez/glow/glow.c b/keyboards/planck/ez/glow/glow.c index 1813ccae093e..c6733bbe502d 100644 --- a/keyboards/planck/ez/glow/glow.c +++ b/keyboards/planck/ez/glow/glow.c @@ -1 +1,19 @@ +/* Copyright 2018 Jack Humbert + * Copyright 2015 ZSA Technology Labs Inc (@zsa) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "glow.h" diff --git a/keyboards/planck/ez/glow/glow.h b/keyboards/planck/ez/glow/glow.h index d8a01f43592f..cfc26b5e0371 100644 --- a/keyboards/planck/ez/glow/glow.h +++ b/keyboards/planck/ez/glow/glow.h @@ -1,3 +1,21 @@ +/* Copyright 2018 Jack Humbert + * Copyright 2015 ZSA Technology Labs Inc (@zsa) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include "ez.h" diff --git a/keyboards/planck/ez/readme.md b/keyboards/planck/ez/readme.md index 247bf7448afa..f85ab5969369 100644 --- a/keyboards/planck/ez/readme.md +++ b/keyboards/planck/ez/readme.md @@ -4,24 +4,26 @@ A variant of the Planck featuring a 2u spacebar and per-key RGB backlighting. -Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert) +Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert), [Drashna Jael're](https://github.com/drashna) Hardware Supported: Planck EZ -Hardware Availability: [ergodox-ez.com](https://ergodox-ez.com/pages/planck) +Hardware Availability: [ZSA](https://www.zsa.io/planck/) Make example for this keyboard (after setting up your build environment): - make planck/ez:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -# Planck EZ Glow + make planck/ez:oryx For the per key RGB version of this keyboard, you want to use the "glow" subdirectory. For example: - make planck/ez/glow:default + make planck/ez/glow:oryx + +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). ## Planck EZ Configuration (from Oryx) +To enable the features from Oryx (ZSA's Configurator), either compile the the `oryx` keymap, or add `#define ORYX_CONFIGURATOR` to your `config.h` file. + +This enables the front Indicator LEDs, and the `TOGGLE_LAYER_COLOR`, and `LED_LEVEL` keycodes. The `TOGGLE_LAYER_COLOR` keycode toggles the customized LED map configured on Oryx. The `LED_LEVEL` cycles through the brightness levels for the front "teeth" LEDs. + ### Indicator LEDs The two front "teeth" LED indicators are PWM controlled. If you have `ORYX_CONFIGURATOR` defined in your keymap's `config.h`, you can use the `LED_LEVEL` to cycle through preset vales (0, 25%, 50%, 75%, 100%), and will be saved to EEPROM (persistent storage) diff --git a/keyboards/planck/keymaps/oryx/config.h b/keyboards/planck/keymaps/oryx/config.h index a9171bf538e4..e6250bb39a56 100644 --- a/keyboards/planck/keymaps/oryx/config.h +++ b/keyboards/planck/keymaps/oryx/config.h @@ -1,16 +1,39 @@ +/* Copyright 2020 ZSA Technology Inc + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #ifdef AUDIO_ENABLE -#define STARTUP_SONG SONG(PLANCK_SOUND) +# define STARTUP_SONG SONG(PLANCK_SOUND) #endif #define MIDI_BASIC #define ENCODER_RESOLUTION 4 -#define ORYX_CONFIGURATOR - /* Set any config.h overrides for your specific keymap here. See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file */ +#define ORYX_CONFIGURATOR +#define USB_SUSPEND_WAKEUP_DELAY 0 +#define FIRMWARE_VERSION u8"vAxxa/ZlQEV" +#define RGB_MATRIX_STARTUP_SPD 60 + +#define PLANCK_EZ_LED_LOWER 1 +#define PLANCK_EZ_LED_RAISE 2 +#define PLANCK_EZ_LED_ADJUST 3 diff --git a/keyboards/planck/keymaps/oryx/keymap.c b/keyboards/planck/keymaps/oryx/keymap.c index 8abe417d729f..e84b9913a8a7 100644 --- a/keyboards/planck/keymaps/oryx/keymap.c +++ b/keyboards/planck/keymaps/oryx/keymap.c @@ -1,373 +1,151 @@ -#include QMK_KEYBOARD_H -#include "muse.h" -#include "eeprom.h" -#include "keymap_german.h" -#include "keymap_nordic.h" -#include "keymap_french.h" -#include "keymap_spanish.h" -#include "keymap_hungarian.h" -#include "keymap_swedish.h" -//#include "keymap_br_abnt2.h" -#include "keymap_canadian_multilingual.h" -#include "keymap_german_ch.h" - -#define KC_MAC_UNDO LGUI(KC_Z) -#define KC_MAC_CUT LGUI(KC_X) -#define KC_MAC_COPY LGUI(KC_C) -#define KC_MAC_PASTE LGUI(KC_V) -#define KC_PC_UNDO LCTL(KC_Z) -#define KC_PC_CUT LCTL(KC_X) -#define KC_PC_COPY LCTL(KC_C) -#define KC_PC_PASTE LCTL(KC_V) -#define NO_TH ALGR(KC_T) -#define NO_ETH ALGR(KC_D) +/* Copyright 2020 ZSA Technology Inc + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ -enum planck_layers { - _QWERTY, - _COLEMAK, - _DVORAK, - _LOWER, - _RAISE, - _PLOVER, - _ADJUST -}; +#include QMK_KEYBOARD_H enum planck_keycodes { - QWERTY = EZ_SAFE_RANGE, - COLEMAK, - DVORAK, - PLOVER, - BACKLIT, - EXT_PLV, - RGB_SLD + RGB_SLD = EZ_SAFE_RANGE, }; -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) +enum planck_layers { + _BASE, + _LOWER, + _RAISE, + _ADJUST, +}; +# define LOWER MO(_LOWER) +# define RAISE MO(_RAISE) +// clang-format off 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 | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT_planck_grid( - 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 , - BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = LAYOUT_planck_grid( - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DVORAK] = LAYOUT_planck_grid( - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, - KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , - BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, 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 |ISO ~ |ISO | | Home | End | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = LAYOUT_planck_grid( - 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 - * ,-----------------------------------------------------------------------------------. - * | ` | 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 | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = LAYOUT_planck_grid( - 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 -), - -/* Plover layer (http://opensteno.org) - * ,-----------------------------------------------------------------------------------. - * | # | # | # | # | # | # | # | # | # | # | # | # | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | S | T | P | H | * | * | F | P | L | T | D | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | S | K | W | R | * | * | R | B | G | S | Z | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Exit | | | A | O | | E | U | | | | - * `-----------------------------------------------------------------------------------' - */ -[_PLOVER] = LAYOUT_planck_grid( - KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , - XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX -), - -/* Adjust (Lower + Raise) - * v------------------------RGB CONTROL--------------------v - * ,----------------------------------------------------------------------------------- - * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = LAYOUT_planck_grid( - _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, TOGGLE_LAYER_COLOR, LED_LEVEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) + [_BASE] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPACE, + KC_ESCAPE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_ENTER, + WEBUSB_PAIR, KC_LCTRL, KC_LALT, KC_LGUI, LOWER, KC_SPACE, KC_NO, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + ), + + [_LOWER] = LAYOUT_planck_grid( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + KC_DELETE, 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_NONUS_HASH, KC_NONUS_BSLASH,KC_HOME, KC_END, _______, + KC_COMMA, _______, _______, _______, _______, _______, KC_NO, _______, KC_MEDIA_NEXT_TRACK,KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_MEDIA_PLAY_PAUSE + ), + + [_RAISE] = LAYOUT_planck_grid( + KC_GRAVE,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINUS, KC_EQUAL, KC_LBRACKET, KC_RBRACKET, KC_BSLASH, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NONUS_HASH, KC_NONUS_BSLASH,KC_PGUP, KC_PGDOWN, _______, + _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_MEDIA_NEXT_TRACK,KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_MEDIA_PLAY_PAUSE + ), + + [_ADJUST] = LAYOUT_planck_grid( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_DEL, _______, AU_ON, AU_OFF, AU_TOG, _______, _______, RGB_TOG, RGB_VAI, RGB_VAD, LED_LEVEL, RESET, + _______, _______, MU_ON, MU_OFF, MU_TOG, _______, _______, RGB_MOD, RGB_HUI, RGB_HUD, TOGGLE_LAYER_COLOR, _______, + _______, _______, _______, _______, _______, _______, KC_NO, _______, _______, _______, _______, _______ + ), }; - - -#ifdef AUDIO_ENABLE - float plover_song[][2] = SONG(PLOVER_SOUND); - float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); -#endif - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} +// clang-format on const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { - [0] = { {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255}, {130,255,255} }, - - [1] = { {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {146,224,255}, {146,224,255}, {146,224,255}, {146,224,255}, {146,224,255}, {146,224,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {146,224,255}, {146,224,255}, {146,224,255}, {146,224,255}, {146,224,255}, {146,224,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {42,255,255}, {32,255,234}, {32,255,234}, {32,255,234}, {32,255,234} }, + [0] = {{42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {32, 255, 234}, {32, 255, 234}, {32, 255, 234}, {32, 255, 234}}, - [2] = { {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246}, {89,255,246} }, + [1] = {{89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}}, - [3] = { {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {249,228,255}, {249,228,255}, {249,228,255}, {216,255,255}, {216,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {216,255,255}, {14,255,255}, {216,255,255}, {216,255,255}, {249,228,255}, {249,228,255}, {249,228,255}, {216,255,255}, {216,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255}, {216,255,255} }, + [2] = {{216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {249, 228, 255}, {249, 228, 255}, {249, 228, 255}, {216, 255, 255}, {216, 255, 255}, {105, 255, 255}, {105, 255, 255}, {105, 255, 255}, {216, 255, 255}, {14, 255, 255}, {216, 255, 255}, {216, 255, 255}, {249, 228, 255}, {249, 228, 255}, {249, 228, 255}, {216, 255, 255}, {216, 255, 255}, {105, 255, 255}, {105, 255, 255}, {105, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}, {216, 255, 255}}, }; void set_layer_color(int layer) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { - HSV hsv = { - .h = pgm_read_byte(&ledmap[layer][i][0]), - .s = pgm_read_byte(&ledmap[layer][i][1]), - .v = pgm_read_byte(&ledmap[layer][i][2]), - }; - if (!hsv.h && !hsv.s && !hsv.v) { - rgb_matrix_set_color( i, 0, 0, 0 ); - } else { - RGB rgb = hsv_to_rgb( hsv ); - float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX; - rgb_matrix_set_color( i, f * rgb.r, f * rgb.g, f * rgb.b ); + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + HSV hsv = { + .h = pgm_read_byte(&ledmap[layer][i][0]), + .s = pgm_read_byte(&ledmap[layer][i][1]), + .v = pgm_read_byte(&ledmap[layer][i][2]), + }; + if (!hsv.h && !hsv.s && !hsv.v) { + rgb_matrix_set_color(i, 0, 0, 0); + } else { + RGB rgb = hsv_to_rgb(hsv); + float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX; + rgb_matrix_set_color(i, f * rgb.r, f * rgb.g, f * rgb.b); + } } - } } void rgb_matrix_indicators_user(void) { - if (g_suspend_state || keyboard_config.disable_layer_led) { return; } - switch (biton32(layer_state)) { - case 0: - set_layer_color(0); - break; - case 3: - set_layer_color(1); - break; - case 4: - set_layer_color(2); - break; - case 6: - set_layer_color(3); - break; - default: - if (rgb_matrix_get_flags() == LED_FLAG_NONE) - rgb_matrix_set_color_all(0, 0, 0); - break; - } + if (g_suspend_state || keyboard_config.disable_layer_led) { + return; + } + switch (biton32(layer_state)) { + case 1: + set_layer_color(0); + break; + case 2: + set_layer_color(1); + break; + case 3: + set_layer_color(2); + break; + default: + if (rgb_matrix_get_flags() == LED_FLAG_NONE) rgb_matrix_set_color_all(0, 0, 0); + break; + } } - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case RGB_SLD: - if (record->event.pressed) { - rgblight_mode(1); - } - return false; - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; - case BACKLIT: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - #ifdef KEYBOARD_planck_rev5 - PORTE &= ~(1<<6); - #endif - } else { - unregister_code(KC_RSFT); - #ifdef KEYBOARD_planck_rev5 - PORTE |= (1<<6); - #endif - } - return false; - break; - case PLOVER: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_SONG(plover_song); - #endif - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - return false; - break; - case EXT_PLV: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(plover_gb_song); - #endif - layer_off(_PLOVER); - } - return false; - break; - } - return true; + switch (keycode) { + case RGB_SLD: + if (record->event.pressed) { + rgblight_mode(1); + } + return false; + } + return true; } -bool muse_mode = false; -uint8_t last_muse_note = 0; -uint16_t muse_counter = 0; -uint8_t muse_offset = 70; -uint16_t muse_tempo = 50; - -bool encoder_update(bool clockwise) { - if (muse_mode) { - if (IS_LAYER_ON(_RAISE)) { - if (clockwise) { - muse_offset++; - } else { - muse_offset--; - } - } else { - if (clockwise) { - muse_tempo+=1; - } else { - muse_tempo-=1; - } - } +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { +# ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); +# else + tap_code(KC_PGDN); +# endif } else { - if (clockwise) { - #ifdef MOUSEKEY_ENABLE - register_code(KC_MS_WH_DOWN); - unregister_code(KC_MS_WH_DOWN); - #else - register_code(KC_PGDN); - unregister_code(KC_PGDN); - #endif - } else { - #ifdef MOUSEKEY_ENABLE - register_code(KC_MS_WH_UP); - unregister_code(KC_MS_WH_UP); - #else - register_code(KC_PGUP); - unregister_code(KC_PGUP); - #endif - } +# ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); +# else + tap_code(KC_PGUP); +# endif } return true; } -void matrix_scan_user(void) { -#ifdef AUDIO_ENABLE - if (muse_mode) { - if (muse_counter == 0) { - uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; - if (muse_note != last_muse_note) { - stop_note(compute_freq_for_midi_note(last_muse_note)); - play_note(compute_freq_for_midi_note(muse_note), 0xF); - last_muse_note = muse_note; - } - } - muse_counter = (muse_counter + 1) % muse_tempo; +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; } -#endif } + +layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } diff --git a/keyboards/planck/keymaps/oryx/rules.mk b/keyboards/planck/keymaps/oryx/rules.mk index 7657a3043413..1e29b5f218f7 100644 --- a/keyboards/planck/keymaps/oryx/rules.mk +++ b/keyboards/planck/keymaps/oryx/rules.mk @@ -1,6 +1,7 @@ -SRC += muse.c # Set any rules.mk overrides for your specific keymap here. # See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file -LTO_ENABLE = yes +CONSOLE_ENABLE = no COMMAND_ENABLE = no MOUSEKEY_ENABLE = no +WEBUSB_ENABLE = yes +ORYX_ENABLE = yes From 2e5cecd704ee576cc471f286c5cae9ace8379af6 Mon Sep 17 00:00:00 2001 From: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Mon, 26 Jul 2021 12:22:13 +0800 Subject: [PATCH 075/328] [Keyboard] Change RGB light defaults for melgeek/mj6xy (#13657) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/melgeek/mj6xy/rev3/config.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/melgeek/mj6xy/rev3/config.h b/keyboards/melgeek/mj6xy/rev3/config.h index 5024f7a3f8ea..8ea2b720309b 100755 --- a/keyboards/melgeek/mj6xy/rev3/config.h +++ b/keyboards/melgeek/mj6xy/rev3/config.h @@ -42,6 +42,8 @@ #ifdef RGB_DI_PIN # define RGBLIGHT_ANIMATIONS +# define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_EFFECT_RAINBOW_MOOD + 6) +# define RGBLIGHT_DEFAULT_SPD 10 # define RGBLED_NUM 16 # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 From a73e0a7b1308825ffd2fff18ff385add09f31c03 Mon Sep 17 00:00:00 2001 From: Cyril Date: Mon, 26 Jul 2021 01:51:23 -0400 Subject: [PATCH 076/328] Revert "Fixed the ortho60 and ortho48 matrix layout after testing (#12106)" (#13456) This reverts commit e25f05224f1c06aeed13b2e99e8e755af65ac689. --- keyboards/cannonkeys/ortho48/ortho48.h | 4 ++-- keyboards/cannonkeys/ortho60/ortho60.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/cannonkeys/ortho48/ortho48.h b/keyboards/cannonkeys/ortho48/ortho48.h index b0197c3cf77c..1e51c37af7ee 100644 --- a/keyboards/cannonkeys/ortho48/ortho48.h +++ b/keyboards/cannonkeys/ortho48/ortho48.h @@ -6,13 +6,13 @@ 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, k36 , k37, k38, k39, k3a, k3b \ + k30, k31, k32, k33, k34, k35 , k37, k38, k39, k3a, k3b \ ) \ { \ { 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, KC_NO, k36, k37, k38, k39, k3a, k3b } \ + { k30, k31, k32, k33, k34, k35, KC_NO, k37, k38, k39, k3a, k3b } \ } #define LAYOUT_ortho_4x12( \ diff --git a/keyboards/cannonkeys/ortho60/ortho60.h b/keyboards/cannonkeys/ortho60/ortho60.h index 2dcc00ddb9fd..0f3ae127aada 100644 --- a/keyboards/cannonkeys/ortho60/ortho60.h +++ b/keyboards/cannonkeys/ortho60/ortho60.h @@ -7,14 +7,14 @@ 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, k42, k43, k44, k46 , k47, k48, k49, k4a, k4b \ + k40, k41, k42, k43, k44, k45 , k47, k48, k49, 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, k42, k43, k44, KC_NO, k46, k47, k48, k49, k4a, k4b }, \ + { k40, k41, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b }, \ } #define LAYOUT_ortho_5x12( \ From e6e4ec6267bef6ea571338968cd614eb5e8b7ea2 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 26 Jul 2021 13:02:44 -0700 Subject: [PATCH 077/328] 40percentclub/nein: update info.json layout macro reference (#13726) - change LAYOUT to LAYOUT_ortho_3x3 --- keyboards/40percentclub/nein/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/40percentclub/nein/info.json b/keyboards/40percentclub/nein/info.json index 2a28ffc00869..4c4b2a384dae 100644 --- a/keyboards/40percentclub/nein/info.json +++ b/keyboards/40percentclub/nein/info.json @@ -5,7 +5,7 @@ "width": 3, "height": 3, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_3x3": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, From b1c5a53a68ca8a304e7739467f2793c223853f68 Mon Sep 17 00:00:00 2001 From: datafx <2432997+datafx@users.noreply.github.com> Date: Mon, 26 Jul 2021 20:07:29 -0400 Subject: [PATCH 078/328] Add bootloader size (#13729) * Add bootloader size Bootloader size needs to be 6144 to allow QMK to jump to the correct location with bootmagic * Include dz60rgb v2.1 Add boot loader size to this pcb also --- keyboards/dztech/dz60rgb/v2_1/rules.mk | 1 + keyboards/dztech/dz65rgb/v3/rules.mk | 1 + 2 files changed, 2 insertions(+) diff --git a/keyboards/dztech/dz60rgb/v2_1/rules.mk b/keyboards/dztech/dz60rgb/v2_1/rules.mk index 7fdadb18dcee..d8d17811c8bd 100644 --- a/keyboards/dztech/dz60rgb/v2_1/rules.mk +++ b/keyboards/dztech/dz60rgb/v2_1/rules.mk @@ -3,6 +3,7 @@ MCU = atmega32u4 # Bootloader selection BOOTLOADER = lufa-ms +BOOTLOADER_SIZE = 6144 # Build Options # change yes to no to disable diff --git a/keyboards/dztech/dz65rgb/v3/rules.mk b/keyboards/dztech/dz65rgb/v3/rules.mk index ace821a327f3..10a6be57fb19 100755 --- a/keyboards/dztech/dz65rgb/v3/rules.mk +++ b/keyboards/dztech/dz65rgb/v3/rules.mk @@ -3,6 +3,7 @@ MCU = atmega32u4 # Bootloader selection BOOTLOADER = lufa-ms +BOOTLOADER_SIZE = 6144 # Build Options # change yes to no to disable From a617c8b80a5e1760ffaac5e4367d89065f2fbce9 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 26 Jul 2021 19:43:48 -0700 Subject: [PATCH 079/328] [Keyboard] Ares refactor (#13730) --- keyboards/ares/ares.h | 33 +++- keyboards/ares/config.h | 4 +- keyboards/ares/info.json | 228 +++++++++++++++++++++++- keyboards/ares/keymaps/default/keymap.c | 36 ++-- keyboards/ares/readme.md | 6 +- keyboards/ares/rules.mk | 29 ++- 6 files changed, 290 insertions(+), 46 deletions(-) diff --git a/keyboards/ares/ares.h b/keyboards/ares/ares.h index 6628bb022709..13b8d885cf30 100644 --- a/keyboards/ares/ares.h +++ b/keyboards/ares/ares.h @@ -1,5 +1,6 @@ /* Copyright 2019 Evy Dekkers + 2021 James Young for QMK (@noroadsleft) 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 @@ -21,7 +22,7 @@ along with this program. If not, see . #define XXX KC_NO -#define LAYOUT( \ +#define LAYOUT_all( \ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ @@ -35,3 +36,33 @@ along with this program. If not, see . {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \ {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \ } + +#define LAYOUT_60_ansi_split_bs_rshift( \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k00, k01, k02, k06, k0a, k0b, k0c, k0d \ +) \ +{ \ + {k00, k01, k02, XXX, XXX, XXX, k06, XXX, XXX, XXX, k0a, k0b, k0c, k0d, XXX}, \ + {k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \ + {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \ +} + +#define LAYOUT_60_hhkb( \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k01, k02, k06, k0b, k0c \ +) \ +{ \ + {XXX, k01, k02, XXX, XXX, XXX, k06, XXX, XXX, XXX, XXX, k0b, k0c, XXX, XXX}, \ + {k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \ + {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \ +} diff --git a/keyboards/ares/config.h b/keyboards/ares/config.h index 35e885d69310..652b71e46369 100644 --- a/keyboards/ares/config.h +++ b/keyboards/ares/config.h @@ -49,5 +49,5 @@ along with this program. If not, see . // #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) /* Bootmagic Lite key configuration */ -// #define BOOTMAGIC_LITE_ROW 0 -// #define BOOTMAGIC_LITE_COLUMN 0 +#define BOOTMAGIC_LITE_ROW 4 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/ares/info.json b/keyboards/ares/info.json index 00911deb93cf..ba5cf1592f7d 100644 --- a/keyboards/ares/info.json +++ b/keyboards/ares/info.json @@ -1,12 +1,224 @@ { - "keyboard_name": "LSJ Ares", - "url": "", - "maintainer": "qmk", - "width": 15, - "height": 5, + "keyboard_name": "LSJ Ares", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { - "layout": [{"label":"~", "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}, {"label":"|", "x":13, "y":0}, {"label":"Back space", "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 Lock", "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":2, "w":1.25}, {"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}, {"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_all": { + "layout": [ + {"label":"~", "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}, + {"label":"|", "x":13, "y":0}, + {"label":"Back space", "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 Lock", "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":2, "w":1.25}, + + {"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_ansi_split_bs_rshift": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_hhkb": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/ares/keymaps/default/keymap.c b/keyboards/ares/keymaps/default/keymap.c index 490dbdf62632..8b95db5078fa 100644 --- a/keyboards/ares/keymaps/default/keymap.c +++ b/keyboards/ares/keymaps/default/keymap.c @@ -17,24 +17,26 @@ along with this program. If not, see . #include QMK_KEYBOARD_H -#define _MA 0 -#define _FN 1 - -#define ______ KC_TRNS +enum layer_names { + _MA, + _FN, +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_MA] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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(_FN), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTRL), -[_FN] = LAYOUT( - RGB_MOD, BL_TOGG, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, RESET, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______) - + [_MA] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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(_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + [_FN] = LAYOUT_all( + RGB_MOD, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + }; diff --git a/keyboards/ares/readme.md b/keyboards/ares/readme.md index 376cee437f80..a1e04ecf91e1 100644 --- a/keyboards/ares/readme.md +++ b/keyboards/ares/readme.md @@ -1,8 +1,8 @@ -# lSJ Ares +# LSJ Ares * Keyboard Maintainer: QMK Community * Hardware Supported: LSJ Ares PCB -* Hardware Availability: +* Hardware Availability: [2018 Geekhack Group Buy](https://geekhack.org/index.php?topic=93146.0) Make example for this keyboard (after setting up your build environment): @@ -12,6 +12,6 @@ Flashing example for this keyboard ([after setting up the bootloadHID flashing e make ares:default:flash -**Reset Key**: Hold down the *left control* key while plugging in the keyboard. +**Reset Key**: Hold down the top left key, commonly programmed as *Escape*, while plugging in the keyboard. 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). diff --git a/keyboards/ares/rules.mk b/keyboards/ares/rules.mk index 076cbdc39ab6..d24b74c954f7 100644 --- a/keyboards/ares/rules.mk +++ b/keyboards/ares/rules.mk @@ -2,21 +2,20 @@ MCU = atmega32a # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = bootloadHID -# build options -BOOTMAGIC_ENABLE = lite -MOUSEKEY_ENABLE = no -EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = yes -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = no +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow WS2812_DRIVER = i2c + +LAYOUTS = 60_ansi_split_bs_rshift 60_hhkb From ae2c2358ec9f581c3c1890edcb618297983746d1 Mon Sep 17 00:00:00 2001 From: ForsakenRei Date: Mon, 26 Jul 2021 22:45:08 -0400 Subject: [PATCH 080/328] [Docs] Add `default` case in Tap Dance Example 6 (#13727) Added a `default` case in `switch(ql_tap_state.state)` at line 493 and 494. Without it compile firmware with Example 6 code will encounter 2 errors: `enumeration value 'TD_NONE' not handled in switch` `enumeration value 'TD_UNKNOWN' not handled in switch` --- docs/feature_tap_dance.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index 7396e791c3cd..5d77f3e08d01 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -490,6 +490,8 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) { layer_on(_MY_LAYER); } break; + default: + break; } } From 9088df04c3e1c1b47115a5d2fb7373e424e0dcb5 Mon Sep 17 00:00:00 2001 From: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Wed, 28 Jul 2021 03:24:51 -0400 Subject: [PATCH 081/328] [Keyboard] fix short circuit in led_update_kb for quefrency rev3 (#13752) Co-authored-by: Jonavin <=> --- keyboards/keebio/quefrency/rev3/rev3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keebio/quefrency/rev3/rev3.c b/keyboards/keebio/quefrency/rev3/rev3.c index 63e67bf59c45..40771e2c68e1 100644 --- a/keyboards/keebio/quefrency/rev3/rev3.c +++ b/keyboards/keebio/quefrency/rev3/rev3.c @@ -24,7 +24,7 @@ void matrix_init_kb(void) { bool led_update_kb(led_t led_state) { // Only update if left half - if (isLeftHand && led_update_user(led_state)) { + if (led_update_user(led_state) && isLeftHand) { writePin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); } return true; From fcce9f2a4f3e59ba41749c22460fe549e717393c Mon Sep 17 00:00:00 2001 From: Shane Celis Date: Wed, 28 Jul 2021 07:00:55 -0400 Subject: [PATCH 082/328] fix: Fix typo in documentation for one shot keys. ON_TOGG -> OS_TOGG (#13754) `ON_TOGG` doesn't exist in the codebase. --- docs/one_shot_keys.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/one_shot_keys.md b/docs/one_shot_keys.md index f1f93199c28f..49910a49e2ff 100644 --- a/docs/one_shot_keys.md +++ b/docs/one_shot_keys.md @@ -19,7 +19,7 @@ You can control the behavior of one shot keys by defining these in `config.h`: * `OSL(layer)` - momentary switch to *layer*. * `OS_ON` - Turns on One Shot keys. * `OS_OFF` - Turns off One Shot keys. OSM act as regular mod keys, OSL act like `MO`. -* `ON_TOGG` - Toggles the one shot key status. +* `OS_TOGG` - Toggles the one shot key status. Sometimes, you want to activate a one-shot key as part of a macro or tap dance routine. From 491b83aa32e59be68387c25fcfa7bd6e7cb51479 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 28 Jul 2021 21:02:29 +1000 Subject: [PATCH 083/328] Update "make format" message (#13741) * Update "make format" message * Add examples for `qmk` command as well --- Makefile | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index e007ae3679c7..f91d95a12c20 100644 --- a/Makefile +++ b/Makefile @@ -252,11 +252,20 @@ define PARSE_RULE else $$(info make: *** No rule to make target '$1'. Stop.) $$(info |) - $$(info | QMK's make format recently changed to use folder locations and colons:) - $$(info | make project_folder:keymap[:target]) - $$(info | Examples:) - $$(info | make dz60:default) - $$(info | make planck/rev6:default:flash) + $$(info | QMK's make format is:) + $$(info | make keyboard_folder:keymap_folder[:target]) + $$(info |) + $$(info | Where `keyboard_folder` is the path to the keyboard relative to) + $$(info | `qmk_firmware/keyboards/`, and `keymap_folder` is the name of the) + $$(info | keymap folder under that board's `keymaps/` directory.) + $$(info |) + $$(info | Examples:) + $$(info | keyboards/dz60, keyboards/dz60/keymaps/default) + $$(info | -> make dz60:default) + $$(info | -> qmk compile -kb dz60 -km default) + $$(info | keyboards/planck/rev6, keyboards/planck/keymaps/default) + $$(info | -> make planck/rev6:default:flash) + $$(info | -> qmk flash -kb planck/rev6 -km default) $$(info |) endif endef From ccdb432f715c2b04fd749f819496c6e1f0ca3e0e Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 28 Jul 2021 16:34:17 -0700 Subject: [PATCH 084/328] Allison Numpad: Configurator fix for LAYOUT_numpad_6x4 (#13759) * info.json: human-friendly formatting - one key object per line; line breaks between physical rows - four-space indent - remove trailing whitespace * info.json: correct key object order for LAYOUT_numpad_6x4 --- keyboards/allison_numpad/info.json | 67 +++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 5 deletions(-) diff --git a/keyboards/allison_numpad/info.json b/keyboards/allison_numpad/info.json index 8b4258bd1a79..1447c4104317 100644 --- a/keyboards/allison_numpad/info.json +++ b/keyboards/allison_numpad/info.json @@ -2,14 +2,71 @@ "keyboard_name": "allison_numpad", "url": "www.yiancar-designs.com", "maintainer": "Yiancar", - "width": 4, - "height": 6.25, + "width": 4, + "height": 6.25, "layouts": { "LAYOUT_ortho_6x4": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"2,0", "x":0, "y":2.25}, {"label":"2,1", "x":1, "y":2.25}, {"label":"2,2", "x":2, "y":2.25}, {"label":"2,3", "x":3, "y":2.25}, {"label":"3,0", "x":0, "y":3.25}, {"label":"3,1", "x":1, "y":3.25}, {"label":"3,2", "x":2, "y":3.25}, {"label":"3,3", "x":3, "y":3.25}, {"label":"4,0", "x":0, "y":4.25}, {"label":"4,1", "x":1, "y":4.25}, {"label":"4,2", "x":2, "y":4.25}, {"label":"4,3", "x":3, "y":4.25}, {"label":"5,0", "x":0, "y":5.25}, {"label":"5,1", "x":1, "y":5.25}, {"label":"5,2", "x":2, "y":5.25}, {"label":"5,3", "x":3, "y":5.25}] + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + + {"label":"1,0", "x":0, "y":1.25}, + {"label":"1,1", "x":1, "y":1.25}, + {"label":"1,2", "x":2, "y":1.25}, + {"label":"1,3", "x":3, "y":1.25}, + + {"label":"2,0", "x":0, "y":2.25}, + {"label":"2,1", "x":1, "y":2.25}, + {"label":"2,2", "x":2, "y":2.25}, + {"label":"2,3", "x":3, "y":2.25}, + + {"label":"3,0", "x":0, "y":3.25}, + {"label":"3,1", "x":1, "y":3.25}, + {"label":"3,2", "x":2, "y":3.25}, + {"label":"3,3", "x":3, "y":3.25}, + + {"label":"4,0", "x":0, "y":4.25}, + {"label":"4,1", "x":1, "y":4.25}, + {"label":"4,2", "x":2, "y":4.25}, + {"label":"4,3", "x":3, "y":4.25}, + + {"label":"5,0", "x":0, "y":5.25}, + {"label":"5,1", "x":1, "y":5.25}, + {"label":"5,2", "x":2, "y":5.25}, + {"label":"5,3", "x":3, "y":5.25} + ] }, "LAYOUT_numpad_6x4": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"2,0", "x":0, "y":2.25}, {"label":"2,1", "x":1, "y":2.25}, {"label":"2,2", "x":2, "y":2.25}, {"label":"3,3", "x":3, "y":2.25, "h":2}, {"label":"3,0", "x":0, "y":3.25}, {"label":"3,1", "x":1, "y":3.25}, {"label":"3,2", "x":2, "y":3.25}, {"label":"4,0", "x":0, "y":4.25}, {"label":"4,1", "x":1, "y":4.25}, {"label":"4,2", "x":2, "y":4.25}, {"label":"5,3", "x":3, "y":4.25, "h":2}, {"label":"5,0", "x":0, "y":5.25, "w":2}, {"label":"5,2", "x":2, "y":5.25}] + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + + {"label":"1,0", "x":0, "y":1.25}, + {"label":"1,1", "x":1, "y":1.25}, + {"label":"1,2", "x":2, "y":1.25}, + {"label":"1,3", "x":3, "y":1.25}, + + {"label":"2,0", "x":0, "y":2.25}, + {"label":"2,1", "x":1, "y":2.25}, + {"label":"2,2", "x":2, "y":2.25}, + + {"label":"3,0", "x":0, "y":3.25}, + {"label":"3,1", "x":1, "y":3.25}, + {"label":"3,2", "x":2, "y":3.25}, + {"label":"3,3", "x":3, "y":2.25, "h":2}, + + {"label":"4,0", "x":0, "y":4.25}, + {"label":"4,1", "x":1, "y":4.25}, + {"label":"4,2", "x":2, "y":4.25}, + + {"label":"5,0", "x":0, "y":5.25, "w":2}, + {"label":"5,2", "x":2, "y":5.25}, + {"label":"5,3", "x":3, "y":4.25, "h":2} + ] } } -} \ No newline at end of file +} From e6462119199addb6c6e99613699017b633a48155 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 29 Jul 2021 03:00:39 +0100 Subject: [PATCH 085/328] Fix unit tests after recent refactor (#13765) --- tmk_core/common/test/platform.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tmk_core/common/test/platform.h diff --git a/tmk_core/common/test/platform.h b/tmk_core/common/test/platform.h new file mode 100644 index 000000000000..f296d1d535e7 --- /dev/null +++ b/tmk_core/common/test/platform.h @@ -0,0 +1,18 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// here just to please the build From f3d790195027935574fd5f73d0c2e409e01f5266 Mon Sep 17 00:00:00 2001 From: Jordan Blackbourn Date: Fri, 30 Jul 2021 03:23:27 +1200 Subject: [PATCH 086/328] [Keyboard] Added Orthocode keyboard (#13487) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/orthocode/config.h | 93 +++++++++++ keyboards/orthocode/info.json | 84 ++++++++++ keyboards/orthocode/keymaps/default/keymap.c | 159 +++++++++++++++++++ keyboards/orthocode/orthocode.c | 16 ++ keyboards/orthocode/orthocode.h | 35 ++++ keyboards/orthocode/readme.md | 17 ++ keyboards/orthocode/rules.mk | 26 +++ 7 files changed, 430 insertions(+) create mode 100644 keyboards/orthocode/config.h create mode 100644 keyboards/orthocode/info.json create mode 100644 keyboards/orthocode/keymaps/default/keymap.c create mode 100644 keyboards/orthocode/orthocode.c create mode 100644 keyboards/orthocode/orthocode.h create mode 100644 keyboards/orthocode/readme.md create mode 100644 keyboards/orthocode/rules.mk diff --git a/keyboards/orthocode/config.h b/keyboards/orthocode/config.h new file mode 100644 index 000000000000..823a48e368cb --- /dev/null +++ b/keyboards/orthocode/config.h @@ -0,0 +1,93 @@ +/*Copyright 2020 Jrodna + +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 VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Jrodna +#define PRODUCT OrthoCode + + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * 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 {B0, B1, B2, B3, B4} +#define MATRIX_COL_PINS {C4, C3, C2, C1, C0, D7, D6, A7, A4, A5, A6, A3, A2, A1, A0} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define USB_MAX_POWER_CONSUMPTION 100 + +#define ENCODERS_PAD_A { D1 } +#define ENCODERS_PAD_B { D0 } +#define ENCODER_RESOLUTION 1 +#define TAP_CODE_DELAY 10 + +#define RGB_DI_PIN D5 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 10 /*Change for the number of leds on the strip you attach*/ + #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 */ +/*== 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 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +// #define DEBOUNCE 5 +#define DEBOUNCE 0 + +/* 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 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/orthocode/info.json b/keyboards/orthocode/info.json new file mode 100644 index 000000000000..fec4da90bf2c --- /dev/null +++ b/keyboards/orthocode/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "OrthoCode", + "url": "https://github.com/Jrodna/OrthoCode", + "maintainer": "Jrodna", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Game", "x":0.5, "y":1}, + {"label":"Esc", "x":1.75, "y":1}, + {"label":"", "x":3, "y":1}, + {"label":"", "x":4, "y":1}, + {"label":"", "x":5, "y":1}, + {"label":"", "x":6, "y":1}, + {"label":"", "x":7, "y":1}, + {"label":"", "x":10.5, "y":1}, + {"label":"", "x":11.5, "y":1}, + {"label":"", "x":12.5, "y":1}, + {"label":"", "x":13.5, "y":1}, + {"label":"", "x":14.5, "y":1}, + {"label":"_", "x":15.5, "y":1}, + {"label":"+", "x":16.5, "y":1}, + {"label":"Home", "x":17.5, "y":1}, + {"label":"M1", "x":0.25, "y":2}, + {"label":"Tab", "x":1.5, "y":2, "w":1.5}, + {"label":"Q", "x":3, "y":2}, + {"label":"W", "x":4, "y":2}, + {"label":"E", "x":5, "y":2}, + {"label":"R", "x":6, "y":2}, + {"label":"T", "x":7, "y":2}, + {"label":"Y", "x":10.5, "y":2}, + {"label":"U", "x":11.5, "y":2}, + {"label":"I", "x":12.5, "y":2}, + {"label":"O", "x":13.5, "y":2}, + {"label":"P", "x":14.5, "y":2}, + {"label":"|", "x":15.5, "y":2, "w":1.5}, + {"label":"Delete", "x":17, "y":2}, + {"label":"End", "x":18, "y":2}, + {"label":"M2", "x":0, "y":3}, + {"label":"Ctrl", "x":1.25, "y":3, "w":1.75}, + {"label":"A", "x":3, "y":3}, + {"label":"S", "x":4, "y":3}, + {"label":"D", "x":5, "y":3}, + {"label":"F", "x":6, "y":3}, + {"label":"G", "x":7, "y":3}, + {"label":"H", "x":10.5, "y":3}, + {"label":"J", "x":11.5, "y":3}, + {"label":"K", "x":12.5, "y":3}, + {"label":"L", "x":13.5, "y":3}, + {"label":":", "x":14.5, "y":3}, + {"label":"\"", "x":15.5, "y":3}, + {"label":"Enter", "x":16.5, "y":3, "w":2.25}, + {"label":"Rotary", "x":0.5, "y":0}, + {"label":"Layer", "x":0.75, "y":4, "w":2.25}, + {"label":"Z", "x":3, "y":4}, + {"label":"X", "x":4, "y":4}, + {"label":"C", "x":5, "y":4}, + {"label":"V", "x":6, "y":4}, + {"label":"B", "x":7, "y":4}, + {"label":"N", "x":10.5, "y":4}, + {"label":"M", "x":11.5, "y":4}, + {"label":"<", "x":12.5, "y":4}, + {"label":">", "x":13.5, "y":4}, + {"label":"?", "x":14.5, "y":4}, + {"label":"\u2191", "x":17, "y":4}, + {"label":"Ctrl", "x":1.25, "y":5, "w":1.25}, + {"label":"Win", "x":2.5, "y":5, "w":1.25}, + {"label":"Alt", "x":3.75, "y":5, "w":1.25}, + {"label":"Fn", "x":5.5, "y":5, "w":1.25}, + {"label":"th1", "x":6.75, "y":5, "h":2.75}, + {"label":"th2", "x":7.75, "y":5.25, "h":2.25}, + {"label":"th3", "x":9.75, "y":5.25, "h":2.25}, + {"label":"th4", "x":10.75, "y":5, "h":2.75}, + {"label":"Fn", "x":11.75, "y":5, "w":1.25}, + {"label":"Alt", "x":13, "y":5, "w":1.25}, + {"label":"Ctrl", "x":14.25, "y":5, "w":1.25}, + {"label":"\u2190", "x":16, "y":5}, + {"label":"\u2193", "x":17, "y":5}, + {"label":"\u2192", "x":18, "y":5}] + } + } +} + diff --git a/keyboards/orthocode/keymaps/default/keymap.c b/keyboards/orthocode/keymaps/default/keymap.c new file mode 100644 index 000000000000..11a20102c3dd --- /dev/null +++ b/keyboards/orthocode/keymaps/default/keymap.c @@ -0,0 +1,159 @@ +/* Copyright 2020 Jrodna + * + * 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 custom_keycodes { + QWERTY = SAFE_RANGE, + SHIFTSPACE, + ILIKEFROG +}; + +#define KC_SHSP SHIFTSPACE +#define KC_FROG ILIKEFROG + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + TG(2), 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_HOME, + 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_BSLS, KC_DEL, KC_END, + RGB_MOD, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC__MUTE, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_RSFT, KC_ENT, KC_BSPC, KC_SHSP, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT( + /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ + TG(3), KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + /* tab Q W E R T Y U I O P \ delete end */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS, KC_TRNS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, + /* caps A S D F G H J K L ; ' enter */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, + /* shift Z X C V B N M , . / up */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_EQL, LSFT(KC_EQL), LSFT(KC_9), LSFT(KC_0), KC_TRNS, KC_VOLU, + /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right*/ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS), + [2] = LAYOUT( + /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* tab Q W E R T Y U I O P \ delete end */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, + /* caps A S D F G H J K L ; ' enter */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, + /* Rotary shift Z X C V B N M , . / up */ + KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right*/ + KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [3] = LAYOUT( + /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ + TG(3), KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, + /* tab Q W E R T Y U I O P \ delete end */ + KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, + /* caps A S D F G H J K L ; ' enter */ + KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, + /* Rotary shift Z X C V B N M , . / up */ + KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, + /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right*/ + KC_FROG, KC_FROG, KC_FROG, MO(1), KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG), + +}; + + + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static bool shiftspace_mods = false; + static int frogchar = 0; + switch (keycode) { + case SHIFTSPACE: + if (record->event.pressed) { + if(get_mods() & MOD_BIT(KC_RSFT)) { + register_code(KC_MINS); + shiftspace_mods = true; + } + else { + register_code(KC_SPC); + } + } else { + if (shiftspace_mods) { + unregister_code(KC_MINS); + shiftspace_mods = false; + } else { + unregister_code(KC_SPC); + } + } + return false; + break; + case ILIKEFROG: + if (record->event.pressed) { + switch (frogchar) + { + case 0: + SEND_STRING("I"); + break; + case 1: + SEND_STRING(" "); + break; + case 2: + SEND_STRING("L"); + break; + case 3: + SEND_STRING("i"); + break; + case 4: + SEND_STRING("k"); + break; + case 5: + SEND_STRING("e"); + break; + case 6: + SEND_STRING(" "); + break; + case 7: + SEND_STRING("F"); + break; + case 8: + SEND_STRING("r"); + break; + case 9: + SEND_STRING("o"); + break; + case 10: + SEND_STRING("g"); + break; + case 11: + SEND_STRING(" "); + break; + } + frogchar = (frogchar + 1) % 12; + } + break; + } + return true; + +} + + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + // Volume control + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + return true; +} +#endif diff --git a/keyboards/orthocode/orthocode.c b/keyboards/orthocode/orthocode.c new file mode 100644 index 000000000000..8de13e2abe2a --- /dev/null +++ b/keyboards/orthocode/orthocode.c @@ -0,0 +1,16 @@ +/* Copyright 2020 Jrodna + * + * 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 "orthocode.h" \ No newline at end of file diff --git a/keyboards/orthocode/orthocode.h b/keyboards/orthocode/orthocode.h new file mode 100644 index 000000000000..83da04130338 --- /dev/null +++ b/keyboards/orthocode/orthocode.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Jrodna + * + * 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 _x_ KC_NO + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + 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, K3D, \ + K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E \ +) { \ +{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ +{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ +{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, _x_ }, \ +{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, _x_, K3D, _x_ }, \ +{ _x_, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E} \ +} diff --git a/keyboards/orthocode/readme.md b/keyboards/orthocode/readme.md new file mode 100644 index 000000000000..4a2dfc01bf80 --- /dev/null +++ b/keyboards/orthocode/readme.md @@ -0,0 +1,17 @@ +# ORTHOCODE + +An ortholinear keyboard with thumb clusters that can be assembled with only through hole components, including usb type-c and compatibility for standard keysets. + +* Keyboard Maintainer: [Jrodna](https://github.com/Jrodna) +* Hardware Supported: OrthoCode, atmega32a +* Hardware Availability: [GitHub](https://github.com/Jrodna/OrthoCode) + +Make example for this keyboard (after setting up your build environment): + + make orthocode:default + +Flashing example for this keyboard: + + make orthocode: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). \ No newline at end of file diff --git a/keyboards/orthocode/rules.mk b/keyboards/orthocode/rules.mk new file mode 100644 index 000000000000..2a8d321a55af --- /dev/null +++ b/keyboards/orthocode/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = atmega32a + +# Processor frequency +F_CPU = 16000000 + +# Bootloader selection +BOOTLOADER = USBasp + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Enables the use of one or more encoders From 3a48cd64cbaa8d7eb9c6984e532bfa95f87c93b7 Mon Sep 17 00:00:00 2001 From: ESCA47 Date: Thu, 29 Jul 2021 08:28:33 -0700 Subject: [PATCH 087/328] [Keyboard] Add GetawayVan (#13412) Co-authored-by: Ryan --- keyboards/esca/getawayvan/chconf.h | 61 +++++++++++++++ keyboards/esca/getawayvan/config.h | 78 +++++++++++++++++++ keyboards/esca/getawayvan/getawayvan.c | 17 ++++ keyboards/esca/getawayvan/getawayvan.h | 33 ++++++++ keyboards/esca/getawayvan/halconf.h | 37 +++++++++ keyboards/esca/getawayvan/info.json | 12 +++ keyboards/esca/getawayvan/keymaps/7u/keymap.c | 44 +++++++++++ .../esca/getawayvan/keymaps/default/keymap.c | 45 +++++++++++ .../esca/getawayvan/keymaps/via/keymap.c | 44 +++++++++++ .../esca/getawayvan/keymaps/via/rules.mk | 1 + keyboards/esca/getawayvan/readme.md | 12 +++ keyboards/esca/getawayvan/rules.mk | 23 ++++++ keyboards/esca/getawayvan_f042/chconf.h | 27 +++++++ keyboards/esca/getawayvan_f042/config.h | 77 ++++++++++++++++++ .../esca/getawayvan_f042/getawayvan_f042.c | 17 ++++ .../esca/getawayvan_f042/getawayvan_f042.h | 33 ++++++++ keyboards/esca/getawayvan_f042/halconf.h | 37 +++++++++ keyboards/esca/getawayvan_f042/info.json | 12 +++ .../esca/getawayvan_f042/keymaps/7u/keymap.c | 44 +++++++++++ .../getawayvan_f042/keymaps/default/keymap.c | 44 +++++++++++ keyboards/esca/getawayvan_f042/readme.md | 12 +++ keyboards/esca/getawayvan_f042/rules.mk | 23 ++++++ 22 files changed, 733 insertions(+) create mode 100644 keyboards/esca/getawayvan/chconf.h create mode 100644 keyboards/esca/getawayvan/config.h create mode 100644 keyboards/esca/getawayvan/getawayvan.c create mode 100644 keyboards/esca/getawayvan/getawayvan.h create mode 100644 keyboards/esca/getawayvan/halconf.h create mode 100644 keyboards/esca/getawayvan/info.json create mode 100644 keyboards/esca/getawayvan/keymaps/7u/keymap.c create mode 100644 keyboards/esca/getawayvan/keymaps/default/keymap.c create mode 100644 keyboards/esca/getawayvan/keymaps/via/keymap.c create mode 100644 keyboards/esca/getawayvan/keymaps/via/rules.mk create mode 100644 keyboards/esca/getawayvan/readme.md create mode 100644 keyboards/esca/getawayvan/rules.mk create mode 100644 keyboards/esca/getawayvan_f042/chconf.h create mode 100644 keyboards/esca/getawayvan_f042/config.h create mode 100644 keyboards/esca/getawayvan_f042/getawayvan_f042.c create mode 100644 keyboards/esca/getawayvan_f042/getawayvan_f042.h create mode 100644 keyboards/esca/getawayvan_f042/halconf.h create mode 100644 keyboards/esca/getawayvan_f042/info.json create mode 100644 keyboards/esca/getawayvan_f042/keymaps/7u/keymap.c create mode 100644 keyboards/esca/getawayvan_f042/keymaps/default/keymap.c create mode 100644 keyboards/esca/getawayvan_f042/readme.md create mode 100644 keyboards/esca/getawayvan_f042/rules.mk diff --git a/keyboards/esca/getawayvan/chconf.h b/keyboards/esca/getawayvan/chconf.h new file mode 100644 index 000000000000..0a31d366f909 --- /dev/null +++ b/keyboards/esca/getawayvan/chconf.h @@ -0,0 +1,61 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/esca/getawayvan/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_USE_REGISTRY TRUE + +#define CH_CFG_USE_WAITEXIT TRUE + +#define CH_CFG_USE_CONDVARS TRUE + +#define CH_CFG_USE_MESSAGES TRUE + +#define CH_CFG_USE_MAILBOXES TRUE + +#define CH_CFG_USE_HEAP TRUE + +#define CH_CFG_USE_MEMPOOLS TRUE + +#define CH_CFG_USE_OBJ_FIFOS TRUE + +#define CH_CFG_USE_PIPES TRUE + +#define CH_CFG_USE_DYNAMIC TRUE + +#define CH_CFG_USE_FACTORY TRUE + +#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE + +#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE + +#define CH_CFG_FACTORY_SEMAPHORES TRUE + +#define CH_CFG_FACTORY_MAILBOXES TRUE + +#define CH_CFG_FACTORY_OBJ_FIFOS TRUE + +#define CH_CFG_FACTORY_PIPES TRUE + +#include_next + diff --git a/keyboards/esca/getawayvan/config.h b/keyboards/esca/getawayvan/config.h new file mode 100644 index 000000000000..e9fbc6b4047d --- /dev/null +++ b/keyboards/esca/getawayvan/config.h @@ -0,0 +1,78 @@ +/* +Copyright 2015 Jun Wako + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xE5CA +#define PRODUCT_ID 0x0401 +#define DEVICE_VER 0x0001 +#define MANUFACTURER esca +#define PRODUCT GetawayVan + + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A4, A13, A10, C13, C14 } +#define MATRIX_ROW_PINS { A9, A8, A3, A5 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 6 + +#define GRAVE_ESC_CTRL_OVERRIDE + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* 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 + +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN B15 +#define RGBLED_NUM 51 +#define RGBLIGHT_HUE_STEP 20 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 +#define RGBLIGHT_LIMIT_VAL 128 + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/esca/getawayvan/getawayvan.c b/keyboards/esca/getawayvan/getawayvan.c new file mode 100644 index 000000000000..ecd2bcf48770 --- /dev/null +++ b/keyboards/esca/getawayvan/getawayvan.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Enrique Cabrera + * + * 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 "getawayvan.h" diff --git a/keyboards/esca/getawayvan/getawayvan.h b/keyboards/esca/getawayvan/getawayvan.h new file mode 100644 index 000000000000..30d67697fafe --- /dev/null +++ b/keyboards/esca/getawayvan/getawayvan.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Enrique Cabrera + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define KNO KC_NO + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ + K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ + K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K40, K41, K42, K43, K45 \ +){ \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ + {K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ + {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ + {K36, K37, K38, KNO, K39, KNO, K40, KNO, K41, K42, K43, K45} \ +} diff --git a/keyboards/esca/getawayvan/halconf.h b/keyboards/esca/getawayvan/halconf.h new file mode 100644 index 000000000000..8e768a63c139 --- /dev/null +++ b/keyboards/esca/getawayvan/halconf.h @@ -0,0 +1,37 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/esca/getawayvan/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_SERIAL_USB TRUE + +#define ADC_USE_WAIT FALSE + +#define ADC_USE_MUTUAL_EXCLUSION FALSE + +#define SERIAL_USB_BUFFERS_SIZE 256 + +#define SPI_USE_WAIT FALSE + +#define SPI_USE_MUTUAL_EXCLUSION FALSE + +#include_next + diff --git a/keyboards/esca/getawayvan/info.json b/keyboards/esca/getawayvan/info.json new file mode 100644 index 000000000000..3e2d186b013b --- /dev/null +++ b/keyboards/esca/getawayvan/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "GetawayVan", + "url": "", + "maintainer": "esca", + "width": 12.75, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"label":"esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"NoNo Key", "x":11, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":"\"", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Win", "x":1, "y":3, "w":1.25}, {"label":"Alt", "x":2.25, "y":3}, {"label":"", "x":3.25, "y":3, "w":2.75}, {"label":"", "x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}] + } + } +} \ No newline at end of file diff --git a/keyboards/esca/getawayvan/keymaps/7u/keymap.c b/keyboards/esca/getawayvan/keymaps/7u/keymap.c new file mode 100644 index 000000000000..c837b1d4af6d --- /dev/null +++ b/keyboards/esca/getawayvan/keymaps/7u/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2021 Enrique Cabrera + * + * 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( /* Qwerty */ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, LT(3, KC_ENT), + KC_LSFT, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_NO, KC_RSFT, + KC_LCTL, KC_LGUI, KC_NO, KC_NO, LT(1, KC_SPC), KC_NO, MO(2), KC_NO, KC_LALT + ), + [1] = LAYOUT( /* LAYER 2 */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_MINS, KC_EQL, KC_BSLS, KC_TRNS, KC_TRNS, KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, KC_SCLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PIPE, KC_LBRC, KC_RBRC, KC_SLSH, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( /* LAYER 1 */ + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MPLY, + KC_TRNS, KC_UNDS, KC_PLUS, KC_PIPE, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPRV, KC_VOLD, KC_MNXT, KC_COLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_QUES, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( /* LAYER 3 */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, 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, RGB_TOG, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/esca/getawayvan/keymaps/default/keymap.c b/keyboards/esca/getawayvan/keymaps/default/keymap.c new file mode 100644 index 000000000000..98c10322ef2d --- /dev/null +++ b/keyboards/esca/getawayvan/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2021 Enrique Cabrera + * + * 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( /* Qwerty */ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, LT(3, KC_ENT), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), LT(1, KC_SPC), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( /* LAYER 2 */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_MINS, KC_EQL, KC_BSLS, KC_TRNS, KC_TRNS, KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, KC_SCLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SLSH, KC_PGUP, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT( /* LAYER 1 */ + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MPLY, + KC_TRNS, KC_UNDS, KC_PLUS, KC_PIPE, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPRV, KC_VOLD, KC_MNXT, KC_COLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_QUES, KC_VOLU, KC_PIPE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + [3] = LAYOUT( /* LAYER 3 */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, 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, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/esca/getawayvan/keymaps/via/keymap.c b/keyboards/esca/getawayvan/keymaps/via/keymap.c new file mode 100644 index 000000000000..8cc90b2299e0 --- /dev/null +++ b/keyboards/esca/getawayvan/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2021 Enrique Cabrera + * + * 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( /* Qwerty */ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, LT(3, KC_ENT), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), LT(1, KC_SPC), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( /* LAYER 2 */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_MINS, KC_EQL, KC_BSLS, KC_TRNS, KC_TRNS, KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, KC_SCLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SLSH, KC_PGUP, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT( /* LAYER 1 */ + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MPLY, + KC_TRNS, KC_UNDS, KC_PLUS, KC_PIPE, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPRV, KC_VOLD, KC_MNXT, KC_COLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_QUES, KC_VOLU, KC_PIPE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + [3] = LAYOUT( /* LAYER 3 */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, 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, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/esca/getawayvan/keymaps/via/rules.mk b/keyboards/esca/getawayvan/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/esca/getawayvan/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/esca/getawayvan/readme.md b/keyboards/esca/getawayvan/readme.md new file mode 100644 index 000000000000..4c0a23384b97 --- /dev/null +++ b/keyboards/esca/getawayvan/readme.md @@ -0,0 +1,12 @@ +# GetawayVan + +GetawayVan Keyboard + +* Keyboard Maintainer: [esca](https://github.com/esca47) +* Hardware Supported: STM32F072C8T6/(STM32F042C6T6 in getawayvan_f042) + +Make example for this keyboard (after setting up your build environment): + + make esca/getawayvan:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/esca/getawayvan/rules.mk b/keyboards/esca/getawayvan/rules.mk new file mode 100644 index 000000000000..58f9a52df0bc --- /dev/null +++ b/keyboards/esca/getawayvan/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes diff --git a/keyboards/esca/getawayvan_f042/chconf.h b/keyboards/esca/getawayvan_f042/chconf.h new file mode 100644 index 000000000000..14b19f08d8fb --- /dev/null +++ b/keyboards/esca/getawayvan_f042/chconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/vinta/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next + diff --git a/keyboards/esca/getawayvan_f042/config.h b/keyboards/esca/getawayvan_f042/config.h new file mode 100644 index 000000000000..f83ec743417a --- /dev/null +++ b/keyboards/esca/getawayvan_f042/config.h @@ -0,0 +1,77 @@ +/* +Copyright 2015 Jun Wako + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xE5CA +#define PRODUCT_ID 0x0401 +#define DEVICE_VER 0x0001 +#define MANUFACTURER esca +#define PRODUCT GetawayVan + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A4, A13, A10, C13, C14 } +#define MATRIX_ROW_PINS { A9, A8, A3, A5 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 6 + +#define GRAVE_ESC_CTRL_OVERRIDE + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* 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 + +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN B15 +#define RGBLED_NUM 51 +#define RGBLIGHT_HUE_STEP 20 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 +#define RGBLIGHT_LIMIT_VAL 128 + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/esca/getawayvan_f042/getawayvan_f042.c b/keyboards/esca/getawayvan_f042/getawayvan_f042.c new file mode 100644 index 000000000000..6ee36ae43229 --- /dev/null +++ b/keyboards/esca/getawayvan_f042/getawayvan_f042.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Enrique Cabrer + * + * 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 "getawayvan_f042.h" diff --git a/keyboards/esca/getawayvan_f042/getawayvan_f042.h b/keyboards/esca/getawayvan_f042/getawayvan_f042.h new file mode 100644 index 000000000000..2e3a4d2dc1fd --- /dev/null +++ b/keyboards/esca/getawayvan_f042/getawayvan_f042.h @@ -0,0 +1,33 @@ + /* Copyright 2021 Enrique Cabrera + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define KNO KC_NO + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ + K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ + K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K40, K41, K42, K43, K45 \ +){ \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ + {K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ + {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ + {K36, K37, K38, KNO, K39, KNO, K40, KNO, K41, K42, K43, K45} \ +} diff --git a/keyboards/esca/getawayvan_f042/halconf.h b/keyboards/esca/getawayvan_f042/halconf.h new file mode 100644 index 000000000000..66ed246c5d4b --- /dev/null +++ b/keyboards/esca/getawayvan_f042/halconf.h @@ -0,0 +1,37 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/vinta/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_SERIAL_USB TRUE + +#define ADC_USE_WAIT FALSE + +#define ADC_USE_MUTUAL_EXCLUSION FALSE + +#define SERIAL_USB_BUFFERS_SIZE 256 + +#define SPI_USE_WAIT FALSE + +#define SPI_USE_MUTUAL_EXCLUSION FALSE + +#include_next + diff --git a/keyboards/esca/getawayvan_f042/info.json b/keyboards/esca/getawayvan_f042/info.json new file mode 100644 index 000000000000..3e2d186b013b --- /dev/null +++ b/keyboards/esca/getawayvan_f042/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "GetawayVan", + "url": "", + "maintainer": "esca", + "width": 12.75, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"label":"esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"NoNo Key", "x":11, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":"\"", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Win", "x":1, "y":3, "w":1.25}, {"label":"Alt", "x":2.25, "y":3}, {"label":"", "x":3.25, "y":3, "w":2.75}, {"label":"", "x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}] + } + } +} \ No newline at end of file diff --git a/keyboards/esca/getawayvan_f042/keymaps/7u/keymap.c b/keyboards/esca/getawayvan_f042/keymaps/7u/keymap.c new file mode 100644 index 000000000000..c837b1d4af6d --- /dev/null +++ b/keyboards/esca/getawayvan_f042/keymaps/7u/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2021 Enrique Cabrera + * + * 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( /* Qwerty */ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, LT(3, KC_ENT), + KC_LSFT, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_NO, KC_RSFT, + KC_LCTL, KC_LGUI, KC_NO, KC_NO, LT(1, KC_SPC), KC_NO, MO(2), KC_NO, KC_LALT + ), + [1] = LAYOUT( /* LAYER 2 */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_MINS, KC_EQL, KC_BSLS, KC_TRNS, KC_TRNS, KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, KC_SCLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PIPE, KC_LBRC, KC_RBRC, KC_SLSH, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( /* LAYER 1 */ + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MPLY, + KC_TRNS, KC_UNDS, KC_PLUS, KC_PIPE, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPRV, KC_VOLD, KC_MNXT, KC_COLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_QUES, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( /* LAYER 3 */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, 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, RGB_TOG, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/esca/getawayvan_f042/keymaps/default/keymap.c b/keyboards/esca/getawayvan_f042/keymaps/default/keymap.c new file mode 100644 index 000000000000..8cc90b2299e0 --- /dev/null +++ b/keyboards/esca/getawayvan_f042/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2021 Enrique Cabrera + * + * 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( /* Qwerty */ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, LT(3, KC_ENT), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), LT(1, KC_SPC), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( /* LAYER 2 */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_MINS, KC_EQL, KC_BSLS, KC_TRNS, KC_TRNS, KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, KC_SCLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SLSH, KC_PGUP, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT( /* LAYER 1 */ + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MPLY, + KC_TRNS, KC_UNDS, KC_PLUS, KC_PIPE, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPRV, KC_VOLD, KC_MNXT, KC_COLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_QUES, KC_VOLU, KC_PIPE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + [3] = LAYOUT( /* LAYER 3 */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, 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, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/esca/getawayvan_f042/readme.md b/keyboards/esca/getawayvan_f042/readme.md new file mode 100644 index 000000000000..0f03237128ff --- /dev/null +++ b/keyboards/esca/getawayvan_f042/readme.md @@ -0,0 +1,12 @@ +# GetawayVan + +GetawayVan Keyboard + +* Keyboard Maintainer: [esca](https://github.com/esca47) +* Hardware Supported: STM32F042C6T6/(STM32F072C8T6 in getawayvan) + +Make example for this keyboard (after setting up your build environment): + + make esca/getawayvan_f042:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/esca/getawayvan_f042/rules.mk b/keyboards/esca/getawayvan_f042/rules.mk new file mode 100644 index 000000000000..8d2786090a4b --- /dev/null +++ b/keyboards/esca/getawayvan_f042/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F042 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes From dc2dfe2a6c8fa14839959680cae1d063b2f9546e Mon Sep 17 00:00:00 2001 From: N2-Sumikko <54104281+N2-Sumikko@users.noreply.github.com> Date: Fri, 30 Jul 2021 00:42:28 +0900 Subject: [PATCH 088/328] [Keyboard] Add halfcliff keyboard (#13515) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/halfcliff/config.h | 69 +++++ keyboards/halfcliff/halfcliff.c | 92 ++++++ keyboards/halfcliff/halfcliff.h | 58 ++++ keyboards/halfcliff/info.json | 88 ++++++ keyboards/halfcliff/keymaps/default/keymap.c | 109 +++++++ keyboards/halfcliff/keymaps/default/readme.md | 1 + keyboards/halfcliff/keymaps/via/keymap.c | 112 +++++++ keyboards/halfcliff/keymaps/via/readme.md | 1 + keyboards/halfcliff/keymaps/via/rules.mk | 1 + keyboards/halfcliff/matrix.c | 277 ++++++++++++++++++ keyboards/halfcliff/readme.md | 19 ++ keyboards/halfcliff/rules.mk | 29 ++ 12 files changed, 856 insertions(+) create mode 100644 keyboards/halfcliff/config.h create mode 100644 keyboards/halfcliff/halfcliff.c create mode 100644 keyboards/halfcliff/halfcliff.h create mode 100644 keyboards/halfcliff/info.json create mode 100644 keyboards/halfcliff/keymaps/default/keymap.c create mode 100644 keyboards/halfcliff/keymaps/default/readme.md create mode 100644 keyboards/halfcliff/keymaps/via/keymap.c create mode 100644 keyboards/halfcliff/keymaps/via/readme.md create mode 100644 keyboards/halfcliff/keymaps/via/rules.mk create mode 100644 keyboards/halfcliff/matrix.c create mode 100644 keyboards/halfcliff/readme.md create mode 100644 keyboards/halfcliff/rules.mk diff --git a/keyboards/halfcliff/config.h b/keyboards/halfcliff/config.h new file mode 100644 index 000000000000..287fd2f4ac7b --- /dev/null +++ b/keyboards/halfcliff/config.h @@ -0,0 +1,69 @@ +/* +Copyright 2021 n2 + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x0335 +#define PRODUCT_ID 0x0021 +#define DEVICE_VER 0x0001 +#define MANUFACTURER n2 +#define PRODUCT halfcliff + +/* key matrix size */ +#define MATRIX_ROWS 20 +#define MATRIX_COLS 5 + +#define MATRIX_ROW_PINS { F5, F6, F7, D7, B5, F5, F6, F7, D7, B5 } +#define MATRIX_COL_PINS { B4, E6, C6, B6, B2 } +#define UNUSED_PINS + +//#define NUMBER_OF_ENCODERS 1 +#define ENCODERS_PAD_A { D4 } +#define ENCODERS_PAD_B { F4 } +#define ENCODER_RESOLUTION 2 + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6 + + #define RGB_DI_PIN D3 + #ifdef RGB_DI_PIN + #define RGBLED_NUM 10 + #define RGBLIGHT_SPLIT + #define RGBLED_SPLIT { 5, 5 } + #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 */ + #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/halfcliff/halfcliff.c b/keyboards/halfcliff/halfcliff.c new file mode 100644 index 000000000000..999e9036db5b --- /dev/null +++ b/keyboards/halfcliff/halfcliff.c @@ -0,0 +1,92 @@ +/* Copyright 2021 n2 + * + * 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 "halfcliff.h" + +#ifdef OLED_DRIVER_ENABLE + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _DEFAULT = 0, + _RAISE, + _LOWER, + _ADJUST +/* _FN */ +}; + +__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +__attribute__((weak)) void oled_task_user(void) { + if (!is_keyboard_master()) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + oled_write_P(qmk_logo, false); + } else { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state)) { + case _DEFAULT: + oled_write_P(PSTR("DEFAULT\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("RAISE\n"), false); + break; + case _LOWER: + oled_write_P(PSTR("LOWER\n"), false); + break; + case _ADJUST: + oled_write_P(PSTR("ADJUST\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.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK\n") : PSTR(" \n"), false); + } +} +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { /* Left side encoder */ + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + } else if (index == 1) { /* Right side encoder */ + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + } + return true; +} +#endif diff --git a/keyboards/halfcliff/halfcliff.h b/keyboards/halfcliff/halfcliff.h new file mode 100644 index 000000000000..6e4c808641e5 --- /dev/null +++ b/keyboards/halfcliff/halfcliff.h @@ -0,0 +1,58 @@ +/* Copyright 2021 n2 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT( \ + l51,l50,l00,l01,l02,l03,l04,r04,r03,r02,r01,r00,r50,r51,r52,\ + l61,l60,l10,l11,l12,l13,l14,r14,r13,r12,r11,r10,r60,r61,r62,\ + l71,l70,l20,l21,l22,l23,l24,r24,r23,r22,r21,r20,r70,r71,r72,\ + l81,l80,l30,l31,l32,l33,l34,r34,r33,r32,r31,r30,r80,r81,r82,\ + l91,l90,l40,l41,l42,l43,l44,r44,r43,r42,r41,r40,r90,r91,r92\ +) \ +{ \ + {l00, l01, l02, l03, l04 }, \ + {l10, l11, l12, l13, l14 }, \ + {l20, l21, l22, l23, l24 }, \ + {l30, l31, l32, l33, l34 }, \ + {l40, l41, l42, l43, l44 }, \ + {l50, l51, KC_NO,KC_NO,KC_NO}, \ + {l60, l61, KC_NO,KC_NO,KC_NO}, \ + {l70, l71, KC_NO,KC_NO,KC_NO}, \ + {l80, l81, KC_NO,KC_NO,KC_NO}, \ + {l90, l91, KC_NO,KC_NO,KC_NO}, \ + {r00, r01, r02, r03, r04 }, \ + {r10, r11, r12, r13, r14 }, \ + {r20, r21, r22, r23, r24 }, \ + {r30, r31, r32, r33, r34 }, \ + {r40, r41, r42, r43, r44 }, \ + {r50, r51, r52, KC_NO,KC_NO}, \ + {r60, r61, r62, KC_NO,KC_NO}, \ + {r70, r71, r72, KC_NO,KC_NO}, \ + {r80, r81, r82, KC_NO,KC_NO}, \ + {r90, r91, r92, KC_NO,KC_NO}, \ +} diff --git a/keyboards/halfcliff/info.json b/keyboards/halfcliff/info.json new file mode 100644 index 000000000000..2a859bb4c3cb --- /dev/null +++ b/keyboards/halfcliff/info.json @@ -0,0 +1,88 @@ +{ + "keyboard_name": "halfcliff", + "url": "https://github.com/N2-Sumikko", + "maintainer": "n2", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0.75,"y":0}, + {"x":1.75,"y":0}, + {"x":2.75,"y":0}, + {"x":3.75,"y":0}, + {"x":4.75,"y":0}, + {"x":5.75,"y":0}, + {"x":6.75,"y":0}, + {"x":8.25,"y":0}, + {"x":9.25,"y":0}, + {"x":10.25,"y":0}, + {"x":11.25,"y":0}, + {"x":12.25,"y":0}, + {"x":13.25,"y":0}, + {"x":14.25,"y":0}, + {"x":15.25,"y":0}, + {"x":0.25,"y":1,"w":1.5}, + {"x":1.75,"y":1}, + {"x":2.75,"y":1}, + {"x":3.75,"y":1}, + {"x":4.75,"y":1}, + {"x":5.75,"y":1}, + {"x":6.75,"y":1}, + {"x":8.25,"y":1}, + {"x":9.25,"y":1}, + {"x":10.25,"y":1}, + {"x":11.25,"y":1}, + {"x":12.25,"y":1}, + {"x":13.25,"y":1}, + {"x":14.25,"y":1}, + {"x":16.25,"y":0}, + {"x":0,"y":2,"w":1.75}, + {"x":1.75,"y":2}, + {"x":2.75,"y":2}, + {"x":3.75,"y":2}, + {"x":4.75,"y":2}, + {"x":5.75,"y":2}, + {"x":6.75,"y":2}, + {"x":8.25,"y":2}, + {"x":9.25,"y":2}, + {"x":10.25,"y":2}, + {"x":11.25,"y":2}, + {"x":12.25,"y":2}, + {"x":13.25,"y":2}, + {"x":14.25,"y":2}, + {"x":15.5,"y":1,"w":1.25,"h":2}, + {"x":0,"y":3,"w":1.75}, + {"x":1.75,"y":3}, + {"x":2.75,"y":3}, + {"x":3.75,"y":3}, + {"x":4.75,"y":3}, + {"x":5.75,"y":3}, + {"x":6.75,"y":3}, + {"x":8.25,"y":3}, + {"x":9.25,"y":3}, + {"x":10.25,"y":3}, + {"x":11.25,"y":3}, + {"x":12.25,"y":3}, + {"x":13.25,"y":3}, + {"x":14.25,"y":3}, + {"x":15.25,"y":3,"w":2}, + {"x":0.5,"y":4,"w":1.25}, + {"x":1.75,"y":4}, + {"x":2.75,"y":4}, + {"x":3.75,"y":4}, + {"x":4.75,"y":4}, + {"x":5.75,"y":4}, + {"x":6.75,"y":4}, + {"x":8.25,"y":4}, + {"x":9.25,"y":4}, + {"x":10.25,"y":4}, + {"x":11.25,"y":4}, + {"x":12.25,"y":4}, + {"x":13.25,"y":4}, + {"x":14.25,"y":4}, + {"x":15.25,"y":4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/halfcliff/keymaps/default/keymap.c b/keyboards/halfcliff/keymaps/default/keymap.c new file mode 100644 index 000000000000..02743f5d4949 --- /dev/null +++ b/keyboards/halfcliff/keymaps/default/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2021 n2 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "keymap_jp.h" + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _DEFAULT = 0, + _RAISE, + _LOWER, + _ADJUST +/* _FN */ +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* DEFAULT + * ,--------------------------------------------------------------------------------------------------------------------------------------. + * |ZEN/HAN | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | ^ | \ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | TAB | q | w | e | r | t | | y | u | i | o | p | @ | [ | BSPC | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | a | s | d | f | g | | h | j | k | l | ; | : | ] | ENT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | z | x | c | v | b | | n | m | , | . | / | \ | UP | RSHIFT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CTRL | LGUI | ALT | MUHEN | SPACE | SPACE | LOWER | RAISE | SPACE | HENKAN | KANA | APP | LEFT | DOWN | RIGHT | + * `--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_DEFAULT] = LAYOUT( + KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT , JP_LBRC, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_COLN, JP_RBRC, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_SPC, MO(_LOWER), MO(_RAISE), KC_SPC, KC_HENK, KC_KANA, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* RAISE + * ,--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * `--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* LOWER + * ,--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | |RGB_TOG | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | |RGB_VAI | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | |RGB_HUI | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | |RGB_SAI | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * `--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* ADJUST + * ,--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * `--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/halfcliff/keymaps/default/readme.md b/keyboards/halfcliff/keymaps/default/readme.md new file mode 100644 index 000000000000..2924c68c24aa --- /dev/null +++ b/keyboards/halfcliff/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for halfcliff diff --git a/keyboards/halfcliff/keymaps/via/keymap.c b/keyboards/halfcliff/keymaps/via/keymap.c new file mode 100644 index 000000000000..e0a825e7c307 --- /dev/null +++ b/keyboards/halfcliff/keymaps/via/keymap.c @@ -0,0 +1,112 @@ +/* Copyright 2021 n2 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "keymap_jp.h" + +#define RAISE FN_MO13 +#define LOWER FN_MO23 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _DEFAULT = 0, + _RAISE, + _LOWER, + _ADJUST +/* _FN */ +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* DEFAULT + * ,--------------------------------------------------------------------------------------------------------------------------------------. + * |ZEN/HAN | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | ^ | \ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | TAB | q | w | e | r | t | | y | u | i | o | p | @ | [ | BSPC | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | a | s | d | f | g | | h | j | k | l | ; | : | ] | ENT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | z | x | c | v | b | | n | m | , | . | / | \ | UP | RSHIFT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CTRL | LGUI | ALT | MUHEN | SPACE | SPACE | LOWER | RAISE | SPACE | HENKAN | KANA | APP | LEFT | DOWN | RIGHT | + * `--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_DEFAULT] = LAYOUT( + KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT , JP_LBRC, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_COLN, JP_RBRC, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_SPC, FN_MO23, FN_MO13, KC_SPC, KC_HENK, KC_KANA, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* RAISE + * ,--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * `--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* LOWER + * ,--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | |RGB_TOG | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | |RGB_VAI | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | |RGB_HUI | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | |RGB_SAI | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * `--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* ADJUST + * ,--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * `--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/halfcliff/keymaps/via/readme.md b/keyboards/halfcliff/keymaps/via/readme.md new file mode 100644 index 000000000000..2924c68c24aa --- /dev/null +++ b/keyboards/halfcliff/keymaps/via/readme.md @@ -0,0 +1 @@ +# The default keymap for halfcliff diff --git a/keyboards/halfcliff/keymaps/via/rules.mk b/keyboards/halfcliff/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/halfcliff/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/halfcliff/matrix.c b/keyboards/halfcliff/matrix.c new file mode 100644 index 000000000000..556b75ca5901 --- /dev/null +++ b/keyboards/halfcliff/matrix.c @@ -0,0 +1,277 @@ +/* +Copyright 2012 Jun Wako + +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 +#include +#include "util.h" +#include "matrix.h" +#include "debounce.h" +#include "quantum.h" +#include "split_util.h" +#include "config.h" +#include "transport.h" + +#define ERROR_DISCONNECT_COUNT 5 + +#define ROWS_PER_HAND (MATRIX_ROWS / 2) + +static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +// row offsets for each hand +uint8_t thisHand, thatHand; + +// user-defined overridable functions +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } + +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } + +__attribute__((weak)) void matrix_init_user(void) {} + +__attribute__((weak)) void matrix_scan_user(void) {} + +__attribute__((weak)) void matrix_slave_scan_user(void) {} + +matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } + +void matrix_print(void) {} + +static inline void setPinOutput_writeLow(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinLow(pin); + } +} + +static inline void setPinInputHigh_atomic(pin_t pin) { + ATOMIC_BLOCK_FORCEON { setPinInputHigh(pin); } +} + +// matrix code +static void select_row(uint8_t row) { setPinOutput_writeLow(row_pins[row]); } + +static void unselect_row(uint8_t row) { setPinInputHigh_atomic(row_pins[row]); } + +static void unselect_rows(void) { + for (uint8_t x = 0; x < ROWS_PER_HAND; x++) { + setPinInputHigh_atomic(row_pins[x]); + } +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { + // Start with a clear matrix row + matrix_row_t current_row_value = 0; + + // Select row + select_row(current_row); + wait_us(30); + + // For each col... + for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + // Select the col pin to read (active low) + uint8_t pin_state = readPin(col_pins[col_index]); + + // Populate the matrix row with the state of the col pin + current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); + } + + // Unselect row + unselect_row(current_row); + if (current_row + 1 < MATRIX_ROWS) { + wait_us(30); // wait for row signal to go HIGH + } + + // If the row has changed, store the row and return the changed flag. + if (current_matrix[current_row] != current_row_value) { + current_matrix[current_row] = current_row_value; + return true; + } + return false; +} + +static void select_col(uint8_t col) { setPinOutput_writeLow(col_pins[col]); } + +static void unselect_col(uint8_t col) { setPinInputHigh_atomic(col_pins[col]); } + +static void unselect_cols(void) { + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh_atomic(col_pins[x]); + } +} + +static void init_pins(void) { + unselect_rows(); + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh_atomic(col_pins[x]); + } + unselect_cols(); + for (uint8_t x = 0; x < ROWS_PER_HAND; x++) { + setPinInputHigh_atomic(row_pins[x]); + } +} + +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) { + bool matrix_changed = false; + + // Select col + select_col(current_col); + wait_us(30); + + // For each row... + for (uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++) { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[row_index]; + matrix_row_t current_row_value = last_row_value; + + // Check row pin state + if (readPin(row_pins[row_index]) == 0) { + // Pin LO, set col bit + current_row_value |= (MATRIX_ROW_SHIFTER << current_col); + } else { + // Pin HI, clear col bit + current_row_value &= ~(MATRIX_ROW_SHIFTER << current_col); + } + + // Determine if the matrix changed state + if ((last_row_value != current_row_value)) { + matrix_changed |= true; + current_matrix[row_index] = current_row_value; + } + } + + // Unselect col + unselect_col(current_col); + if (current_col + 1 < MATRIX_COLS) { + wait_us(30); // wait for col signal to go HIGH + } + + return matrix_changed; +} + +void matrix_init(void) { + split_pre_init(); + + // Set pinout for right half if pinout for that half is defined + if (!isLeftHand) { +#ifdef DIRECT_PINS_RIGHT + const pin_t direct_pins_right[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS_RIGHT; + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + for (uint8_t j = 0; j < MATRIX_COLS; j++) { + direct_pins[i][j] = direct_pins_right[i][j]; + } + } +#endif +#ifdef MATRIX_ROW_PINS_RIGHT + const pin_t row_pins_right[MATRIX_ROWS] = MATRIX_ROW_PINS_RIGHT; + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + row_pins[i] = row_pins_right[i]; + } +#endif +#ifdef MATRIX_COL_PINS_RIGHT + const pin_t col_pins_right[MATRIX_COLS] = MATRIX_COL_PINS_RIGHT; + for (uint8_t i = 0; i < MATRIX_COLS; i++) { + col_pins[i] = col_pins_right[i]; + } +#endif + } + + thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); + thatHand = ROWS_PER_HAND - thisHand; + + // initialize key pins + init_pins(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + raw_matrix[i] = 0; + matrix[i] = 0; + } + + debounce_init(ROWS_PER_HAND); + + matrix_init_quantum(); + + split_post_init(); +} + +bool matrix_post_scan(void) { + bool changed = false; + if (is_keyboard_master()) { + static uint8_t error_count; + + matrix_row_t slave_matrix[ROWS_PER_HAND] = {0}; + if (!transport_master(matrix + thisHand, slave_matrix)) { + error_count++; + + if (error_count > ERROR_DISCONNECT_COUNT) { + // reset other half if disconnected + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[thatHand + i] = 0; + slave_matrix[i] = 0; + } + + changed = true; + } + } else { + error_count = 0; + + for (int i = 0; i < ROWS_PER_HAND; ++i) { + if (matrix[thatHand + i] != slave_matrix[i]) { + matrix[thatHand + i] = slave_matrix[i]; + changed = true; + } + } + } + + matrix_scan_quantum(); + } else { + transport_slave(matrix + thatHand, matrix + thisHand); + + matrix_slave_scan_user(); + } + + return changed; +} + +uint8_t matrix_scan(void) { + bool local_changed = false; + static matrix_row_t temp_raw_matrix[MATRIX_ROWS]; // temp raw values + + // Set row, read cols + for (uint8_t current_row = 0; current_row < ROWS_PER_HAND/2; current_row++) { + local_changed |= read_cols_on_row(raw_matrix, current_row); + } + + // Set col, read rows + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { + local_changed |= read_rows_on_col(temp_raw_matrix, current_col); + //Updated key matrix on lines 6-10 (or lines 16-20) + if(local_changed) { + for (uint8_t i = ROWS_PER_HAND/2; i < ROWS_PER_HAND; i++) { + raw_matrix[i] = temp_raw_matrix[i]; + } + } + } + + debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, local_changed); + + bool remote_changed = matrix_post_scan(); + return (uint8_t)(local_changed || remote_changed); +} diff --git a/keyboards/halfcliff/readme.md b/keyboards/halfcliff/readme.md new file mode 100644 index 000000000000..37e8d85c20fc --- /dev/null +++ b/keyboards/halfcliff/readme.md @@ -0,0 +1,19 @@ +# halfcliff + +![halfcliff](https://user-images.githubusercontent.com/54104281/125184713-0b096b00-e25b-11eb-8237-5f4d2a286bc4.jpg) + +Halfcliff keyboard is a split keyboard using a single-sided board. + +* Keyboard Maintainer: [n2](https://github.com/N2-Sumikko) +* Hardware Supported: halfcliff PCB, Pro Micro +* Hardware Availability: [PCB & Plate Data](https://github.com/N2-Sumikko/HalfCliff.git) + +Make example for this keyboard (after setting up your build environment): + + make halfcliff:default + +Flashing example for this keyboard: + + make halfcliff: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). diff --git a/keyboards/halfcliff/rules.mk b/keyboards/halfcliff/rules.mk new file mode 100644 index 000000000000..f8883f6a4779 --- /dev/null +++ b/keyboards/halfcliff/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes +ENCODER_ENABLE = no +POINTING_DEVICE_ENABLE = no +CUSTOM_MATRIX = yes +OLED_DRIVER_ENABLE = no + +SRC += matrix.c From 8d611f6873aa4f357d625f9e9b8cf86ec1b64940 Mon Sep 17 00:00:00 2001 From: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Thu, 29 Jul 2021 11:47:14 -0400 Subject: [PATCH 089/328] [Keymap] Jonavin keymap Mercutio add win key lockout function (#13670) Co-authored-by: Jonavin <=> --- .../mercutio/keymaps/jonavin/keymap.c | 47 +++++++++++++------ .../mercutio/keymaps/jonavin/readme.md | 21 +++++++-- 2 files changed, 51 insertions(+), 17 deletions(-) diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c index 6fadea489984..ed321e79b99f 100755 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c @@ -28,6 +28,7 @@ enum custom_layers { enum custom_keycodes { ENCFUNC = SAFE_RANGE, // encoder function keys + KC_WINLCK, //Toggles Win key on and off }; // Tap Dance Definitions @@ -40,6 +41,8 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), }; +bool _isWinKeyDisabled = false; + #define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) #define KC_CAD LALT(LCTL(KC_DEL)) #define KC_AF4 LALT(KC_F4) @@ -49,8 +52,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_all( KC_MUTE, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - TT(_RAISE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFTCAPS, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFTENT, + TT(_RAISE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFTCAPS, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFTENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(_LOWER,KC_SPC), KC_SPC, KC_RALT, MO(_FN1), KC_RCTL ), [_FN1] = LAYOUT_all( @@ -58,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_CAPS, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NLCK, KC_NO, KC_NO, KC_NO, KC_SFTENT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + KC_TRNS, KC_WINLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_LOWER] = LAYOUT_all( KC_TRNS, @@ -69,13 +72,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = LAYOUT_all( KC_TRNS, - KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS, + KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS, TT(_RAISE), KC_LEFT, KC_DOWN, KC_RIGHT,KC_PGDN, KC_PSLS, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, KC_PEQL, - KC_TRNS, KC_TRNS, KC_NO, KC_DEL, KC_INS, KC_NO, KC_PAST, KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_TRNS, KC_TRNS, KC_NO, KC_DEL, KC_INS, KC_NO, KC_PAST, KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; -/* These are needed whether encoder function is enabled or not when ENCFUNC keycode is pressed. +/* These are needed whether encoder function is enabled or not when ENCFUNC keycode is pressed.? Defaults never changes if no encoder present to change it */ typedef struct { @@ -93,7 +96,8 @@ static const keycodedescType PROGMEM keyselection[] = { {"Break", KC_PAUS}, {"C-A-D", KC_CAD}, // Ctrl-Alt-Del {"AltF4", KC_AF4}, - {"PLAY", KC_MEDIA_PLAY_PAUSE} + {"PLAY", KC_MEDIA_PLAY_PAUSE}, + {"RESET", RESET}, // firmware flash mode }; #define MAX_KEYSELECTION sizeof(keyselection)/sizeof(keyselection[0]) @@ -119,11 +123,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case ENCFUNC: if (record->event.pressed) { - tap_code16(selectedkey_rec.keycode); + selectedkey_rec.keycode == RESET ? reset_keyboard() : tap_code16(selectedkey_rec.keycode); // handle RESET code } else { // when keycode is released } break; + case KC_WINLCK: + if (record->event.pressed) { + _isWinKeyDisabled = !_isWinKeyDisabled; //toggle status + if(_isWinKeyDisabled) { + process_magic(GUI_OFF, record); + } else { + process_magic(GUI_ON, record); + } + } else unregister_code16(keycode); + break; } return true; }; @@ -163,9 +177,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } default: // all other layers if ( clockwise ) { - if ( selected_layer < 3 && keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers - selected_layer ++; - layer_move(selected_layer); + if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers + if(selected_layer < 3) { + selected_layer ++; + layer_move(selected_layer); + } } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word tap_code16(LCTL(KC_RGHT)); } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track @@ -174,9 +190,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { tap_code(KC_VOLU); // Otherwise it just changes volume } } else if ( !clockwise ) { - if ( selected_layer > 0 && keyboard_report->mods & MOD_BIT(KC_LSFT) ) { - selected_layer --; - layer_move(selected_layer); + if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { + if (selected_layer > 0) { + selected_layer --; + layer_move(selected_layer); + } } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word tap_code16(LCTL(KC_LEFT)); } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track @@ -256,6 +274,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { default: oled_write_P(PSTR("Layer ?"), false); // Should never display, here as a catchall } + oled_write_P(_isWinKeyDisabled ? PSTR(" WL") : PSTR(" "), false); oled_set_cursor(8,3); if (get_highest_layer(layer_state) == selected_layer) { oled_write_P(PSTR(" "), false); diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md b/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md index 9180ac215c3c..730bee889745 100644 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md @@ -13,6 +13,7 @@ Features - shutdown oled when powered down to prevent OLED from showing Mercutio all the time - add WPM indicator when wpm is > 20 wpm - add double tap of Left Shift to toggle Caps Lock + - add WinLock feature with FN + Win; display WL on OLED when enabled - FN layer has encoder selectable key codes and displayed on OLED @@ -28,8 +29,9 @@ Features {"Break", KC_PAUS}, {"C-A-D", KC_CAD}, // Ctrl-Alt-Del {"AltF4", KC_AF4}, - {"PLAY", KC_MEDIA_PLAY_PAUSE} - }; + {"PLAY", KC_MEDIA_PLAY_PAUSE}, + {"RESET", RESET}, // firmware flash mode + }; - Additional encoder functionality While holding Left Ctrl, navigates next or previous word @@ -37,4 +39,17 @@ Features Default Layers -![image](https://user-images.githubusercontent.com/71780717/118902752-4aaf7880-b8e4-11eb-82f4-e5047612ffcf.png) +![image](https://user-images.githubusercontent.com/71780717/127014682-3aa05136-6dc7-4a40-9be1-89a5b584848a.png) + +MO(1) / FN Layer +![image](https://user-images.githubusercontent.com/71780717/127014620-a3a36dc6-6e22-4a9b-ad9a-6c6a5d18cbc5.png) + +MO(2) / Lower layer +![image](https://user-images.githubusercontent.com/71780717/127014816-09598d62-2d23-42e5-a625-504a79a54ca9.png) + +MO(3) / Raise layer +![image](https://user-images.githubusercontent.com/71780717/127014881-a181c198-a7e8-4f48-9789-a7a85eabcbd1.png) + + + + From 8fa674727d7586db85da901f9d837ea74bc8095b Mon Sep 17 00:00:00 2001 From: X-Bows Tech <41098278+XBowsTech@users.noreply.github.com> Date: Thu, 29 Jul 2021 23:47:51 +0800 Subject: [PATCH 090/328] [Keyboard] Add X-Bows Ranger Keyboard (#13660) Co-authored-by: Ryan --- keyboards/xbows/ranger/config.h | 51 ++++++ keyboards/xbows/ranger/info.json | 105 +++++++++++++ .../xbows/ranger/keymaps/default/config.h | 43 ++++++ .../xbows/ranger/keymaps/default/keymap.c | 49 ++++++ keyboards/xbows/ranger/keymaps/via/config.h | 64 ++++++++ keyboards/xbows/ranger/keymaps/via/keymap.c | 63 ++++++++ keyboards/xbows/ranger/keymaps/via/rules.mk | 1 + keyboards/xbows/ranger/ranger.c | 145 ++++++++++++++++++ keyboards/xbows/ranger/ranger.h | 33 ++++ keyboards/xbows/ranger/readme.md | 29 ++++ keyboards/xbows/ranger/rules.mk | 24 +++ 11 files changed, 607 insertions(+) create mode 100644 keyboards/xbows/ranger/config.h create mode 100644 keyboards/xbows/ranger/info.json create mode 100644 keyboards/xbows/ranger/keymaps/default/config.h create mode 100644 keyboards/xbows/ranger/keymaps/default/keymap.c create mode 100644 keyboards/xbows/ranger/keymaps/via/config.h create mode 100644 keyboards/xbows/ranger/keymaps/via/keymap.c create mode 100644 keyboards/xbows/ranger/keymaps/via/rules.mk create mode 100644 keyboards/xbows/ranger/ranger.c create mode 100644 keyboards/xbows/ranger/ranger.h create mode 100644 keyboards/xbows/ranger/readme.md create mode 100644 keyboards/xbows/ranger/rules.mk diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h new file mode 100644 index 000000000000..0af0bb8b7c9d --- /dev/null +++ b/keyboards/xbows/ranger/config.h @@ -0,0 +1,51 @@ +/* Copyright 2021 Shulin Huang + * + * 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 VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1229 +#define DEVICE_VER 0x0001 +#define MANUFACTURER X-BOWS +#define PRODUCT Ranger + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 +#define MATRIX_ROW_PINS { C7, B6, B4, C6, B5, D6 } +#define MATRIX_COL_PINS { B7, B3, B2, B1, B0, E6, F0, F1, F4, F5, D7, F6, F7, D4, D5, D3 } +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCE 3 + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_LED_PROCESS_LIMIT 18 +# define RGB_MATRIX_LED_FLUSH_LIMIT 16 +# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 +# define RGB_MATRIX_CENTER { 103, 32 } +# define DRIVER_ADDR_1 0b1110100 +# define DRIVER_ADDR_2 0b1110101 +# define DRIVER_ADDR_3 0b1110110 +# define DRIVER_COUNT 3 +# define DRIVER_1_LED_TOTAL 36 +# define DRIVER_2_LED_TOTAL 36 +# define DRIVER_3_LED_TOTAL 15 +# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) + +#endif diff --git a/keyboards/xbows/ranger/info.json b/keyboards/xbows/ranger/info.json new file mode 100644 index 000000000000..d0c7189cd9e5 --- /dev/null +++ b/keyboards/xbows/ranger/info.json @@ -0,0 +1,105 @@ +{ + "keyboard_name": "Ranger", + "url": "", + "maintainer": "xbows-qmk", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.5}, + {"label":"!", "x":1, "y":1.5}, + {"label":"@", "x":2, "y":1.5}, + {"label":"#", "x":3, "y":1.5}, + {"label":"$", "x":4, "y":1.5}, + {"label":"%", "x":5, "y":1.5}, + {"label":"^", "x":6, "y":1.5}, + {"label":"&", "x":7, "y":1.5}, + {"label":"*", "x":8, "y":1.5}, + {"label":"(", "x":9, "y":1.5}, + {"label":")", "x":10, "y":1.5}, + {"label":"_", "x":11, "y":1.5}, + {"label":"+", "x":12, "y":1.5}, + {"label":"Bksp", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"{", "x":11.5, "y":2.5}, + {"label":"}", "x":12.5, "y":2.5}, + {"label":"|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":":", "x":10.75, "y":3.5}, + {"label":"\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":"<", "x":9.25, "y":4.5}, + {"label":">", "x":10.25, "y":4.5}, + {"label":"?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"Up", "x":16.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"Fn", "x":11.25, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":5.5}, + {"label":"Down", "x":16.25, "y":5.5}, + {"label":"Right", "x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/xbows/ranger/keymaps/default/config.h b/keyboards/xbows/ranger/keymaps/default/config.h new file mode 100644 index 000000000000..8e1b68f97f2b --- /dev/null +++ b/keyboards/xbows/ranger/keymaps/default/config.h @@ -0,0 +1,43 @@ +/* Copyright 2021 Shulin Huang + * + * 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 + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set +# define DISABLE_RGB_MATRIX_SOLID_COLOR // Static single hue, no speed support +# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes +# define DISABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAT // Single hue spinning spiral fades saturation +# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard + +# define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +# define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! + +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +//# define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +# define DISABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +//# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out + +#endif diff --git a/keyboards/xbows/ranger/keymaps/default/keymap.c b/keyboards/xbows/ranger/keymaps/default/keymap.c new file mode 100644 index 000000000000..63987bf764e6 --- /dev/null +++ b/keyboards/xbows/ranger/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 Shulin Huang + * + * 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] = { + /* Keymap VANILLA: (Base Layer) Default Layer + * + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Print |S-Lock|Pause + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace| Insert| Home |PgUp + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Delete| End |PgDn + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Caps | A | S | D | F | G | H | J | K | L | ; | '" | Enter | + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Shift | Z | X | C | V | B | N | M | , | . | /? | Shift | | Up | + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Ctrl | GUI |Alter| Space | Alter| Fn | menu | Ctrl | Left | Down |Right + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9,KC_F10,KC_F11,KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL, KC_BSPC , KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,KC_QUOT, KC_ENT , + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , KC_UP, + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EEP_RST, KC_NLCK, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) +}; diff --git a/keyboards/xbows/ranger/keymaps/via/config.h b/keyboards/xbows/ranger/keymaps/via/config.h new file mode 100644 index 000000000000..aa5e4c1cd206 --- /dev/null +++ b/keyboards/xbows/ranger/keymaps/via/config.h @@ -0,0 +1,64 @@ +/* Copyright 2021 Shulin Huang + * + * 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 + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set +# define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue +# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes +# define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes +//# define DISABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +# define DISABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +//# define DISABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +//# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +//# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right +# define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +# define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +//# define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard +# define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue +# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +//# define DISABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time, then shifts back +# define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left +//# define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right + +# define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +# define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! + +//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out +//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +//# define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +# define DISABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +# define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +//# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out + + +#endif diff --git a/keyboards/xbows/ranger/keymaps/via/keymap.c b/keyboards/xbows/ranger/keymaps/via/keymap.c new file mode 100644 index 000000000000..b99574d57216 --- /dev/null +++ b/keyboards/xbows/ranger/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2021 Shulin Huang + * + * 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] = { + /* Keymap VANILLA: (Base Layer) Default Layer + * + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Print |S-Lock|Pause + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace| Insert| Home |PgUp + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Delete| End |PgDn + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Caps | A | S | D | F | G | H | J | K | L | ; | '" | Enter | + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Shift | Z | X | C | V | B | N | M | , | . | /? | Shift | | Up | + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Ctrl | GUI |Alter| Space | Alter | Fn | menu | Ctrl | Left | Down |Right + * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9,KC_F10,KC_F11,KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL, KC_BSPC , KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,KC_QUOT, KC_ENT , + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , KC_UP, + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EEP_RST, KC_NLCK, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/xbows/ranger/keymaps/via/rules.mk b/keyboards/xbows/ranger/keymaps/via/rules.mk new file mode 100644 index 000000000000..69de2e4c5a0c --- /dev/null +++ b/keyboards/xbows/ranger/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xbows/ranger/ranger.c b/keyboards/xbows/ranger/ranger.c new file mode 100644 index 000000000000..f6ec79f7f608 --- /dev/null +++ b/keyboards/xbows/ranger/ranger.c @@ -0,0 +1,145 @@ +/* Copyright 2021 Shulin Huang + * + * 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 "ranger.h" + #ifdef RGB_MATRIX_ENABLE + const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + + {0, C3_3, C2_3, C1_3}, // L01 + {0, C3_4, C2_4, C1_4}, // L02 + {0, C3_5, C2_5, C1_5}, // L03 + {0, C3_6, C2_6, C1_6}, // L04 + {0, C3_7, C2_7, C1_7}, // L05 + {0, C3_8, C2_8, C1_8}, // L06 + {1, C3_3, C2_3, C1_3}, // L07 + {1, C3_4, C2_4, C1_4}, // L08 + {1, C3_5, C2_5, C1_5}, // L09 + {1, C3_6, C2_6, C1_6}, // L10 + {1, C3_7, C2_7, C1_7}, // L11 + {1, C3_8, C2_8, C1_8}, // L12 + {2, C3_4, C2_4, C1_4}, // L13 + {2, C3_5, C2_5, C1_5}, // L14 + {2, C3_6, C2_6, C1_6}, // L15 + {2, C3_7, C2_7, C1_7}, // L16 + + {0, C6_1, C5_1, C4_1}, // L17 + {0, C6_2, C5_2, C4_2}, // L18 + {0, C6_3, C5_3, C4_3}, // L19 + {0, C6_6, C5_6, C4_6}, // L20 + {0, C6_7, C5_7, C4_7}, // L21 + {0, C6_8, C5_8, C4_8}, // L22 + {1, C6_1, C5_1, C4_1}, // L23 + {1, C6_2, C5_2, C4_2}, // L24 + {1, C6_3, C5_3, C4_3}, // L25 + {1, C6_6, C5_6, C4_6}, // L26 + {1, C6_7, C5_7, C4_7}, // L27 + {1, C6_8, C5_8, C4_8}, // L28 + {2, C6_1, C5_1, C4_1}, // L29 + {2, C6_3, C5_3, C4_3}, // L31 + {2, C6_6, C5_6, C4_6}, // L32 + {2, C6_7, C5_7, C4_7}, // L33 + + {0, C9_1, C8_1, C7_1}, // L34 + {0, C9_2, C8_2, C7_2}, // L35 + {0, C9_3, C8_3, C7_3}, // L36 + {0, C9_4, C8_4, C7_4}, // L37 + {0, C9_5, C8_5, C7_5}, // L38 + {0, C9_6, C8_6, C7_6}, // L39 + {1, C9_1, C8_1, C7_1}, // L40 + {1, C9_2, C8_2, C7_2}, // L41 + {1, C9_3, C8_3, C7_3}, // L42 + {1, C9_4, C8_4, C7_4}, // L43 + {1, C9_5, C8_5, C7_5}, // L44 + {1, C9_6, C8_6, C7_6}, // L45 + {2, C9_1, C8_1, C7_1}, // L46 + {2, C9_3, C8_3, C7_3}, // L48 + {2, C9_4, C8_4, C7_4}, // L49 + {2, C9_6, C8_6, C7_6}, // L50 + + {0, C3_11, C2_11, C1_11}, // L51 + {0, C3_12, C2_12, C1_12}, // L52 + {0, C3_13, C2_13, C1_13}, // L53 + {0, C3_14, C2_14, C1_14}, // L54 + {0, C3_15, C2_15, C1_15}, // L55 + {0, C3_16, C2_16, C1_16}, // L56 + {1, C3_11, C2_11, C1_11}, // L57 + {1, C3_12, C2_12, C1_12}, // L58 + {1, C3_13, C2_13, C1_13}, // L59 + {1, C3_14, C2_14, C1_14}, // L60 + {1, C3_15, C2_15, C1_15}, // L61 + {1, C3_16, C2_16, C1_16}, // L62 + {2, C3_14, C2_14, C1_14}, // L63 + {2, C6_2, C5_2, C4_2 }, // L30 + + {0, C6_9, C5_9, C4_9}, // L64 + {0, C6_10, C5_10, C4_10}, // L65 + {0, C6_11, C5_11, C4_11}, // L66 + {0, C6_14, C5_14, C4_14}, // L67 + {0, C6_15, C5_15, C4_15}, // L68 + {0, C6_16, C5_16, C4_16}, // L69 + {1, C6_10, C5_10, C4_10}, // L70 + {1, C6_11, C5_11, C4_11}, // L71 + {1, C6_14, C5_14, C4_14}, // L72 + {1, C6_15, C5_15, C4_15}, // L73 + {1, C6_16, C5_16, C4_16}, // L74 + {2, C3_15, C2_15, C1_15}, // L75 + {2, C9_2, C8_2, C7_2 }, // L47 + {2, C9_14, C8_14, C7_14}, // L76 + + {0, C9_9, C8_9, C7_9}, // L77 + {0, C9_10, C8_10, C7_10}, // L78 + {0, C9_11, C8_11, C7_11}, // L79 + {1, C6_9, C5_9, C4_9}, // L80 + {1, C9_13, C8_13, C7_13}, // L81 + {1, C9_14, C8_14, C7_14}, // L82 + {2, C9_9, C8_9, C7_9}, // L83 + {2, C9_10, C8_10, C7_10}, // L84 + {2, C9_11, C8_11, C7_11}, // L85 + {2, C9_12, C8_12, C7_12}, // L86 + {2, C9_13, C8_13, C7_13}, // L87 + + }; + + led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, + { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, + { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47 }, + { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, NO_LED, NO_LED }, + { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, NO_LED, 73, 74, 75, NO_LED }, + { 76, 77, 78, NO_LED, NO_LED, 79, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, 85, 86 } + }, { + {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {102,0}, {114,0}, {132,0}, {144,0}, {156,0}, {168,0}, {182,0}, {194,0}, {206,0}, + {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {84,15}, {96,15}, {108,15}, {120,15}, {132,15}, {144,15}, {182,15}, {194,15},{206,15}, + {3,27}, {18,27}, {30,27}, {42,27}, {54,27}, {66,27}, {78,27}, {90,27}, {102,27}, {114,27}, {126,27}, {138,27}, {150,27}, {182,27}, {194,27},{206,27}, + {4,39}, {20,39}, {32,39}, {44,39}, {56,39}, {68,39}, {80,39}, {92,39}, {104,39}, {116,39}, {128,39}, {140,39}, {162,39}, {162,15}, + {6,51}, {26,51}, {38,51}, {50,51}, {62,51}, {74,51}, {86,51}, {98,51}, {110,51}, {122,51}, {134,51}, {155,51}, {165,27}, {210,51}, + {1,63}, {16,63}, {31,63}, {64,63}, {121,63},{136,63}, {151,63}, {166,63},{182,63}, {194,63}, {206,63} + }, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 + } }; + + + __attribute__ ((weak)) void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(48, 0xFF, 0xFF, 0xFF); + } +} + +#endif diff --git a/keyboards/xbows/ranger/ranger.h b/keyboards/xbows/ranger/ranger.h new file mode 100644 index 000000000000..28da14646fc1 --- /dev/null +++ b/keyboards/xbows/ranger/ranger.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Shulin Huang + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once +#include "quantum.h" +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K313, K113, K114, K115, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K413, K213, K214, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K412, K414, \ + K500, K501, K502, K505, K509, K510, K511, K512, K513, K514, K515 \ +) \ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO,KC_NO}, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410,KC_NO, K412, K413, K414, KC_NO}, \ + { K500, K501, K502, KC_NO,KC_NO,K505, KC_NO,KC_NO,KC_NO,K509, K510, K511, K512, K513, K514, K515 } \ +} diff --git a/keyboards/xbows/ranger/readme.md b/keyboards/xbows/ranger/readme.md new file mode 100644 index 000000000000..61b9955b459e --- /dev/null +++ b/keyboards/xbows/ranger/readme.md @@ -0,0 +1,29 @@ +# Ranger +![Ranger](https://img.alicdn.com/i3/16731204/O1CN015gRK1R1KlTSHEuHDo_!!16731204.jpg) + +Ranger, A 87 keys keyboard with RGB backlight. + +* Keyboard Maintainer: X-BOWS +* Hardware Supported: X-BOWS Ranger +* Hardware Availability: [X-BOWS](https://x-bows.com/) + +Enter the bootloader in 3 ways: +* Software reset on Fn + ESC +* Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard +* Physical reset button: There is a button on the back of the PCB, please press it briefly. + +Flash new firmware in 2 ways: +* Use the QMK toolbox:https://github.com/qmk/qmk_toolbox/releases +* Use the QMK MSYS:https://msys.qmk.fm/ + +Make example for this keyboard (after setting up your build environment): + + make xbows/ranger:default + make xbows/ranger:via + +Flashing example for this keyboard: + + make xbows/ranger:default:flash + make xbows/ranger:via: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). diff --git a/keyboards/xbows/ranger/rules.mk b/keyboards/xbows/ranger/rules.mk new file mode 100644 index 000000000000..5707fdc1d767 --- /dev/null +++ b/keyboards/xbows/ranger/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3731 From ad6acb3a03b826ce64bc1171d84fe9c364e2031d Mon Sep 17 00:00:00 2001 From: DA <56441863+duongaanh@users.noreply.github.com> Date: Thu, 29 Jul 2021 22:48:39 +0700 Subject: [PATCH 091/328] [Keyboard] add cherryb studio cb1800 keyboard (#13639) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/cherrybstudio/cb1800/cb1800.c | 14 +++++ keyboards/cherrybstudio/cb1800/cb1800.h | 38 +++++++++++ keyboards/cherrybstudio/cb1800/config.h | 63 +++++++++++++++++++ keyboards/cherrybstudio/cb1800/info.json | 12 ++++ .../cb1800/keymaps/default/keymap.c | 36 +++++++++++ .../cb1800/keymaps/default/readme.md | 1 + .../cherrybstudio/cb1800/keymaps/via/keymap.c | 56 +++++++++++++++++ .../cherrybstudio/cb1800/keymaps/via/rules.mk | 2 + keyboards/cherrybstudio/cb1800/readme.md | 26 ++++++++ keyboards/cherrybstudio/cb1800/rules.mk | 22 +++++++ 10 files changed, 270 insertions(+) create mode 100644 keyboards/cherrybstudio/cb1800/cb1800.c create mode 100644 keyboards/cherrybstudio/cb1800/cb1800.h create mode 100644 keyboards/cherrybstudio/cb1800/config.h create mode 100644 keyboards/cherrybstudio/cb1800/info.json create mode 100644 keyboards/cherrybstudio/cb1800/keymaps/default/keymap.c create mode 100644 keyboards/cherrybstudio/cb1800/keymaps/default/readme.md create mode 100644 keyboards/cherrybstudio/cb1800/keymaps/via/keymap.c create mode 100644 keyboards/cherrybstudio/cb1800/keymaps/via/rules.mk create mode 100644 keyboards/cherrybstudio/cb1800/readme.md create mode 100644 keyboards/cherrybstudio/cb1800/rules.mk diff --git a/keyboards/cherrybstudio/cb1800/cb1800.c b/keyboards/cherrybstudio/cb1800/cb1800.c new file mode 100644 index 000000000000..6a42e65db565 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/cb1800.c @@ -0,0 +1,14 @@ +/* +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 "cb1800.h" diff --git a/keyboards/cherrybstudio/cb1800/cb1800.h b/keyboards/cherrybstudio/cb1800/cb1800.h new file mode 100644 index 000000000000..990bc5cfd6b2 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/cb1800.h @@ -0,0 +1,38 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004,K005, K006, K007, K008, K009, K010, K100, K101, K909, K102, K103, K104, K105, \ + K106, K107, K108, K109, \ + K110, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K300, K301, K302, K303, K304, K305, K306, \ + K307, K308, K309, K310, K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K500, K501, K502, \ + K503, K504, K505, K506, K507, K508, K509, K510, K600, K601, K602, K603, K604, K605, K606, K607, K608, K609, \ + K610, K700, K701, K702, K703, K704, K705, K706, K707, K708, K709, K710, K800, K801, K802, K803, K804, K805, \ + K806, K807, K808, K809, K810, K900, K901, K902, K903, K904, K905, K906, K907, K908 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410 }, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510 }, \ + { K600, K601, K602, K603, K604, K605, K606, K607, K608, K609, K610 }, \ + { K700, K701, K702, K703, K704, K705, K706, K707, K708, K709, K710 }, \ + { K800, K801, K802, K803, K804, K805, K806, K807, K808, K809, K810 }, \ + { K900, K901, K902, K903, K904, K905, K906, K907, K908, K909, KC_NO } \ +} + diff --git a/keyboards/cherrybstudio/cb1800/config.h b/keyboards/cherrybstudio/cb1800/config.h new file mode 100644 index 000000000000..81d24669dca0 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/config.h @@ -0,0 +1,63 @@ +/* +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4342 // CB +#define PRODUCT_ID 0x1818 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CherryB.Studio +#define PRODUCT CB1800 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 11 + +/* + * 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) + * + * 0 1 2 3 4 5 6 7 8 9 +*/ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, C6, C7 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D4, D5, D6, D7, F0, F1, F4 } +//#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* LED Indicators */ +#define LED_CAPS_LOCK_PIN F5 +#define LED_NUM_LOCK_PIN F6 +#define LED_SCROLL_LOCK_PIN F7 + + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define RGB_DI_PIN E6 +#ifdef RGB_DI_PIN +# define RGBLIGHT_ANIMATIONS +# define RGBLED_NUM 20 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/cherrybstudio/cb1800/info.json b/keyboards/cherrybstudio/cb1800/info.json new file mode 100644 index 000000000000..c54997a5fa8e --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "cb1800", + "url": "https://discord.gg/qVwv3gcq83", + "maintainer": "duongaanh", + "width": 19.5, + "height": 7.25, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Esc", "x":14, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"PrtSc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"x":13, "y":2}, {"label":"Backspace", "x":14, "y":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"\"", "x":11.75, "y":4}, {"x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":4, "w":1.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":1.25}, {"x":1.25, "y":5}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5}, {"label":"\u2191", "x":14.25, "y":5.25}, {"label":"lctrl", "x":0, "y":6}, {"label":"lgui", "x":1, "y":6}, {"label":"lalt", "x":2, "y":6}, {"label":"space", "x":3, "y":6, "w":6}, {"label":"ralt", "x":9, "y":6}, {"label":"rgui", "x":10, "y":6}, {"label":"Menu", "x":11, "y":6}, {"label":"lctrl", "x":12, "y":6}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}, {"label":"Enter", "x":18.5, "y":6}, {"label":"\u2190", "x":13.25, "y":6.25}, {"label":"\u2193", "x":14.25, "y":6.25}, {"label":"\u2192", "x":15.25, "y":6.25}] + }, + } +} diff --git a/keyboards/cherrybstudio/cb1800/keymaps/default/keymap.c b/keyboards/cherrybstudio/cb1800/keymaps/default/keymap.c new file mode 100644 index 000000000000..75a1c207039e --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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, RESET, KC_INS, KC_HOME, KC_PGUP, KC_PSCR, + KC_DEL, KC_END, KC_PGDN, KC_SLCK, + 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_NLCK, KC_PSLS, KC_PAST, KC_PAUS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT + ), + [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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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/cherrybstudio/cb1800/keymaps/default/readme.md b/keyboards/cherrybstudio/cb1800/keymaps/default/readme.md new file mode 100644 index 000000000000..d68382007dd0 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for cb1800 \ No newline at end of file diff --git a/keyboards/cherrybstudio/cb1800/keymaps/via/keymap.c b/keyboards/cherrybstudio/cb1800/keymaps/via/keymap.c new file mode 100644 index 000000000000..7bdb7b023e84 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* +Copyright 2020 Tybera +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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, RESET, KC_INS, KC_HOME, KC_PGUP, KC_PSCR, + KC_DEL, KC_END, KC_PGDN, KC_SLCK, + 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_NLCK, KC_PSLS, KC_PAST, KC_PAUS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT + ), + [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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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/cherrybstudio/cb1800/keymaps/via/rules.mk b/keyboards/cherrybstudio/cb1800/keymaps/via/rules.mk new file mode 100644 index 000000000000..ca9fed0e6b53 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/cherrybstudio/cb1800/readme.md b/keyboards/cherrybstudio/cb1800/readme.md new file mode 100644 index 000000000000..8ab8f3462f0c --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/readme.md @@ -0,0 +1,26 @@ +# CherryB Studio CB1800 + +![cb1800](https://i.imgur.com/QRJ6DFsl.jpg) + +A G80-1800 inspired PCB for CB1800 Zakabato and any suitable 1800 layout keyboards. + +* Keyboard Maintainer: duongaanh +* Hardware Supported: cb1800, atmega32u4 +* Hardware Availability: [CherryB Studio](https://www.reddit.com/r/mechmarket/comments/mneayy/ic_cb1800zanbato_1800_classic_by_cherryb/) + +Make example for this keyboard (after setting up your build environment): + + make cherrybstudio/cb1800:default + +Flashing example for this keyboard: + + make cherrybstudio/cb1800:default:flash + +## Accessing Bootloader Mode + +To access Bootloader Mode, do one of the following: + +* Tap the Reset switch mounted on the top side of the PCB to the left of the spacebar +* Hold the top left key of the keyboard while connecting the USB cable + +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). diff --git a/keyboards/cherrybstudio/cb1800/rules.mk b/keyboards/cherrybstudio/cb1800/rules.mk new file mode 100644 index 000000000000..47167c6f7767 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From ae268596ce9c591b28e80b04516b3ed8936f5aa5 Mon Sep 17 00:00:00 2001 From: AquaCylinder <56627792+AquaCylinder@users.noreply.github.com> Date: Thu, 29 Jul 2021 17:49:51 +0200 Subject: [PATCH 092/328] [Keyboard] Add Emi20 (#13603) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/emi20/config.h | 57 +++++++++++++++ keyboards/emi20/emi20.c | 17 +++++ keyboards/emi20/emi20.h | 33 +++++++++ keyboards/emi20/info.json | 33 +++++++++ keyboards/emi20/keymaps/default/config.h | 19 +++++ keyboards/emi20/keymaps/default/keymap.c | 92 ++++++++++++++++++++++++ keyboards/emi20/keymaps/default/rules.mk | 1 + keyboards/emi20/readme.md | 17 +++++ keyboards/emi20/rules.mk | 22 ++++++ 9 files changed, 291 insertions(+) create mode 100644 keyboards/emi20/config.h create mode 100644 keyboards/emi20/emi20.c create mode 100644 keyboards/emi20/emi20.h create mode 100644 keyboards/emi20/info.json create mode 100644 keyboards/emi20/keymaps/default/config.h create mode 100644 keyboards/emi20/keymaps/default/keymap.c create mode 100644 keyboards/emi20/keymaps/default/rules.mk create mode 100644 keyboards/emi20/readme.md create mode 100644 keyboards/emi20/rules.mk diff --git a/keyboards/emi20/config.h b/keyboards/emi20/config.h new file mode 100644 index 000000000000..98eefdc6ad79 --- /dev/null +++ b/keyboards/emi20/config.h @@ -0,0 +1,57 @@ +/* Copyright 2021 Aquacylinder + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Aquacylinder +#define PRODUCT emi20 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F4, F5, F6, F7, B6 } +#define MATRIX_COL_PINS { C7, C6, B5, B4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ + +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + + + +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 0 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/emi20/emi20.c b/keyboards/emi20/emi20.c new file mode 100644 index 000000000000..a5bcc89d498d --- /dev/null +++ b/keyboards/emi20/emi20.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Aquacylinder + * + * 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 "emi20.h" diff --git a/keyboards/emi20/emi20.h b/keyboards/emi20/emi20.h new file mode 100644 index 000000000000..30d5750e49ae --- /dev/null +++ b/keyboards/emi20/emi20.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Aquacylinder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_5x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, K43 } \ +} diff --git a/keyboards/emi20/info.json b/keyboards/emi20/info.json new file mode 100644 index 000000000000..397a2781ac1d --- /dev/null +++ b/keyboards/emi20/info.json @@ -0,0 +1,33 @@ +{ + "keyboard_name": "Emi20", + "url": "", + "maintainer": "Aquacylinder", + "width": 4, + "height": 5, + "layouts": { + "LAYOUT_ortho_5x4": { + "layout": [ + {"label":"K11 (F7,C7)", "x":1, "y":1}, + {"label":"K21 (F1,C7)", "x":2, "y":1}, + {"label":"K31 (B2,C7)", "x":3, "y":1}, + {"label":"K41 (B2,F0)", "x":4, "y":1}, + {"label":"K12 (F1,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B6)", "x":2, "y":2}, + {"label":"K32 (F1,B6)", "x":3, "y":2}, + {"label":"K42 (B2,B3)", "x":4, "y":2}, + {"label":"K13 (F1,B3)", "x":1, "y":3}, + {"label":"K23 (B2,C6)", "x":2, "y":3}, + {"label":"K33 (F1,C6)", "x":3, "y":3}, + {"label":"K43 (B2,E6)", "x":4, "y":3}, + {"label":"K14 (F1,E6)", "x":1, "y":4}, + {"label":"K24 (B2,D5)", "x":2, "y":4}, + {"label":"K34 (F1,D5)", "x":3, "y":4}, + {"label":"K44 (D0,B1)", "x":4, "y":4}, + {"label":"K15 (D0,F4)", "x":1, "y":5}, + {"label":"K25 (F7,D1)", "x":2, "y":5}, + {"label":"K35 (F7,B3)", "x":3, "y":5}, + {"label":"K45 (B5,C7)", "x":4, "y":5}, + ] + } + } +} diff --git a/keyboards/emi20/keymaps/default/config.h b/keyboards/emi20/keymaps/default/config.h new file mode 100644 index 000000000000..02638312af38 --- /dev/null +++ b/keyboards/emi20/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Aquacylinder + * + * 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 COMBO_COUNT 1 diff --git a/keyboards/emi20/keymaps/default/keymap.c b/keyboards/emi20/keymaps/default/keymap.c new file mode 100644 index 000000000000..4c33ee85ea1b --- /dev/null +++ b/keyboards/emi20/keymaps/default/keymap.c @@ -0,0 +1,92 @@ +/* Copyright 2021 Aquacylinder + * + * 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 +bool is_ERESET_active = false; +uint16_t ERESET_timer = 0; + +enum custom_keycodes { + MACRO1 = SAFE_RANGE, //MACRO1 can be anything you want see the qmk documentation + MACRO2, //MACRO2 Same thing, you can add as many as you like +}; + +//Reset combo key naming +enum combo_events { + ENLCK_reset, +}; + +//Reset combo key setting the keys +const uint16_t PROGMEM reset_combo[] = {KC_NLCK, KC_MPLY, COMBO_END}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + //Macro's are mentioned here allong with the keycodes + LAYOUT_ortho_5x4( //Base layer (0) + TG(1), KC_VOLD, KC_VOLU, KC_BSPC, + KC_P7, KC_P8, KC_P9, KC_PSLS, + KC_P4, KC_P5, KC_P6, KC_PAST, + KC_P1, KC_P2, KC_P3, KC_PMNS, + KC_P0, KC_PDOT, KC_PENT, KC_PPLS), + + LAYOUT_ortho_5x4( //Layer 1 + KC_TRNS, KC_VOLD, KC_VOLU, KC_CALC, + KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_UP, KC_NO, + KC_NLCK, KC_LEFT, KC_DOWN, KC_RGHT), + //Copy any layer and edit it for more layers, be sure to add a key to go to that layer +}; + +//Reset combo key setting +combo_t key_combos[COMBO_COUNT] = { + [ENLCK_reset] = COMBO_ACTION(reset_combo), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MACRO1: //This is where the macro's are located + if (record->event.pressed) { + // when keycode MACRO1 is pressed + SEND_STRING("Thank you"); + } else { + // when keycode MACRO1 is released + SEND_STRING("for being you <3"); + } + break; + + case MACRO2: + if (record->event.pressed) { + // when keycode MACRO2 is pressed + SEND_STRING("Pizza is"); + } else { + // when keycode MACRO2 is released + SEND_STRING("delicious ;)"); + } + break; + } + return true; +} + +//Reset key combo and a example to make our own, more complex, macro's +void process_combo_event(uint16_t combo_index, bool pressed) { + switch(combo_index) { + case ENLCK_reset: + if (pressed) { + reset_keyboard(); + } + break; + } +} diff --git a/keyboards/emi20/keymaps/default/rules.mk b/keyboards/emi20/keymaps/default/rules.mk new file mode 100644 index 000000000000..ff681299e4e9 --- /dev/null +++ b/keyboards/emi20/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/emi20/readme.md b/keyboards/emi20/readme.md new file mode 100644 index 000000000000..8395036350ea --- /dev/null +++ b/keyboards/emi20/readme.md @@ -0,0 +1,17 @@ +# Emi20 + +![Emi20](https://i.imgur.com/Tt9ogmWl.jpg) + +A compact 4x5 ortholinear keyboard made by Project Aqua and sold by Evil-cables. + +* Keyboard Maintainer: [AquaCylinder](https://github.com/AquaCylinder) +* Hardware Supported: PCB, Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make emi20:default + +To reset the board into bootloader mode, press the physical reset button on the back of the PCB or use the keycombo (on layer 1) with the bottom left key and the second key from the top right diagonally. + +The default keymap.c file has comments to help you on your journey, +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). diff --git a/keyboards/emi20/rules.mk b/keyboards/emi20/rules.mk new file mode 100644 index 000000000000..81598c2f7208 --- /dev/null +++ b/keyboards/emi20/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader Selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 768072e824aa1f95bec1c15ec8072770f92d193f Mon Sep 17 00:00:00 2001 From: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Thu, 29 Jul 2021 23:50:28 +0800 Subject: [PATCH 093/328] [Keyboard] Add Mojo68 for Melgeek (#13578) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/melgeek/mojo68/config.h | 52 ++++++ keyboards/melgeek/mojo68/info.json | 85 +++++++++ .../melgeek/mojo68/keymaps/default/keymap.c | 35 ++++ keyboards/melgeek/mojo68/keymaps/via/keymap.c | 49 ++++++ keyboards/melgeek/mojo68/keymaps/via/rules.mk | 2 + keyboards/melgeek/mojo68/mojo68.c | 17 ++ keyboards/melgeek/mojo68/mojo68.h | 35 ++++ keyboards/melgeek/mojo68/readme.md | 15 ++ keyboards/melgeek/mojo68/rev1/config.h | 39 +++++ keyboards/melgeek/mojo68/rev1/rev1.c | 162 ++++++++++++++++++ keyboards/melgeek/mojo68/rev1/rules.mk | 25 +++ 11 files changed, 516 insertions(+) create mode 100755 keyboards/melgeek/mojo68/config.h create mode 100755 keyboards/melgeek/mojo68/info.json create mode 100755 keyboards/melgeek/mojo68/keymaps/default/keymap.c create mode 100755 keyboards/melgeek/mojo68/keymaps/via/keymap.c create mode 100755 keyboards/melgeek/mojo68/keymaps/via/rules.mk create mode 100755 keyboards/melgeek/mojo68/mojo68.c create mode 100755 keyboards/melgeek/mojo68/mojo68.h create mode 100755 keyboards/melgeek/mojo68/readme.md create mode 100755 keyboards/melgeek/mojo68/rev1/config.h create mode 100755 keyboards/melgeek/mojo68/rev1/rev1.c create mode 100755 keyboards/melgeek/mojo68/rev1/rules.mk diff --git a/keyboards/melgeek/mojo68/config.h b/keyboards/melgeek/mojo68/config.h new file mode 100755 index 000000000000..ffd92a7834f3 --- /dev/null +++ b/keyboards/melgeek/mojo68/config.h @@ -0,0 +1,52 @@ +/* Copyright 2020 MelGeek + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xEDED +#define PRODUCT_ID 0x0068 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MelGeek +#define PRODUCT MoJo68 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 3 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_LED_PROCESS_LIMIT 4 +#define RGB_MATRIX_LED_FLUSH_LIMIT 26 +#define DISABLE_RGB_MATRIX_SPLASH +#define DISABLE_RGB_MATRIX_MULTISPLASH +#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +//#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL +#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons. +#define DRIVER_COUNT 1 + diff --git a/keyboards/melgeek/mojo68/info.json b/keyboards/melgeek/mojo68/info.json new file mode 100755 index 000000000000..01528250cc4b --- /dev/null +++ b/keyboards/melgeek/mojo68/info.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "MoJo68", + "url": "", + "maintainer": "melgeek001365", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_68_ansi": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2.0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/melgeek/mojo68/keymaps/default/keymap.c b/keyboards/melgeek/mojo68/keymaps/default/keymap.c new file mode 100755 index 000000000000..f76ca3a37bf7 --- /dev/null +++ b/keyboards/melgeek/mojo68/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 MelGeek + * + * 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_68_ansi( + 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_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_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_68_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, _______, EEP_RST, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_INS, KC_END, KC_MPLY, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; + diff --git a/keyboards/melgeek/mojo68/keymaps/via/keymap.c b/keyboards/melgeek/mojo68/keymaps/via/keymap.c new file mode 100755 index 000000000000..c8655ab819f8 --- /dev/null +++ b/keyboards/melgeek/mojo68/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2020 MelGeek + * + * 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_68_ansi( + 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_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_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_68_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, _______, EEP_RST, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_INS, KC_END, KC_MPLY, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT_68_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_68_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + diff --git a/keyboards/melgeek/mojo68/keymaps/via/rules.mk b/keyboards/melgeek/mojo68/keymaps/via/rules.mk new file mode 100755 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/melgeek/mojo68/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/melgeek/mojo68/mojo68.c b/keyboards/melgeek/mojo68/mojo68.c new file mode 100755 index 000000000000..d217daf0acff --- /dev/null +++ b/keyboards/melgeek/mojo68/mojo68.c @@ -0,0 +1,17 @@ +/* Copyright 2020 MelGeek + * + * 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 "mojo68.h" diff --git a/keyboards/melgeek/mojo68/mojo68.h b/keyboards/melgeek/mojo68/mojo68.h new file mode 100755 index 000000000000..f5823c1926f5 --- /dev/null +++ b/keyboards/melgeek/mojo68/mojo68.h @@ -0,0 +1,35 @@ +/* Copyright 2020 MelGeek + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_68_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX, K3E }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/melgeek/mojo68/readme.md b/keyboards/melgeek/mojo68/readme.md new file mode 100755 index 000000000000..9895048d318d --- /dev/null +++ b/keyboards/melgeek/mojo68/readme.md @@ -0,0 +1,15 @@ +# MelGeek MoJo68 + +![MoJo68](https://cdn.shopifycdn.net/s/files/1/0078/2863/5712/products/c34621677ffc53ea6d1c68ab82100749_1024x1024@2x.jpg?v=1612186093) + +A hotswap 65% RGB Custom Mechanical keyboard. + +* Keyboard Maintainer: [melgeek001365](https://github.com/melgeek001365) +* Hardware Supported: MOJO68 rev1 20210717 +* Hardware Availability: [MelGeek](https://www.melgeek.com/) + +Make example for this keyboard (after setting up your build environment): + + make melgeek/mojo68/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/melgeek/mojo68/rev1/config.h b/keyboards/melgeek/mojo68/rev1/config.h new file mode 100755 index 000000000000..febdab8a3e60 --- /dev/null +++ b/keyboards/melgeek/mojo68/rev1/config.h @@ -0,0 +1,39 @@ +/* Copyright 2020 MelGeek + * + * 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 + +/* + * 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 { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { B0 ,B1, B2, B3, D2, D5, D4, D6, D7, B4, B5, B6, C6, C7, E2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define DRIVER_1_LED_TOTAL 68 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define DRIVER_INDICATOR_LED_TOTAL 3 diff --git a/keyboards/melgeek/mojo68/rev1/rev1.c b/keyboards/melgeek/mojo68/rev1/rev1.c new file mode 100755 index 000000000000..a2e8f7158a0f --- /dev/null +++ b/keyboards/melgeek/mojo68/rev1/rev1.c @@ -0,0 +1,162 @@ +/* Copyright 2020 MelGeek + * + * 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 "mojo68.h" + +#ifdef RGB_MATRIX_ENABLE + + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ + {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ + {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ + {0, CS9_SW4, CS8_SW4, CS7_SW4}, /* RGB4 */ + {0, CS9_SW5, CS8_SW5, CS7_SW5}, /* RGB5 */ + {0, CS9_SW6, CS8_SW6, CS7_SW6}, /* RGB6 */ + {0, CS9_SW7, CS8_SW7, CS7_SW7}, /* RGB7 */ + {0, CS9_SW8, CS8_SW8, CS7_SW8}, /* RGB8 */ + {0, CS9_SW9, CS8_SW9, CS7_SW9}, /* RGB9 */ + {0, CS24_SW1, CS23_SW1, CS22_SW1}, /* RGB46 */ + {0, CS24_SW2, CS23_SW2, CS22_SW2}, /* RGB47 */ + {0, CS24_SW3, CS23_SW3, CS22_SW3}, /* RGB48 */ + {0, CS24_SW4, CS23_SW4, CS22_SW4}, /* RGB49 */ + {0, CS24_SW5, CS23_SW5, CS22_SW5}, /* RGB50 */ + {0, CS24_SW6, CS23_SW6, CS22_SW6}, /* RGB51 */ + {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB10 */ + {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB11 */ + {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB12 */ + {0, CS12_SW4, CS11_SW4, CS10_SW4}, /* RGB13 */ + {0, CS12_SW5, CS11_SW5, CS10_SW5}, /* RGB14 */ + {0, CS12_SW6, CS11_SW6, CS10_SW6}, /* RGB15 */ + {0, CS12_SW7, CS11_SW7, CS10_SW7}, /* RGB16 */ + {0, CS12_SW8, CS11_SW8, CS10_SW8}, /* RGB17 */ + {0, CS12_SW9, CS11_SW9, CS10_SW9}, /* RGB18 */ + {0, CS24_SW7, CS23_SW7, CS22_SW7}, /* RGB52 */ + {0, CS24_SW8, CS23_SW8, CS22_SW8}, /* RGB53 */ + {0, CS24_SW9, CS23_SW9, CS22_SW9}, /* RGB54 */ + {0, CS27_SW1, CS26_SW1, CS25_SW1}, /* RGB55 */ + {0, CS27_SW2, CS26_SW2, CS25_SW2}, /* RGB56 */ + {0, CS27_SW3, CS26_SW3, CS25_SW3}, /* RGB57 */ + {0, CS15_SW1, CS14_SW1, CS13_SW1}, /* RGB19 */ + {0, CS15_SW2, CS14_SW2, CS13_SW2}, /* RGB20 */ + {0, CS15_SW3, CS14_SW3, CS13_SW3}, /* RGB21 */ + {0, CS15_SW4, CS14_SW4, CS13_SW4}, /* RGB22 */ + {0, CS15_SW5, CS14_SW5, CS13_SW5}, /* RGB23 */ + {0, CS15_SW6, CS14_SW6, CS13_SW6}, /* RGB24 */ + {0, CS15_SW7, CS14_SW7, CS13_SW7}, /* RGB25 */ + {0, CS15_SW8, CS14_SW8, CS13_SW8}, /* RGB26 */ + {0, CS15_SW9, CS14_SW9, CS13_SW9}, /* RGB27 */ + {0, CS27_SW4, CS26_SW4, CS25_SW4}, /* RGB58 */ + {0, CS27_SW5, CS26_SW5, CS25_SW5}, /* RGB59 */ + {0, CS27_SW6, CS26_SW6, CS25_SW6}, /* RGB60 */ + {0, CS27_SW7, CS26_SW7, CS25_SW7}, /* RGB61 */ + {0, CS27_SW8, CS26_SW8, CS25_SW8}, /* RGB62 */ + {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB28 */ + {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB29 */ + {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB30 */ + {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB31 */ + {0, CS18_SW5, CS17_SW5, CS16_SW5}, /* RGB32 */ + {0, CS18_SW6, CS17_SW6, CS16_SW6}, /* RGB33 */ + {0, CS18_SW7, CS17_SW7, CS16_SW7}, /* RGB34 */ + {0, CS18_SW8, CS17_SW8, CS16_SW8}, /* RGB35 */ + {0, CS18_SW9, CS17_SW9, CS16_SW9}, /* RGB36 */ + {0, CS27_SW9, CS26_SW9, CS25_SW9}, /* RGB63 */ + {0, CS30_SW1, CS29_SW1, CS28_SW1}, /* RGB64 */ + {0, CS30_SW2, CS29_SW2, CS28_SW2}, /* RGB65 */ + {0, CS30_SW3, CS29_SW3, CS28_SW3}, /* RGB66 */ + {0, CS30_SW4, CS29_SW4, CS28_SW4}, /* RGB67 */ + {0, CS21_SW1, CS20_SW1, CS19_SW1}, /* RGB37 */ + {0, CS21_SW2, CS20_SW2, CS19_SW2}, /* RGB38 */ + {0, CS21_SW3, CS20_SW3, CS19_SW3}, /* RGB39 */ + {0, CS21_SW4, CS20_SW4, CS19_SW4}, /* RGB40 */ + {0, CS21_SW5, CS20_SW5, CS19_SW5}, /* RGB41 */ + {0, CS21_SW6, CS20_SW6, CS19_SW6}, /* RGB42 */ + {0, CS21_SW7, CS20_SW7, CS19_SW7}, /* RGB43 */ + {0, CS21_SW8, CS20_SW8, CS19_SW8}, /* RGB44 */ + {0, CS21_SW9, CS20_SW9, CS19_SW9}, /* RGB45 */ + {0, CS30_SW5, CS29_SW5, CS28_SW5}, /* RGB68 */ +}; + +led_config_t g_led_config = { + { + /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14*/ + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */ + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, /* R2 */ + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, NO_LED, 57 }, /* R3 */ + { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }, /* R4 */ + }, { + {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, + {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, + {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, + {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, + {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, + }, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + } +}; + +const is31_led g_is31_indicator_leds[3] = { + {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB124 */ + {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB125 */ + {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB126 */ +}; + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + if (led_state.caps_lock) { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0xff, 0x00, 0x00); + } else { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); + } + + if (led_state.num_lock) { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0xff, 0x00); + } else { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); + } + + if (led_state.scroll_lock) { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0xff); + } else { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); + } + } + return true; +} + +void matrix_init_kb(void) { + for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { + is31_led led = g_is31_indicator_leds[i]; + IS31FL3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); + } + + IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + + matrix_init_user(); +} + + +void keyboard_pre_init_kb(void) { + setPinOutput(B7); + writePinHigh(B7); + keyboard_pre_init_user(); +} +#endif diff --git a/keyboards/melgeek/mojo68/rev1/rules.mk b/keyboards/melgeek/mojo68/rev1/rules.mk new file mode 100755 index 000000000000..ec17a50b573d --- /dev/null +++ b/keyboards/melgeek/mojo68/rev1/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3741 + +LAYOUTS = 68_ansi From 6bdecb16c0fc1b3dd17cbc0d2bc73f9a7bfa6142 Mon Sep 17 00:00:00 2001 From: Uy Bui Date: Fri, 30 Jul 2021 01:03:21 +0900 Subject: [PATCH 094/328] [Keyboard] we27 update info.json (#13678) --- keyboards/wekey/we27/info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/wekey/we27/info.json b/keyboards/wekey/we27/info.json index e83f53b444f2..7b042adc71c0 100644 --- a/keyboards/wekey/we27/info.json +++ b/keyboards/wekey/we27/info.json @@ -7,12 +7,12 @@ "layouts": { "LAYOUT_numpad_6x5": { "layout": [ - {"label":"ESC", "x":0, "y":0.75}, {"label":"PRTSC", "x":1, "y":0.75}, {"label":"F5", "x":2, "y":0.75}, {"label":"F11", "x":3, "y":0.75}, - {"label":"NLCK", "x":0, "y":2.25}, {"label":"DEL", "x":1, "y":2.25}, {"label":"/", "x":2, "y":2.25}, {"label":"*", "x":3, "y":2.25}, {"label":"-", "x":4, "y":2.25}, - {"label":"HOME", "x":0, "y":3.25}, {"label":"7", "x":1, "y":3.25}, {"label":"8", "x":2, "y":3.25}, {"label":"9", "x":3, "y":3.25}, - {"label":"END", "x":0, "y":4.25}, {"label":"4", "x":1, "y":4.25}, {"label":"5", "x":2, "y":4.25}, {"label":"6", "x":3, "y":4.25}, {"label":"+", "x":4, "y":3.25, "h":2}, - {"label":"ANY", "x":0, "y":5.25}, {"label":"1", "x":1, "y":5.25}, {"label":"2", "x":2, "y":5.25}, {"label":"3", "x":3, "y":5.25}, - {"label":"FN", "x":0, "y":6.25}, {"label":"0", "x":1, "y":6.25, "w":2}, {"label":".", "x":3, "y":6.25}, {"label":"ENTER", "x":4, "y":5.25, "h":2} + {"label":"ESC", "x":0, "y":0}, {"label":"PRTSC", "x":1, "y":0}, {"label":"F5", "x":2, "y":0}, {"label":"F11", "x":3, "y":0}, {"label":"MUTE", "x":4, "y":0}, + {"label":"NLCK", "x":0, "y":1.5}, {"label":"DEL", "x":1, "y":1.5}, {"label":"/", "x":2, "y":1.5}, {"label":"*", "x":3, "y":1.5}, {"label":"-", "x":4, "y":1.5}, + {"label":"HOME", "x":0, "y":2.5}, {"label":"7", "x":1, "y":2.5}, {"label":"8", "x":2, "y":2.5}, {"label":"9", "x":3, "y":2.5}, + {"label":"END", "x":0, "y":3.5}, {"label":"4", "x":1, "y":3.5}, {"label":"5", "x":2, "y":3.5}, {"label":"6", "x":3, "y":3.5}, {"label":"+", "x":4, "y":2.5, "h":2}, + {"label":"ANY", "x":0, "y":4.5}, {"label":"1", "x":1, "y":4.5}, {"label":"2", "x":2, "y":4.5}, {"label":"3", "x":3, "y":4.5}, + {"label":"FN", "x":0, "y":5.5}, {"label":"0", "x":1, "y":5.5, "w":2}, {"label":".", "x":3, "y":5.5}, {"label":"ENTER", "x":4, "y":4.5, "h":2} ] }, "LAYOUT_numpad_6x5_encoder": { From 441fd2ca5b942ea93d2345d1181ed76a95fd8ae7 Mon Sep 17 00:00:00 2001 From: Takeshi Nishio Date: Fri, 30 Jul 2021 01:11:40 +0900 Subject: [PATCH 095/328] [Keyboard] Match Vendor ID to my other keyboard, "unison". (#13699) Co-authored-by: Takeshi Nishio --- keyboards/jones/v03/config.h | 2 +- keyboards/jones/v03_1/config.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/jones/v03/config.h b/keyboards/jones/v03/config.h index 0ff82e8d37db..7a37fc1f3dfd 100644 --- a/keyboards/jones/v03/config.h +++ b/keyboards/jones/v03/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0xB9DD #define PRODUCT_ID 0x175A #define DEVICE_VER 0x0030 #define MANUFACTURER jpskenn diff --git a/keyboards/jones/v03_1/config.h b/keyboards/jones/v03_1/config.h index c1d6a577fc49..1b67b6b58fef 100644 --- a/keyboards/jones/v03_1/config.h +++ b/keyboards/jones/v03_1/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0xB9DD #define PRODUCT_ID 0x175A #define DEVICE_VER 0x0031 #define MANUFACTURER jpskenn From aa0b7079a4a7a3174c7f078fc5fa81e630df1775 Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Thu, 29 Jul 2021 23:12:29 +0700 Subject: [PATCH 096/328] [Keyboard] add sus board (#13701) --- keyboards/ocean/sus/config.h | 51 ++++++++++++++++++++ keyboards/ocean/sus/info.json | 28 +++++++++++ keyboards/ocean/sus/keymaps/default/keymap.c | 45 +++++++++++++++++ keyboards/ocean/sus/keymaps/via/keymap.c | 45 +++++++++++++++++ keyboards/ocean/sus/keymaps/via/rules.mk | 2 + keyboards/ocean/sus/readme.md | 24 +++++++++ keyboards/ocean/sus/rules.mk | 22 +++++++++ keyboards/ocean/sus/sus.c | 15 ++++++ keyboards/ocean/sus/sus.h | 31 ++++++++++++ 9 files changed, 263 insertions(+) create mode 100644 keyboards/ocean/sus/config.h create mode 100644 keyboards/ocean/sus/info.json create mode 100644 keyboards/ocean/sus/keymaps/default/keymap.c create mode 100644 keyboards/ocean/sus/keymaps/via/keymap.c create mode 100644 keyboards/ocean/sus/keymaps/via/rules.mk create mode 100644 keyboards/ocean/sus/readme.md create mode 100644 keyboards/ocean/sus/rules.mk create mode 100644 keyboards/ocean/sus/sus.c create mode 100644 keyboards/ocean/sus/sus.h diff --git a/keyboards/ocean/sus/config.h b/keyboards/ocean/sus/config.h new file mode 100644 index 000000000000..c3e2a3263a35 --- /dev/null +++ b/keyboards/ocean/sus/config.h @@ -0,0 +1,51 @@ +/*Copyright 2021 Ocean + +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 VENDOR_ID 0x9624 +#define PRODUCT_ID 0x0009 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ocean +#define PRODUCT Sus + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 3 + +/* + * 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) + * + */ +/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14*/ +#define MATRIX_ROW_PINS { B5, B4, E6, D7 } +#define MATRIX_COL_PINS { C6, D4, D0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + diff --git a/keyboards/ocean/sus/info.json b/keyboards/ocean/sus/info.json new file mode 100644 index 000000000000..9bfad4239fa1 --- /dev/null +++ b/keyboards/ocean/sus/info.json @@ -0,0 +1,28 @@ +{ + "keyboard_name": "SUS", + "url": " ", + "maintainer": "Ocean", + "width": 3, + "height": 4, + "layouts": { + "LAYOUT_ortho_3x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/ocean/sus/keymaps/default/keymap.c b/keyboards/ocean/sus/keymaps/default/keymap.c new file mode 100644 index 000000000000..166e84018e0e --- /dev/null +++ b/keyboards/ocean/sus/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2021 Ocean + * 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_ortho_3x4( + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, + KC_PENT, KC_P0, MO(1) + ), + + [1] = LAYOUT_ortho_3x4( + 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_ortho_3x4( + 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_ortho_3x4( + 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/ocean/sus/keymaps/via/keymap.c b/keyboards/ocean/sus/keymaps/via/keymap.c new file mode 100644 index 000000000000..166e84018e0e --- /dev/null +++ b/keyboards/ocean/sus/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2021 Ocean + * 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_ortho_3x4( + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, + KC_PENT, KC_P0, MO(1) + ), + + [1] = LAYOUT_ortho_3x4( + 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_ortho_3x4( + 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_ortho_3x4( + 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/ocean/sus/keymaps/via/rules.mk b/keyboards/ocean/sus/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/ocean/sus/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/ocean/sus/readme.md b/keyboards/ocean/sus/readme.md new file mode 100644 index 000000000000..5cc8a94590cd --- /dev/null +++ b/keyboards/ocean/sus/readme.md @@ -0,0 +1,24 @@ +# SUS Board + +![SUS](https://user-images.githubusercontent.com/30220306/126883340-47401d95-2095-4e55-ba5c-4ae7acaa430f.png) + + +A Macropad like a amogus + +* Keyboard Maintainer: Ocean +* Hardware Supported: Sus Board, Pro Micro +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make ocean/sus:default + +Flashing example for this keyboard: + + make ocean/sus:default:flash + +## Bootloader + +To Enter the bootloader you can double click reset button on board when you flash the firmware + +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). diff --git a/keyboards/ocean/sus/rules.mk b/keyboards/ocean/sus/rules.mk new file mode 100644 index 000000000000..68a44eb8bdcc --- /dev/null +++ b/keyboards/ocean/sus/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/ocean/sus/sus.c b/keyboards/ocean/sus/sus.c new file mode 100644 index 000000000000..d04a12bfbaad --- /dev/null +++ b/keyboards/ocean/sus/sus.c @@ -0,0 +1,15 @@ +/* Copyright 2021 Ocean + * 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 "sus.h" diff --git a/keyboards/ocean/sus/sus.h b/keyboards/ocean/sus/sus.h new file mode 100644 index 000000000000..394b003388db --- /dev/null +++ b/keyboards/ocean/sus/sus.h @@ -0,0 +1,31 @@ +/* Copyright 2021 Ocean + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_3x4(\ + K00, K01, K02, \ + K10, K11, K12, \ + K20, K21, K22, \ + K30, K31, K32 \ +) \ +{ \ + { K00, K01, K02 }, \ + { K10, K11, K12 }, \ + { K20, K21, K22 }, \ + { K30, K31, K32 }, \ +} From 5a0985aa4a10ae15d3c3eb49a0394b10a62160ae Mon Sep 17 00:00:00 2001 From: TreasureTypes <73436366+TreasureTypes@users.noreply.github.com> Date: Thu, 29 Jul 2021 18:50:05 +0200 Subject: [PATCH 097/328] [Keyboard] Add Treasure TYPE-9 Series II (#13725) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- keyboards/treasure/type9s2/config.h | 50 +++++++++++++++++++ keyboards/treasure/type9s2/info.json | 22 ++++++++ .../treasure/type9s2/keymaps/default/keymap.c | 43 ++++++++++++++++ .../type9s2/keymaps/default/readme.md | 1 + .../treasure/type9s2/keymaps/via/keymap.c | 43 ++++++++++++++++ .../treasure/type9s2/keymaps/via/readme.md | 1 + .../treasure/type9s2/keymaps/via/rules.mk | 1 + keyboards/treasure/type9s2/readme.md | 17 +++++++ keyboards/treasure/type9s2/rules.mk | 23 +++++++++ keyboards/treasure/type9s2/type9s2.c | 16 ++++++ keyboards/treasure/type9s2/type9s2.h | 29 +++++++++++ 11 files changed, 246 insertions(+) create mode 100644 keyboards/treasure/type9s2/config.h create mode 100644 keyboards/treasure/type9s2/info.json create mode 100644 keyboards/treasure/type9s2/keymaps/default/keymap.c create mode 100644 keyboards/treasure/type9s2/keymaps/default/readme.md create mode 100644 keyboards/treasure/type9s2/keymaps/via/keymap.c create mode 100644 keyboards/treasure/type9s2/keymaps/via/readme.md create mode 100644 keyboards/treasure/type9s2/keymaps/via/rules.mk create mode 100644 keyboards/treasure/type9s2/readme.md create mode 100644 keyboards/treasure/type9s2/rules.mk create mode 100644 keyboards/treasure/type9s2/type9s2.c create mode 100644 keyboards/treasure/type9s2/type9s2.h diff --git a/keyboards/treasure/type9s2/config.h b/keyboards/treasure/type9s2/config.h new file mode 100644 index 000000000000..a9d73f961f5c --- /dev/null +++ b/keyboards/treasure/type9s2/config.h @@ -0,0 +1,50 @@ +/* Copyright 2021 Treasure + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5452 +#define PRODUCT_ID 0x5492 +#define DEVICE_VER 0x0001 +#define MANUFACTURER TREASURE +#define PRODUCT TYPE-9 Series II + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +/* Keyboard Matrix Assignments*/ +#define MATRIX_ROW_PINS { B4, B5, D2 } +#define MATRIX_COL_PINS { B2, B3, C5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B7 + +/* 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 + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + diff --git a/keyboards/treasure/type9s2/info.json b/keyboards/treasure/type9s2/info.json new file mode 100644 index 000000000000..5991a22ef032 --- /dev/null +++ b/keyboards/treasure/type9s2/info.json @@ -0,0 +1,22 @@ +{ + "keyboard_name": "Treasure TYPE-9 Series II", + "url": "http://treasuretypes.com", + "maintainer": "Treasure", + "width": 3, + "height": 3, + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"label": "7", "x": 0, "y": 0}, + {"label": "8", "x": 1, "y": 0}, + {"label": "9", "x": 2, "y": 0}, + {"label": "4", "x": 0, "y": 1}, + {"label": "5", "x": 1, "y": 1}, + {"label": "6", "x": 2, "y": 1}, + {"label": "1", "x": 0, "y": 2}, + {"label": "2", "x": 1, "y": 2}, + {"label": "3", "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/treasure/type9s2/keymaps/default/keymap.c b/keyboards/treasure/type9s2/keymaps/default/keymap.c new file mode 100644 index 000000000000..35e789a95d42 --- /dev/null +++ b/keyboards/treasure/type9s2/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 Treasure + * + * 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_ortho_3x3( + MO(1), KC_MPLY, BL_STEP, + KC_VOLD, KC_MUTE, KC_VOLU, + KC_KP_1, KC_KP_2, KC_KP_3 + ), + + [1] = LAYOUT_ortho_3x3( + _______, _______, MO(2), + _______, _______, _______, + _______, _______, _______ + ), + + [2] = LAYOUT_ortho_3x3( + _______, _______, _______, + _______, _______, _______, + _______, _______, MO(3) + ), + + [3] = LAYOUT_ortho_3x3( + _______, _______, _______, + _______, _______, _______, + RESET, _______, _______ + ) +}; diff --git a/keyboards/treasure/type9s2/keymaps/default/readme.md b/keyboards/treasure/type9s2/keymaps/default/readme.md new file mode 100644 index 000000000000..76778b088be1 --- /dev/null +++ b/keyboards/treasure/type9s2/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Type-9 Series II diff --git a/keyboards/treasure/type9s2/keymaps/via/keymap.c b/keyboards/treasure/type9s2/keymaps/via/keymap.c new file mode 100644 index 000000000000..a3e959a9fc3b --- /dev/null +++ b/keyboards/treasure/type9s2/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 Treasure + * + * 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_ortho_3x3( + KC_KP_7, KC_KP_8, KC_KP_9, + KC_KP_4, LT(1, KC_KP_5), KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3 + ), + + [1] = LAYOUT_ortho_3x3( + _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), + + [2] = LAYOUT_ortho_3x3( + _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), + + [3] = LAYOUT_ortho_3x3( + _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ) +}; diff --git a/keyboards/treasure/type9s2/keymaps/via/readme.md b/keyboards/treasure/type9s2/keymaps/via/readme.md new file mode 100644 index 000000000000..76778b088be1 --- /dev/null +++ b/keyboards/treasure/type9s2/keymaps/via/readme.md @@ -0,0 +1 @@ +# The default keymap for Type-9 Series II diff --git a/keyboards/treasure/type9s2/keymaps/via/rules.mk b/keyboards/treasure/type9s2/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/treasure/type9s2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/treasure/type9s2/readme.md b/keyboards/treasure/type9s2/readme.md new file mode 100644 index 000000000000..2985778f4f09 --- /dev/null +++ b/keyboards/treasure/type9s2/readme.md @@ -0,0 +1,17 @@ +# Treasure TYPE-9 Series II + +![TYPE9SII](https://i.imgur.com/lohJ0Dal.png) + +Treasure TYPE-9 Series II is a 3x3 Macropad. + +* Keyboard Maintainer: [Treasure](https://github.com/TreasureTypes) +* Hardware Supported: Treasure TYPE-9 Series II PCB +* Hardware Availability: [Treasure Store](http://treasuretypes.com) + +To place the keyboard into bootloader mode in order to flash it, use the reset button on the PCB. + +Make example for this keyboard (after setting up your build environment): + + make treasure/type9s2:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/treasure/type9s2/rules.mk b/keyboards/treasure/type9s2/rules.mk new file mode 100644 index 000000000000..cfa90bc6015d --- /dev/null +++ b/keyboards/treasure/type9s2/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes diff --git a/keyboards/treasure/type9s2/type9s2.c b/keyboards/treasure/type9s2/type9s2.c new file mode 100644 index 000000000000..f5c86e0006ab --- /dev/null +++ b/keyboards/treasure/type9s2/type9s2.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Treasure + * + * 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 "type9s2.h" diff --git a/keyboards/treasure/type9s2/type9s2.h b/keyboards/treasure/type9s2/type9s2.h new file mode 100644 index 000000000000..1a18416bc1a8 --- /dev/null +++ b/keyboards/treasure/type9s2/type9s2.h @@ -0,0 +1,29 @@ +/* Copyright 2021 Treasure + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_3x3( \ + K00, K01, K02, \ + K10, K11, K12, \ + K20, K21, K22 \ +) { \ + { K00, K01, K02 }, \ + { K10, K11, K12 }, \ + { K20, K21, K22 } \ +} From a78fdbb1f63305c4960642dc1005d06d5d0e69be Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 29 Jul 2021 10:45:22 -0700 Subject: [PATCH 098/328] Draytronics Elise Configurator fixes (#13763) --- keyboards/draytronics/elise/elise.h | 12 +- keyboards/draytronics/elise/info.json | 635 ++++++++++++++++++++++++-- 2 files changed, 594 insertions(+), 53 deletions(-) diff --git a/keyboards/draytronics/elise/elise.h b/keyboards/draytronics/elise/elise.h index d3de0aee6a4c..750d651a238c 100755 --- a/keyboards/draytronics/elise/elise.h +++ b/keyboards/draytronics/elise/elise.h @@ -36,7 +36,7 @@ along with this program. If not, see . { K40, K41, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ } -#define LAYOUT_65_ansi_right_lrg( \ +#define LAYOUT_65_ansi_rwkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -50,7 +50,7 @@ along with this program. If not, see . { K40, K41, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, _x_, K4B, K4C, K4D, K4E} \ } -#define LAYOUT_65_ansi_left_lrg( \ +#define LAYOUT_65_ansi_lwkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -64,7 +64,7 @@ along with this program. If not, see . { K40, _x_, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ } -#define LAYOUT_65_ansi_lrg( \ +#define LAYOUT_65_ansi_wkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -92,7 +92,7 @@ along with this program. If not, see . { K40, K41, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ } -#define LAYOUT_65_iso_right_lrg( \ +#define LAYOUT_65_iso_rwkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \ @@ -106,7 +106,7 @@ along with this program. If not, see . { K40, K41, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, _x_, K4B, K4C, K4D, K4E} \ } -#define LAYOUT_65_iso_left_lrg( \ +#define LAYOUT_65_iso_lwkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \ @@ -120,7 +120,7 @@ along with this program. If not, see . { K40, _x_, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ } -#define LAYOUT_65_iso_lrg( \ +#define LAYOUT_65_iso_wkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \ diff --git a/keyboards/draytronics/elise/info.json b/keyboards/draytronics/elise/info.json index 752bda1f74bf..ef73bbc30496 100644 --- a/keyboards/draytronics/elise/info.json +++ b/keyboards/draytronics/elise/info.json @@ -4,76 +4,617 @@ "maintainer": "ghostseven", "width": 16, "height": 5, + "layout_aliases": { + "LAYOUT_65_ansi_right_lrg": "LAYOUT_65_ansi_rwkl", + "LAYOUT_65_ansi_left_lrg": "LAYOUT_65_ansi_lwkl", + "LAYOUT_65_ansi_lrg": "LAYOUT_65_ansi_wkl", + "LAYOUT_65_iso_right_lrg": "LAYOUT_65_iso_rwkl", + "LAYOUT_65_iso_left_lrg": "LAYOUT_65_iso_lwkl", + "LAYOUT_65_iso_lrg": "LAYOUT_65_iso_wkl" + }, "layouts": { "LAYOUT_65_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":"10", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, - {"label":"Caps Lock", "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":"PgUp", "x":15, "y":2}, - {"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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "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}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} - ] + {"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":"10", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgUp", "x":15, "y":2}, + + {"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":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "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}, + {"label":"Fn", "x":11, "y":4}, + {"label":"Ctrl", "x":12, "y":4}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] }, - "LAYOUT_65_ansi_right_lrg": { + "LAYOUT_65_ansi_rwkl": { "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":"10", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, - {"label":"Caps Lock", "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":"PgUp", "x":15, "y":2}, - {"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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "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.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + {"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":"10", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgUp", "x":15, "y":2}, + + {"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":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "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.5}, + {"label":"Fn", "x":11.5, "y":4, "w":1.5}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] }, - "LAYOUT_65_ansi_left_lrg": { + "LAYOUT_65_ansi_lwkl": { "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":"10", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, - {"label":"Caps Lock", "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":"PgUp", "x":15, "y":2}, - {"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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, - {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"label":"Space", "x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} + {"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":"10", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgUp", "x":15, "y":2}, + + {"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":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":1.5, "y":4, "w":1.5}, + {"label":"Space", "x":3, "y":4, "w":7}, + {"label":"Alt", "x":10, "y":4}, + {"label":"Fn", "x":11, "y":4}, + {"label":"Ctrl", "x":12, "y":4}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} ] }, - "LAYOUT_65_ansi_lrg": { + "LAYOUT_65_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":"10", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, - {"label":"Caps Lock", "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":"PgUp", "x":15, "y":2}, - {"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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, - {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"label":"Space", "x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} + {"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":"10", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgUp", "x":15, "y":2}, + + {"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":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":1.5, "y":4, "w":1.5}, + {"label":"Space", "x":3, "y":4, "w":7}, + {"label":"Alt", "x":10, "y":4, "w":1.5}, + {"label":"Fn", "x":11.5, "y":4, "w":1.5}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} ] }, "LAYOUT_65_iso": { "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":"10", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Delete", "x":15, "y":1}, - {"label":"Caps Lock", "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":"PgUp", "x":15, "y":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":"PgDn", "x":15, "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}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} + {"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":"10", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgUp", "x":15, "y":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":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "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}, + {"label":"Fn", "x":11, "y":4}, + {"label":"Ctrl", "x":12, "y":4}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} ] }, - "LAYOUT_65_iso_right_lrg": { + "LAYOUT_65_iso_rwkl": { "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":"10", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Delete", "x":15, "y":1}, - {"label":"Caps Lock", "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":"PgUp", "x":15, "y":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":"PgDn", "x":15, "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.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} + {"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":"10", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgUp", "x":15, "y":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":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "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.5}, + {"label":"Fn", "x":11.5, "y":4, "w":1.5}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} ] }, - "LAYOUT_65_iso_lefr_lrg": { + "LAYOUT_65_iso_lwkl": { "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":"10", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Delete", "x":15, "y":1}, - {"label":"Caps Lock", "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":"PgUp", "x":15, "y":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":"PgDn", "x":15, "y":3}, - {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"label":"Space", "x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} + {"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":"10", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgUp", "x":15, "y":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":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":1.5, "y":4, "w":1.5}, + {"label":"Space", "x":3, "y":4, "w":7}, + {"label":"Alt", "x":10, "y":4}, + {"label":"Fn", "x":11, "y":4}, + {"label":"Ctrl", "x":12, "y":4}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} ] }, - "LAYOUT_65_iso_lrg": { + "LAYOUT_65_iso_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":"10", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Delete", "x":15, "y":1}, - {"label":"Caps Lock", "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":"PgUp", "x":15, "y":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":"PgDn", "x":15, "y":3}, - {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"label":"Space", "x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} + {"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":"10", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"~", "x":15, "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":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgUp", "x":15, "y":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":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":1.5, "y":4, "w":1.5}, + {"label":"Space", "x":3, "y":4, "w":7}, + {"label":"Alt", "x":10, "y":4, "w":1.5}, + {"label":"Fn", "x":11.5, "y":4, "w":1.5}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} ] } } From c0149dc37601e897e57739c65bbd8a4890adb4f7 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 29 Jul 2021 11:09:16 -0700 Subject: [PATCH 099/328] Alu84 Refactor (#13760) * info.json: human-friendly formatting * use QMK 3-character notation for layout macro/data * alu84.h: use #pragma once include guard * clean up alu84.c Remove unnecessary includes and functions. * refactor config.h - use #pragma once include guard - enable Backlight Breathing - align comments to QMK AVR template * refactor default keymap - add license header - use layer_names enum - refactor keymap to be more generic - remove unnecessary and empty functions * refactor turbomech keymap.c - edit license header - refactor keymap for readability (use QMK-native keycode aliases) - remove unnecessary and empty functions * refactor turbomech config.h - use #pragma once include guard - align to QMK template * refactor turbomech rules.mk Edit the file to make it conform to QMK template. * align rules.mk to QMK template * touch-up default keymap * touch-up alu84.h * rename LAYOUT to LAYOUT_75_ansi Also enables Community Layout Support * modernize readme.md - update description - convert keyboard data to list - add flashing and bootloader instructions - update Docs links * alias LAYOUT to LAYOUT_75_ansi * change readme image URL per fauxpark * touch up turbomech keymap rules.mk per fauxpark * rules.mk: convert tab to spaces --- keyboards/alu84/alu84.c | 29 ----- keyboards/alu84/alu84.h | 34 +++--- keyboards/alu84/config.h | 42 +++---- keyboards/alu84/info.json | 111 +++++++++++++++-- keyboards/alu84/keymaps/default/keymap.c | 131 ++++++--------------- keyboards/alu84/keymaps/turbomech/config.h | 9 +- keyboards/alu84/keymaps/turbomech/keymap.c | 103 +++------------- keyboards/alu84/keymaps/turbomech/rules.mk | 14 +-- keyboards/alu84/readme.md | 21 ++-- keyboards/alu84/rules.mk | 34 +++--- 10 files changed, 227 insertions(+), 301 deletions(-) diff --git a/keyboards/alu84/alu84.c b/keyboards/alu84/alu84.c index 46e510efb5ab..3e058d3ed532 100755 --- a/keyboards/alu84/alu84.c +++ b/keyboards/alu84/alu84.c @@ -14,33 +14,4 @@ * along with this program. If not, see . */ - #include "alu84.h" -#include "rgblight.h" -#include "action_layer.h" -#include "quantum.h" -#include "action.h" - - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - - - diff --git a/keyboards/alu84/alu84.h b/keyboards/alu84/alu84.h index c171e4c1d8a6..dc263eb8d13d 100755 --- a/keyboards/alu84/alu84.h +++ b/keyboards/alu84/alu84.h @@ -14,28 +14,24 @@ * along with this program. If not, see . */ - -#ifndef ALU84_H -#define ALU84_H +#pragma once #include "quantum.h" +#define ___ KC_NO - -#define LAYOUT( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ - K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \ +#define LAYOUT_75_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, K4F, \ + K50, K51, K53, K56, K5A, K5B, K5C, K5D, K5E, K5F \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ - { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E, K1F }, \ + { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___, K3F }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, ___, K4D, K4E, K4F }, \ + { K50, K51, ___, K53, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E, K5F } \ } - -#endif diff --git a/keyboards/alu84/config.h b/keyboards/alu84/config.h index 9ebc1569e303..3700ced8cfe0 100755 --- a/keyboards/alu84/config.h +++ b/keyboards/alu84/config.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef ALU84_CONFIG_H -#define ALU84_CONFIG_H +#pragma once #include "config_common.h" @@ -30,21 +29,37 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 -/* key matrix pins */ +/* + * 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 { D0, D1, D2, D3, D5, B7 } #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, F5, D4, B1, B0, B5, B4, D7, D6, B3, F4, F6 } #define UNUSED_PINS -/* COL2ROW or ROW2COL */ +/* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* number of backlight levels */ #define BACKLIGHT_PIN B6 -#ifdef BACKLIGHT_PIN #define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN E2 +#if defined(RGBLIGHT_ENABLE) +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 10 +# define RGBLIGHT_VAL_STEP 10 +# define RGBLIGHT_ANIMATIONS #endif -/* Set 0 if debouncing isn't needed */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ @@ -52,16 +67,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGB_DI_PIN E2 -#ifdef RGB_DI_PIN -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 - -#define RGBLIGHT_ANIMATIONS - -#endif - -#endif diff --git a/keyboards/alu84/info.json b/keyboards/alu84/info.json index 97f2b5facca2..cb3a1e5e1041 100644 --- a/keyboards/alu84/info.json +++ b/keyboards/alu84/info.json @@ -1,12 +1,105 @@ { - "keyboard_name": "ALU84", - "url": "", - "maintainer": "qmk", - "width": 16, - "height": 6, - "layouts": { - "LAYOUT": { - "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K015", "x":15, "y":0}, {"label":"K100", "x":0, "y":1}, {"label":"K101", "x":1, "y":1}, {"label":"K102", "x":2, "y":1}, {"label":"K103", "x":3, "y":1}, {"label":"K104", "x":4, "y":1}, {"label":"K105", "x":5, "y":1}, {"label":"K106", "x":6, "y":1}, {"label":"K107", "x":7, "y":1}, {"label":"K108", "x":8, "y":1}, {"label":"K109", "x":9, "y":1}, {"label":"K110", "x":10, "y":1}, {"label":"K111", "x":11, "y":1}, {"label":"K112", "x":12, "y":1}, {"label":"K114", "x":13, "y":1, "w":2}, {"label":"K115", "x":15, "y":1}, {"label":"K200", "x":0, "y":2, "w":1.5}, {"label":"K202", "x":1.5, "y":2}, {"label":"K203", "x":2.5, "y":2}, {"label":"K204", "x":3.5, "y":2}, {"label":"K205", "x":4.5, "y":2}, {"label":"K206", "x":5.5, "y":2}, {"label":"K207", "x":6.5, "y":2}, {"label":"K208", "x":7.5, "y":2}, {"label":"K209", "x":8.5, "y":2}, {"label":"K210", "x":9.5, "y":2}, {"label":"K211", "x":10.5, "y":2}, {"label":"K212", "x":11.5, "y":2}, {"label":"K213", "x":12.5, "y":2}, {"label":"K214", "x":13.5, "y":2, "w":1.5}, {"label":"K215", "x":15, "y":2}, {"label":"K300", "x":0, "y":3, "w":1.75}, {"label":"K302", "x":1.75, "y":3}, {"label":"K303", "x":2.75, "y":3}, {"label":"K304", "x":3.75, "y":3}, {"label":"K305", "x":4.75, "y":3}, {"label":"K306", "x":5.75, "y":3}, {"label":"K307", "x":6.75, "y":3}, {"label":"K308", "x":7.75, "y":3}, {"label":"K309", "x":8.75, "y":3}, {"label":"K310", "x":9.75, "y":3}, {"label":"K311", "x":10.75, "y":3}, {"label":"K312", "x":11.75, "y":3}, {"label":"K313", "x":12.75, "y":3, "w":2.25}, {"label":"K315", "x":15, "y":3}, {"label":"K400", "x":0, "y":4, "w":2.25}, {"label":"K402", "x":2.25, "y":4}, {"label":"K403", "x":3.25, "y":4}, {"label":"K404", "x":4.25, "y":4}, {"label":"K405", "x":5.25, "y":4}, {"label":"K406", "x":6.25, "y":4}, {"label":"K407", "x":7.25, "y":4}, {"label":"K408", "x":8.25, "y":4}, {"label":"K409", "x":9.25, "y":4}, {"label":"K410", "x":10.25, "y":4}, {"label":"K411", "x":11.25, "y":4}, {"label":"K413", "x":12.25, "y":4, "w":1.75}, {"label":"K414", "x":14, "y":4}, {"label":"K415", "x":15, "y":4}, {"label":"K500", "x":0, "y":5, "w":1.25}, {"label":"K501", "x":1.25, "y":5, "w":1.25}, {"label":"K503", "x":2.5, "y":5, "w":1.25}, {"label":"K506", "x":3.75, "y":5, "w":6.25}, {"label":"K510", "x":10, "y":5}, {"label":"K511", "x":11, "y":5}, {"label":"K512", "x":12, "y":5}, {"label":"K513", "x":13, "y":5}, {"label":"K514", "x":14, "y":5}, {"label":"K515", "x":15, "y":5}] + "keyboard_name": "ALU84", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 6, + "layout_aliases": { + "LAYOUT": "LAYOUT_75_ansi" + }, + "layouts": { + "LAYOUT_75_ansi": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0}, + {"label":"K0E", "x":14, "y":0}, + {"label":"K0F", "x":15, "y":0}, + + {"label":"K10", "x":0, "y":1}, + {"label":"K11", "x":1, "y":1}, + {"label":"K12", "x":2, "y":1}, + {"label":"K13", "x":3, "y":1}, + {"label":"K14", "x":4, "y":1}, + {"label":"K15", "x":5, "y":1}, + {"label":"K16", "x":6, "y":1}, + {"label":"K17", "x":7, "y":1}, + {"label":"K18", "x":8, "y":1}, + {"label":"K19", "x":9, "y":1}, + {"label":"K1A", "x":10, "y":1}, + {"label":"K1B", "x":11, "y":1}, + {"label":"K1C", "x":12, "y":1}, + {"label":"K1E", "x":13, "y":1, "w":2}, + {"label":"K1F", "x":15, "y":1}, + + {"label":"K20", "x":0, "y":2, "w":1.5}, + {"label":"K22", "x":1.5, "y":2}, + {"label":"K23", "x":2.5, "y":2}, + {"label":"K24", "x":3.5, "y":2}, + {"label":"K25", "x":4.5, "y":2}, + {"label":"K26", "x":5.5, "y":2}, + {"label":"K27", "x":6.5, "y":2}, + {"label":"K28", "x":7.5, "y":2}, + {"label":"K29", "x":8.5, "y":2}, + {"label":"K2A", "x":9.5, "y":2}, + {"label":"K2B", "x":10.5, "y":2}, + {"label":"K2C", "x":11.5, "y":2}, + {"label":"K2D", "x":12.5, "y":2}, + {"label":"K2E", "x":13.5, "y":2, "w":1.5}, + {"label":"K2F", "x":15, "y":2}, + + {"label":"K30", "x":0, "y":3, "w":1.75}, + {"label":"K32", "x":1.75, "y":3}, + {"label":"K33", "x":2.75, "y":3}, + {"label":"K34", "x":3.75, "y":3}, + {"label":"K35", "x":4.75, "y":3}, + {"label":"K36", "x":5.75, "y":3}, + {"label":"K37", "x":6.75, "y":3}, + {"label":"K38", "x":7.75, "y":3}, + {"label":"K39", "x":8.75, "y":3}, + {"label":"K3A", "x":9.75, "y":3}, + {"label":"K3B", "x":10.75, "y":3}, + {"label":"K3C", "x":11.75, "y":3}, + {"label":"K3D", "x":12.75, "y":3, "w":2.25}, + {"label":"K3F", "x":15, "y":3}, + + {"label":"K40", "x":0, "y":4, "w":2.25}, + {"label":"K42", "x":2.25, "y":4}, + {"label":"K43", "x":3.25, "y":4}, + {"label":"K44", "x":4.25, "y":4}, + {"label":"K45", "x":5.25, "y":4}, + {"label":"K46", "x":6.25, "y":4}, + {"label":"K47", "x":7.25, "y":4}, + {"label":"K48", "x":8.25, "y":4}, + {"label":"K49", "x":9.25, "y":4}, + {"label":"K4A", "x":10.25, "y":4}, + {"label":"K4B", "x":11.25, "y":4}, + {"label":"K4D", "x":12.25, "y":4, "w":1.75}, + {"label":"K4E", "x":14, "y":4}, + {"label":"K4F", "x":15, "y":4}, + + {"label":"K50", "x":0, "y":5, "w":1.25}, + {"label":"K51", "x":1.25, "y":5, "w":1.25}, + {"label":"K53", "x":2.5, "y":5, "w":1.25}, + {"label":"K56", "x":3.75, "y":5, "w":6.25}, + {"label":"K5A", "x":10, "y":5}, + {"label":"K5B", "x":11, "y":5}, + {"label":"K5C", "x":12, "y":5}, + {"label":"K5D", "x":13, "y":5}, + {"label":"K5E", "x":14, "y":5}, + {"label":"K5F", "x":15, "y":5} + ] + } } - } } diff --git a/keyboards/alu84/keymaps/default/keymap.c b/keyboards/alu84/keymaps/default/keymap.c index 4122978ebaf0..ca370c765a89 100755 --- a/keyboards/alu84/keymaps/default/keymap.c +++ b/keyboards/alu84/keymaps/default/keymap.c @@ -1,100 +1,45 @@ -#include QMK_KEYBOARD_H - -#define _BL 0 -#define _FN1 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* BL - * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . - * | Esc | Scrn Brght Up | Scrn Bright Down | Expose | Launchpad | Show Desktop | Dock Hide Tog | Screen Capture | Shortcut | Shortcut | Shortcut| Shortcut | Play/Pause | Mute | Vol Up | Vol Down | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | POWER | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Shortcut | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Pg Up | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | Pg Dn | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Control | Option/Alt | Gui | Space | Gui | Opt | Fn (layer) | Left | Down | Right | - * `- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -' +/* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * 2021 QMK + * + * 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 . */ - [_BL] = LAYOUT( - KC_ESC, KC_F14, KC_F15, LCTL(KC_UP), LCTL(KC_L), KC_F11, LALT(LGUI(KC_D)), LCTL(KC_S), LCTL(LSFT(KC_O)), LCTL(LGUI(KC_1)), LCTL(LGUI(KC_2)), LCTL(LGUI(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, - 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_POWER, - 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, LCTL(LGUI(KC_N)), - 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_PGUP, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), - -/* FN1 - * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . - * | Quit All | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Trns | Trns | DFU RESET | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | DELETE | Lock Shrct | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | RGB Toggle | RGB Mode | RGB Increase | RGB Decrease | RGB Hue Inc | RGB Hue Dec | RGB Sat Inc | RGB Sat Dec | Trns | Trns | Trns | Trns | Trns | Trns | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | Backlight Tog | Backlight Inc | Backlight Dec | Backlight Step | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | - * `- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -' - */ - - [_FN1] = LAYOUT( - LALT(LGUI(KC_Q)), 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, 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, KC_TRNS, KC_DEL, LCTL(LALT(LGUI(KC_S))), - KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +#include QMK_KEYBOARD_H +enum layer_names { + _BL, + _FN1, }; -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 2); PORTB &= ~(1 << 2); - } else { - DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } + [_BL] = LAYOUT_75_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_75_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), -} +}; diff --git a/keyboards/alu84/keymaps/turbomech/config.h b/keyboards/alu84/keymaps/turbomech/config.h index 3013df9ba7f7..2a60c1f381a7 100644 --- a/keyboards/alu84/keymaps/turbomech/config.h +++ b/keyboards/alu84/keymaps/turbomech/config.h @@ -14,12 +14,7 @@ * along with this program. If not, see . */ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#define TAPPING_TOGGLE 2 -#include "../../config.h" +#pragma once // place overrides here - -#endif +#define TAPPING_TOGGLE 2 diff --git a/keyboards/alu84/keymaps/turbomech/keymap.c b/keyboards/alu84/keymaps/turbomech/keymap.c index 80006d0dbe79..24c0d2c2dac2 100644 --- a/keyboards/alu84/keymaps/turbomech/keymap.c +++ b/keyboards/alu84/keymaps/turbomech/keymap.c @@ -1,4 +1,5 @@ /* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * 2021 QMK * * 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 @@ -14,12 +15,9 @@ * along with this program. If not, see . */ - #include QMK_KEYBOARD_H #include "turbomech.h" -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) - #define _QWERTY 0 //BASE layer #define _FUNCTION 1 //Function layer @@ -47,13 +45,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' */ - [_QWERTY] = LAYOUT( - KC_ESC, KC_F14, KC_F15, LCTL(KC_UP), LCTL(KC_L), KC_F11, LALT(LGUI(KC_D)), LCTL(KC_S), LCTL(LSFT(KC_O)), LCTL(LGUI(KC_1)), LCTL(LGUI(KC_2)), LCTL(LGUI(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, - 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_POWER, - 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, LCTL(LGUI(KC_N)), - 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_PGUP, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + [_QWERTY] = LAYOUT_75_ansi( + KC_ESC, KC_F14, KC_F15, C(KC_UP), C(KC_L), KC_F11, A(G(KC_D)), C(KC_S), C(S(KC_O)), C(G(KC_1)), C(G(KC_2)), C(G(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, + 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_POWER, + 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, C(G(KC_N)), + 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_PGUP, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), /* FN1 - SEE readme.md * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. @@ -77,81 +76,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' */ - - [_FUNCTION] = LAYOUT( - LALT(LGUI(KC_Q)), 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_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, KC_TRNS, KC_DEL, LCTL(LALT(LGUI(KC_S))), - KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_FUNCTION] = LAYOUT_75_ansi( + A(G(KC_Q)), 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_RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, C(A(G(KC_S))), + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 2); PORTB &= ~(1 << 2); - } else { - DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} - -enum function_id { - SHIFT_ESC, -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(SHIFT_ESC), -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint8_t shift_esc_shift_mask; - switch (id) { - case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; - } -} diff --git a/keyboards/alu84/keymaps/turbomech/rules.mk b/keyboards/alu84/keymaps/turbomech/rules.mk index c8b74bfc9a03..6c0a79b11095 100644 --- a/keyboards/alu84/keymaps/turbomech/rules.mk +++ b/keyboards/alu84/keymaps/turbomech/rules.mk @@ -1,12 +1,2 @@ -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= no # Commands for debug and configuration -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality -AUDIO_ENABLE ?= no -RGBLIGHT_ENABLE ?= yes -UNICODE_ENABLE ?= yes - +SLEEP_LED_ENABLE = no +UNICODE_ENABLE = yes diff --git a/keyboards/alu84/readme.md b/keyboards/alu84/readme.md index f98addd0bfbd..12da1d8a8f0d 100644 --- a/keyboards/alu84/readme.md +++ b/keyboards/alu84/readme.md @@ -1,16 +1,21 @@ -ALU84 -=== +# ALU84 -![alu84](https://i.imgur.com/wBfazDc.jpg) +![alu84](https://i.imgur.com/wBfazDch.jpg) -A 75% keyboard made and sold by MECHKEYS [More info on MECHKEYS](https://mechkeys.ca). +A 75% keyboard made and sold by MECHKEYS. -Keyboard Maintainer: [TurboMech](https://github.com/TurboMech) -Hardware Supported: ALU84 -Hardware Availability: [MECHKEYS](https://mechkeys.ca) +* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +* Hardware Supported: ALU84 +* Hardware Availability: [~~MECHKEYS~~](https://mechkeys.ca) (No longer available) Make example for this keyboard (after setting up your build environment): make alu84:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Flashing example for this keyboard: + + make alu84:default:flash + +To reset the board into bootloader mode, hold Space+B while plugging the cable in. + +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). diff --git a/keyboards/alu84/rules.mk b/keyboards/alu84/rules.mk index 8d1652171c74..4c272a379767 100755 --- a/keyboards/alu84/rules.mk +++ b/keyboards/alu84/rules.mk @@ -2,25 +2,23 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu # Build Options -# comment out to disable the options. +# change yes to no to disable # -BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration -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 -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -AUDIO_ENABLE = no -RGBLIGHT_ENABLE = yes +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 75_ansi From 8ca6d835b9c3b81dd1815cc57fdc154766c7dbe5 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 29 Jul 2021 12:14:26 -0700 Subject: [PATCH 100/328] Atomic Refactor (#13761) * info.json: human-friendly formatting - one key per line - line breaks between physical rows - four-space indent * info.json: add data for LAYOUT_grid * fix keymap paths This commit corrects the paths for three keymaps that were in the wrong directory. * refactor and bugfix abienz keymap - remove extra commas - use QMK-native aliases for KC_TRNS and KC_NO - add include for Colemak keycode support - use four-space indent * refactor and bugfix michelle keymap - remove inline comments for keymap layout - remove extra commas - use QMK-native aliases for KC_TRNS and KC_NO - use four-space indent * refactor and bugfix twolayer keymap - remove extra commas - refactor action_get_macro() keycode to QMK-native keycode - use QMK-native aliases for KC_TRNS - use four-space indent - adjust grid alignment * rename LAYOUT_grid to LAYOUT_ortho_5x15 * refactor config.h file - use #pragma once include guard - update MANUFACTURER and PRODUCT strings to be consistent with other OLKB boards - remove Magic config (all settings are default) * refactor atomic.c - add license header - use GPIO control functions * refactor atomic.h - add license header - use #pragma once include guard - remove redundant file includes * refactor rules.mk - remove Bootloader selection comments - unify Build Option header comment to QMK template - unify Build Option rules and inline comments * alias LAYOUT_grid to LAYOUT_ortho_5x15 --- keyboards/atomic/atomic.c | 20 ++- keyboards/atomic/atomic.h | 28 ++-- keyboards/atomic/config.h | 57 +------ keyboards/atomic/info.json | 173 ++++++++++++++++++++- keyboards/atomic/keymaps/abienz.c | 18 --- keyboards/atomic/keymaps/abienz/keymap.c | 19 +++ keyboards/atomic/keymaps/default/keymap.c | 12 +- keyboards/atomic/keymaps/michelle.c | 169 -------------------- keyboards/atomic/keymaps/michelle/keymap.c | 25 +++ keyboards/atomic/keymaps/pvc/keymap.c | 12 +- keyboards/atomic/keymaps/twolayer.c | 63 -------- keyboards/atomic/keymaps/twolayer/keymap.c | 46 ++++++ keyboards/atomic/rules.mk | 26 +--- 13 files changed, 314 insertions(+), 354 deletions(-) delete mode 100644 keyboards/atomic/keymaps/abienz.c create mode 100644 keyboards/atomic/keymaps/abienz/keymap.c delete mode 100644 keyboards/atomic/keymaps/michelle.c create mode 100644 keyboards/atomic/keymaps/michelle/keymap.c delete mode 100644 keyboards/atomic/keymaps/twolayer.c create mode 100644 keyboards/atomic/keymaps/twolayer/keymap.c diff --git a/keyboards/atomic/atomic.c b/keyboards/atomic/atomic.c index eba5ed61f680..1bd663c514da 100644 --- a/keyboards/atomic/atomic.c +++ b/keyboards/atomic/atomic.c @@ -1,3 +1,19 @@ +/* Copyright 2015 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "atomic.h" void matrix_init_kb(void) { @@ -5,8 +21,8 @@ void matrix_init_kb(void) { // runs once when the firmware starts up // Turn status LED on - DDRE |= (1<<6); - PORTE |= (1<<6); + setPinOutput(E6); + writePinHigh(E6); matrix_init_user(); } diff --git a/keyboards/atomic/atomic.h b/keyboards/atomic/atomic.h index a22029f7695d..7579f49e3342 100644 --- a/keyboards/atomic/atomic.h +++ b/keyboards/atomic/atomic.h @@ -1,10 +1,22 @@ -#ifndef ATOMIC_H -#define ATOMIC_H +/* Copyright 2015 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once #include "quantum.h" -#include -#include -#include // This a shortcut to help you visually see your layout. // The following is an example using the Planck MIT layout @@ -24,7 +36,7 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ } -#define LAYOUT_grid( \ +#define LAYOUT_ortho_5x15( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\ @@ -37,7 +49,3 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E } \ } - -#define LAYOUT_ortho_5x15 LAYOUT_grid - -#endif \ No newline at end of file diff --git a/keyboards/atomic/config.h b/keyboards/atomic/config.h index 06019dd54363..cb4aee0f7fc1 100644 --- a/keyboards/atomic/config.h +++ b/keyboards/atomic/config.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" @@ -24,8 +23,8 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -#define MANUFACTURER Ortholinear Keyboards -#define PRODUCT The Atomic Keyboard +#define MANUFACTURER OLKB +#define PRODUCT Atomic /* key matrix size */ #define MATRIX_ROWS 5 @@ -85,54 +84,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -#define MAGIC_KEY_BOOTLOADER B -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. @@ -150,5 +101,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/atomic/info.json b/keyboards/atomic/info.json index 6e543b7b5531..b4054eacdc7f 100644 --- a/keyboards/atomic/info.json +++ b/keyboards/atomic/info.json @@ -1,11 +1,168 @@ { - "keyboard_name": "Atomic", - "maintainer": "qmk", - "width": 15, - "height": 5, - "layouts": { - "LAYOUT_semi_standard": { - "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":12, "y":0}, {"x":13, "y":0, "w":2}, {"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":12, "y":1}, {"x":13, "y":1}, {"x":14, "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":12, "y":2, "w":2}, {"x":14, "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, "w":2}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] + "keyboard_name": "Atomic", + "maintainer": "jackhumbert", + "width": 15, + "height": 5, + "layout_aliases": { + "LAYOUT_grid": "LAYOUT_ortho_5x15" + }, + "layouts": { + "LAYOUT_semi_standard": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"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":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "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":12, "y":2, "w":2}, + {"x":14, "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, "w":2}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + }, + "LAYOUT_ortho_5x15": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "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":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "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":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "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":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + } } - } } diff --git a/keyboards/atomic/keymaps/abienz.c b/keyboards/atomic/keymaps/abienz.c deleted file mode 100644 index 7cc27d71a6d7..000000000000 --- a/keyboards/atomic/keymaps/abienz.c +++ /dev/null @@ -1,18 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_grid( /* Colemak */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO , - KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , - KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, KC_NO, KC_PGUP, - KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_NO, KC_LALT, MO(1), KC_SPC, KC_NO, KC_RALT, MO(1), KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, - ), - [1] = LAYOUT_grid( /* function */ - 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_BSPC, KC_NO , - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPLY, - KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, MO(1), KC_TRNS, KC_NO, KC_TRNS, MO(1), KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT, - ), -}; diff --git a/keyboards/atomic/keymaps/abienz/keymap.c b/keyboards/atomic/keymaps/abienz/keymap.c new file mode 100644 index 000000000000..c499807d769c --- /dev/null +++ b/keyboards/atomic/keymaps/abienz/keymap.c @@ -0,0 +1,19 @@ +#include QMK_KEYBOARD_H +#include "keymap_colemak.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x15(/* Colemak */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX, + KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP, + KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, XXXXXXX, KC_LALT, MO(1), KC_SPC, XXXXXXX, KC_RALT, MO(1), KC_RGUI, XXXXXXX, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_5x15(/* function */ + 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_BSPC, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_MPLY, + _______, _______, XXXXXXX, _______, MO(1), _______, XXXXXXX, _______, MO(1), _______, XXXXXXX, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), +}; diff --git a/keyboards/atomic/keymaps/default/keymap.c b/keyboards/atomic/keymaps/default/keymap.c index 6d314f147922..d4bdc1837183 100644 --- a/keyboards/atomic/keymaps/default/keymap.c +++ b/keyboards/atomic/keymaps/default/keymap.c @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_QW] = LAYOUT_grid( /* QWERTY */ + [_QW] = LAYOUT_ortho_5x15( /* QWERTY */ 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_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_ESC, 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_ENT, KC_PGUP, @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_CM] = LAYOUT_grid( /* COLEMAK */ + [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */ 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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_DV] = LAYOUT_grid( /* DVORAK */ + [_DV] = LAYOUT_ortho_5x15( /* DVORAK */ 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_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP, @@ -156,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_LW] = LAYOUT_grid( /* LOWERED */ + [_LW] = LAYOUT_ortho_5x15( /* LOWERED */ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS , _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______, @@ -178,7 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_RS] = LAYOUT_grid( /* RAISED */ + [_RS] = LAYOUT_ortho_5x15( /* RAISED */ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS , _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______, @@ -200,7 +200,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_FN] = LAYOUT_grid( /* FUNCTION */ + [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */ KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U, diff --git a/keyboards/atomic/keymaps/michelle.c b/keyboards/atomic/keymaps/michelle.c deleted file mode 100644 index 6dd2de2791e4..000000000000 --- a/keyboards/atomic/keymaps/michelle.c +++ /dev/null @@ -1,169 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_grid( /* Dvorak */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LCTL, MO(1), KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ - // │ X │ X │ X │ X │ X │ X │ X │ X │ X │ - // └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌───────────────────── 6.25u ────────────────────────────┐ - // │ X │ - // └────────────────────────────────────────────────────────┘ - // ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ - // │ X │ X │ X │ X │ X │ X │ - // └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - ), - [1] = LAYOUT_grid( /* Qwerty + F keys */ - 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_BSPC, KC_NO , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - 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_INS, KC_DEL , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - 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_ENT, KC_NO, KC_PGUP , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - 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_NO, KC_UP, KC_PGDN , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ - // │ X │ X │ X │ X │ X │ X │ X │ X │ X │ - // └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌───────────────────── 6.25u ────────────────────────────┐ - // │ X │ - // └────────────────────────────────────────────────────────┘ - // ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ - // │ X │ X │ X │ X │ X │ X │ - // └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - ), - [2] = LAYOUT_grid( /* Numpad + qwerty shortcut keys */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT , - // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ - // │ X │ X │ X │ X │ X │ X │ X │ X │ X │ - // └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌───────────────────── 6.25u ────────────────────────────┐ - // │ X │ - // └────────────────────────────────────────────────────────┘ - // ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ - // │ X │ X │ X │ X │ X │ X │ - // └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - ), -}; diff --git a/keyboards/atomic/keymaps/michelle/keymap.c b/keyboards/atomic/keymaps/michelle/keymap.c new file mode 100644 index 000000000000..da6942716801 --- /dev/null +++ b/keyboards/atomic/keymaps/michelle/keymap.c @@ -0,0 +1,25 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x15( /* Dvorak */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, XXXXXXX, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL, + KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, XXXXXXX, KC_PGUP, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN, + KC_LCTL, MO(1), XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_5x15( /* Qwerty + F keys */ + 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_BSPC, XXXXXXX, + 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_INS, KC_DEL, + 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_ENT, XXXXXXX, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN, + KC_LCTL, _______, XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + [2] = LAYOUT_ortho_5x15( /* Numpad + qwerty shortcut keys */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, XXXXXXX, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL, + KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, XXXXXXX, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN, + KC_LCTL, _______, XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), +}; diff --git a/keyboards/atomic/keymaps/pvc/keymap.c b/keyboards/atomic/keymaps/pvc/keymap.c index 51e697f96853..9ed79899d324 100644 --- a/keyboards/atomic/keymaps/pvc/keymap.c +++ b/keyboards/atomic/keymaps/pvc/keymap.c @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | LCTRL | LWIN | FN | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_QWERTY] = LAYOUT_grid( + [LAYER_QWERTY] = LAYOUT_ortho_5x15( KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_ENT , KC_PGUP, @@ -142,7 +142,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP ENT | ______ | ______ | ______ | ______ | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_UPPER] = LAYOUT_grid( + [LAYER_UPPER] = LAYOUT_ortho_5x15( KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX, _______, _______, KC_PAUS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS , _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, KC_HOME, @@ -162,7 +162,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | ______ | ______ | ______ | ______ | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_LOWER] = LAYOUT_grid( + [LAYER_LOWER] = LAYOUT_ortho_5x15( KC_PSCR, 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_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, KC_INS , _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, KC_HOME, @@ -182,7 +182,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ______ | ______ | FN | ______ | ______ | PLAY . PLAY | ______ | ______ | ______ | ______ | ______ | PREV | VOL DN | NEXT | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_FUNCTION] = LAYOUT_grid( + [LAYER_FUNCTION] = LAYOUT_ortho_5x15( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, @@ -202,7 +202,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ______ | ______ | ______ | ______ | ______ | MS BT1 . MS BT1 | ______ | ______ | ______ | ______ | ______ | MS L | MS D | MS R | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_MOUSE] = LAYOUT_grid( + [LAYER_MOUSE] = LAYOUT_ortho_5x15( KC_ESC , KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_R, XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, @@ -222,7 +222,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | TEMPO- | VOICE- | TEMPO+ | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_ADJUST] = LAYOUT_grid( + [LAYER_ADJUST] = LAYOUT_ortho_5x15( XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, XXXXXXX, MU_TOG , AU_TOG , XXXXXXX, XXXXXXX, XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/atomic/keymaps/twolayer.c b/keyboards/atomic/keymaps/twolayer.c deleted file mode 100644 index 9ecbbc6df3b0..000000000000 --- a/keyboards/atomic/keymaps/twolayer.c +++ /dev/null @@ -1,63 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* QWERTY - MIT ENHANCED / GRID COMPATIBLE - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | - * |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------| - * | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - [0] = LAYOUT_grid( /* QWERTY */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, - KC_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, - 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_RSFT, KC_UP, KC_PGDN, - M(0), KC_ALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, - ), - - /* FUNCTION - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- | - * |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------| - * | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - [1] = LAYOUT_grid( /* FUNCTION LAYER*/ - 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, ___T___, ___T___, - KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, - KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U, - KC_NLCK, _______, _______, _______, _______, _______, _______, _______, KC_INSERT, KC_END, KC_HOME, ___T___, ___T___, KC_MS_U, KC_WH_D, - _______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R, - ), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atomic/keymaps/twolayer/keymap.c b/keyboards/atomic/keymaps/twolayer/keymap.c new file mode 100644 index 000000000000..a38ddf358bfe --- /dev/null +++ b/keyboards/atomic/keymaps/twolayer/keymap.c @@ -0,0 +1,46 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* QWERTY - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_5x15( /* QWERTY */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, + 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_RSFT, KC_UP, KC_PGDN, + BL_STEP, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* FUNCTION + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- | + * |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------| + * | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_5x15( /* FUNCTION LAYER*/ + 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_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, + KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, KC_WH_U, + KC_NLCK, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_END, KC_HOME, _______, _______, KC_MS_U, KC_WH_D, + _______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R + ), +}; diff --git a/keyboards/atomic/rules.mk b/keyboards/atomic/rules.mk index 5a057f973c86..71d5f924e101 100644 --- a/keyboards/atomic/rules.mk +++ b/keyboards/atomic/rules.mk @@ -2,33 +2,23 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu # Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically +# change yes to no to disable # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output LAYOUTS = ortho_5x15 From 987e8e3529b0d384c2848f4b36ce01cb0886f52b Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Fri, 30 Jul 2021 13:08:05 +0800 Subject: [PATCH 101/328] [Keyboard] Add Mona v1.1 (#13721) Co-authored-by: Drashna Jaelre --- keyboards/ramonimbao/mona/rules.mk | 23 +- keyboards/ramonimbao/mona/{ => v1}/config.h | 0 keyboards/ramonimbao/mona/{ => v1}/info.json | 0 .../mona/{ => v1}/keymaps/default/keymap.c | 0 .../mona/{ => v1}/keymaps/iso/keymap.c | 0 .../mona/{ => v1}/keymaps/via/keymap.c | 0 .../mona/{ => v1}/keymaps/via/rules.mk | 0 keyboards/ramonimbao/mona/{ => v1}/readme.md | 4 +- keyboards/ramonimbao/mona/v1/rules.mk | 22 + keyboards/ramonimbao/mona/v1/v1.c | 17 + keyboards/ramonimbao/mona/{mona.h => v1/v1.h} | 0 keyboards/ramonimbao/mona/v1_1/config.h | 62 +++ keyboards/ramonimbao/mona/v1_1/info.json | 505 ++++++++++++++++++ .../mona/v1_1/keymaps/default/keymap.c | 34 ++ .../ramonimbao/mona/v1_1/keymaps/iso/keymap.c | 34 ++ .../ramonimbao/mona/v1_1/keymaps/via/keymap.c | 48 ++ .../ramonimbao/mona/v1_1/keymaps/via/rules.mk | 1 + keyboards/ramonimbao/mona/v1_1/readme.md | 20 + keyboards/ramonimbao/mona/v1_1/rules.mk | 22 + .../ramonimbao/mona/{mona.c => v1_1/v1_1.c} | 2 +- keyboards/ramonimbao/mona/v1_1/v1_1.h | 113 ++++ 21 files changed, 882 insertions(+), 25 deletions(-) rename keyboards/ramonimbao/mona/{ => v1}/config.h (100%) rename keyboards/ramonimbao/mona/{ => v1}/info.json (100%) rename keyboards/ramonimbao/mona/{ => v1}/keymaps/default/keymap.c (100%) rename keyboards/ramonimbao/mona/{ => v1}/keymaps/iso/keymap.c (100%) rename keyboards/ramonimbao/mona/{ => v1}/keymaps/via/keymap.c (100%) rename keyboards/ramonimbao/mona/{ => v1}/keymaps/via/rules.mk (100%) rename keyboards/ramonimbao/mona/{ => v1}/readme.md (89%) create mode 100644 keyboards/ramonimbao/mona/v1/rules.mk create mode 100644 keyboards/ramonimbao/mona/v1/v1.c rename keyboards/ramonimbao/mona/{mona.h => v1/v1.h} (100%) create mode 100644 keyboards/ramonimbao/mona/v1_1/config.h create mode 100644 keyboards/ramonimbao/mona/v1_1/info.json create mode 100644 keyboards/ramonimbao/mona/v1_1/keymaps/default/keymap.c create mode 100644 keyboards/ramonimbao/mona/v1_1/keymaps/iso/keymap.c create mode 100644 keyboards/ramonimbao/mona/v1_1/keymaps/via/keymap.c create mode 100644 keyboards/ramonimbao/mona/v1_1/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/mona/v1_1/readme.md create mode 100644 keyboards/ramonimbao/mona/v1_1/rules.mk rename keyboards/ramonimbao/mona/{mona.c => v1_1/v1_1.c} (97%) create mode 100644 keyboards/ramonimbao/mona/v1_1/v1_1.h diff --git a/keyboards/ramonimbao/mona/rules.mk b/keyboards/ramonimbao/mona/rules.mk index 5c0d8f307c54..ba6b05956979 100644 --- a/keyboards/ramonimbao/mona/rules.mk +++ b/keyboards/ramonimbao/mona/rules.mk @@ -1,22 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -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 -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output +DEFAULT_FOLDER = ramonimbao/mona/v1_1 diff --git a/keyboards/ramonimbao/mona/config.h b/keyboards/ramonimbao/mona/v1/config.h similarity index 100% rename from keyboards/ramonimbao/mona/config.h rename to keyboards/ramonimbao/mona/v1/config.h diff --git a/keyboards/ramonimbao/mona/info.json b/keyboards/ramonimbao/mona/v1/info.json similarity index 100% rename from keyboards/ramonimbao/mona/info.json rename to keyboards/ramonimbao/mona/v1/info.json diff --git a/keyboards/ramonimbao/mona/keymaps/default/keymap.c b/keyboards/ramonimbao/mona/v1/keymaps/default/keymap.c similarity index 100% rename from keyboards/ramonimbao/mona/keymaps/default/keymap.c rename to keyboards/ramonimbao/mona/v1/keymaps/default/keymap.c diff --git a/keyboards/ramonimbao/mona/keymaps/iso/keymap.c b/keyboards/ramonimbao/mona/v1/keymaps/iso/keymap.c similarity index 100% rename from keyboards/ramonimbao/mona/keymaps/iso/keymap.c rename to keyboards/ramonimbao/mona/v1/keymaps/iso/keymap.c diff --git a/keyboards/ramonimbao/mona/keymaps/via/keymap.c b/keyboards/ramonimbao/mona/v1/keymaps/via/keymap.c similarity index 100% rename from keyboards/ramonimbao/mona/keymaps/via/keymap.c rename to keyboards/ramonimbao/mona/v1/keymaps/via/keymap.c diff --git a/keyboards/ramonimbao/mona/keymaps/via/rules.mk b/keyboards/ramonimbao/mona/v1/keymaps/via/rules.mk similarity index 100% rename from keyboards/ramonimbao/mona/keymaps/via/rules.mk rename to keyboards/ramonimbao/mona/v1/keymaps/via/rules.mk diff --git a/keyboards/ramonimbao/mona/readme.md b/keyboards/ramonimbao/mona/v1/readme.md similarity index 89% rename from keyboards/ramonimbao/mona/readme.md rename to keyboards/ramonimbao/mona/v1/readme.md index 57b811ef509e..8b6af0526e38 100644 --- a/keyboards/ramonimbao/mona/readme.md +++ b/keyboards/ramonimbao/mona/v1/readme.md @@ -10,10 +10,10 @@ A gummy-worm o-ring mount 60% marble keyboard. Make example for this keyboard (after setting up your build environment): - make ramonimbao/mona:default + make ramonimbao/mona/v1:default Flashing example for this keyboard: - make ramonimbao/mona:default:flash + make ramonimbao/mona/v1: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). diff --git a/keyboards/ramonimbao/mona/v1/rules.mk b/keyboards/ramonimbao/mona/v1/rules.mk new file mode 100644 index 000000000000..5c0d8f307c54 --- /dev/null +++ b/keyboards/ramonimbao/mona/v1/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/ramonimbao/mona/v1/v1.c b/keyboards/ramonimbao/mona/v1/v1.c new file mode 100644 index 000000000000..d55373272db2 --- /dev/null +++ b/keyboards/ramonimbao/mona/v1/v1.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Ramon Imbao + * + * 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 "v1.h" diff --git a/keyboards/ramonimbao/mona/mona.h b/keyboards/ramonimbao/mona/v1/v1.h similarity index 100% rename from keyboards/ramonimbao/mona/mona.h rename to keyboards/ramonimbao/mona/v1/v1.h diff --git a/keyboards/ramonimbao/mona/v1_1/config.h b/keyboards/ramonimbao/mona/v1_1/config.h new file mode 100644 index 000000000000..de657cd8e6d4 --- /dev/null +++ b/keyboards/ramonimbao/mona/v1_1/config.h @@ -0,0 +1,62 @@ +/* +Copyright 2020 Ramon Imbao + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xB16B +#define PRODUCT_ID 0x404B +#define DEVICE_VER 0x0011 +#define MANUFACTURER Ramon Imbao +#define PRODUCT Mona + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * 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 { D1, D5, B7, F0, F1 } +#define MATRIX_COL_PINS { D0, D3, D2, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* indicator LEDs */ +#define LED_CAPS_LOCK_PIN B3 + +/* 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 + + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/ramonimbao/mona/v1_1/info.json b/keyboards/ramonimbao/mona/v1_1/info.json new file mode 100644 index 000000000000..30983fc22f79 --- /dev/null +++ b/keyboards/ramonimbao/mona/v1_1/info.json @@ -0,0 +1,505 @@ +{ + "keyboard_name": "Mona", + "url": "", + "maintainer": "Ramon Imbao", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_ansi": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":0, "y":1, "w":1.5}, + + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_iso": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_all": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.5}, + {"x":6.25, "y":4}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + } + } +} diff --git a/keyboards/ramonimbao/mona/v1_1/keymaps/default/keymap.c b/keyboards/ramonimbao/mona/v1_1/keymaps/default/keymap.c new file mode 100644 index 000000000000..5cf76c858564 --- /dev/null +++ b/keyboards/ramonimbao/mona/v1_1/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + + [1] = LAYOUT_60_ansi( + _______, 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ramonimbao/mona/v1_1/keymaps/iso/keymap.c b/keyboards/ramonimbao/mona/v1_1/keymaps/iso/keymap.c new file mode 100644 index 000000000000..704c8bf46f5b --- /dev/null +++ b/keyboards/ramonimbao/mona/v1_1/keymaps/iso/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Ramon Imbao + * + * 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_iso( + 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_ENT, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + + [1] = LAYOUT_60_iso( + _______, 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ramonimbao/mona/v1_1/keymaps/via/keymap.c b/keyboards/ramonimbao/mona/v1_1/keymaps/via/keymap.c new file mode 100644 index 000000000000..e5a714314e51 --- /dev/null +++ b/keyboards/ramonimbao/mona/v1_1/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2020 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_NO, 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_NO, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + + [1] = LAYOUT_all( + RESET, 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ramonimbao/mona/v1_1/keymaps/via/rules.mk b/keyboards/ramonimbao/mona/v1_1/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/ramonimbao/mona/v1_1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ramonimbao/mona/v1_1/readme.md b/keyboards/ramonimbao/mona/v1_1/readme.md new file mode 100644 index 000000000000..b28fedd76c4b --- /dev/null +++ b/keyboards/ramonimbao/mona/v1_1/readme.md @@ -0,0 +1,20 @@ +# Mona v1.1 + +![Mona v1.1](https://i.imgur.com/VaWcIkjl.png) + +A gummy-worm o-ring mount 60% marble keyboard. Now with ALPS/MX, Caps Lock LED, and split spacebar support. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 + +To get to the bootloader, with the USB cable plugged in, press the `RESET` button on the back of the PCB. + +Make example for this keyboard (after setting up your build environment): + + make ramonimbao/mona:default + +Flashing example for this keyboard: + + make ramonimbao/mona: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). diff --git a/keyboards/ramonimbao/mona/v1_1/rules.mk b/keyboards/ramonimbao/mona/v1_1/rules.mk new file mode 100644 index 000000000000..5c0d8f307c54 --- /dev/null +++ b/keyboards/ramonimbao/mona/v1_1/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/ramonimbao/mona/mona.c b/keyboards/ramonimbao/mona/v1_1/v1_1.c similarity index 97% rename from keyboards/ramonimbao/mona/mona.c rename to keyboards/ramonimbao/mona/v1_1/v1_1.c index 486f75b74794..d6ebf980538e 100644 --- a/keyboards/ramonimbao/mona/mona.c +++ b/keyboards/ramonimbao/mona/v1_1/v1_1.c @@ -14,4 +14,4 @@ * along with this program. If not, see . */ -#include "mona.h" +#include "v1_1.h" diff --git a/keyboards/ramonimbao/mona/v1_1/v1_1.h b/keyboards/ramonimbao/mona/v1_1/v1_1.h new file mode 100644 index 000000000000..a7327c3b8098 --- /dev/null +++ b/keyboards/ramonimbao/mona/v1_1/v1_1.h @@ -0,0 +1,113 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define XXX KC_NO + +#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, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k42, k46, k4a, k4b, k4d, k4e \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e }, \ +} + +#define LAYOUT_60_tsangan_hhkb( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k41, k42, k46, k4b, k4d, k4e \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, XXX, k4d, k4e }, \ +} + +#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, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k42, k46, k4a, k4b, k4d, k4e \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e }, \ +} + +#define LAYOUT_60_iso_split_bs_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k4d, k4e \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e }, \ +} + +#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, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k42, k46, k4b, k4d, k4e \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, XXX, k4d, k4e }, \ +} + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k41, k42, k44, k46, k48, k4a, k4b, k4d, k4e \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e }, \ + { k40, k41, k42, XXX, k44, XXX, k46, XXX, k48, XXX, k4a, k4b, XXX, k4d, k4e }, \ +} From fab1af415413e14c04c41dc3716c75500d67baf3 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 29 Jul 2021 22:11:57 -0700 Subject: [PATCH 102/328] AnomalyKB a65i Configurator fixes (#13775) --- keyboards/anomalykb/a65i/a65i.h | 8 +- keyboards/anomalykb/a65i/info.json | 401 +++++++++++++++++- .../a65i/keymaps/ansi_splitbs/keymap.c | 4 +- .../anomalykb/a65i/keymaps/default/keymap.c | 4 +- keyboards/anomalykb/a65i/keymaps/iso/keymap.c | 4 +- .../a65i/keymaps/iso_splitbs/keymap.c | 4 +- keyboards/anomalykb/a65i/keymaps/via/keymap.c | 4 +- 7 files changed, 403 insertions(+), 26 deletions(-) diff --git a/keyboards/anomalykb/a65i/a65i.h b/keyboards/anomalykb/a65i/a65i.h index 410fcaf2b134..bc8a2bff18ba 100644 --- a/keyboards/anomalykb/a65i/a65i.h +++ b/keyboards/anomalykb/a65i/a65i.h @@ -40,7 +40,7 @@ { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ } -#define LAYOUT_ansi( \ +#define LAYOUT_65_ansi_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ @@ -55,7 +55,7 @@ { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ } -#define LAYOUT_ansi_splitbs( \ +#define LAYOUT_65_ansi_blocker_split_bs( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ @@ -70,7 +70,7 @@ { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ } -#define LAYOUT_iso( \ +#define LAYOUT_65_iso_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \ @@ -85,7 +85,7 @@ { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ } -#define LAYOUT_iso_splitbs( \ +#define LAYOUT_65_iso_blocker_split_bs( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \ diff --git a/keyboards/anomalykb/a65i/info.json b/keyboards/anomalykb/a65i/info.json index 9a81b888b9d3..7bcf38b06866 100644 --- a/keyboards/anomalykb/a65i/info.json +++ b/keyboards/anomalykb/a65i/info.json @@ -3,18 +3,395 @@ "maintainer": "Lfgberg", "width": 16, "height": 5, + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_65_ansi_blocker", + "LAYOUT_ansi_splitbs": "LAYOUT_65_ansi_blocker_split_bs", + "LAYOUT_iso": "LAYOUT_65_iso_blocker", + "LAYOUT_iso_splitbs": "LAYOUT_65_iso_blocker_split_bs" + }, "layouts": { - "LAYOUT_ansi": { - "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}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "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":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "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":"PgDn", "x":15, "y":2}, {"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":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] - }, - "LAYOUT_ansi_splitbs": { - "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}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "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":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "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":"PgDn", "x":15, "y":2}, {"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":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] - }, - "LAYOUT_iso": { - "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}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "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":"PgDn", "x":15, "y":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":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] - }, - "LAYOUT_iso_splitbs": { - "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}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "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":"PgDn", "x":15, "y":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":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] - } + "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}, + {"label":"~", "x":13, "y":0}, + {"label":"Back", "x":14, "y":0}, + {"label":"Print", "x":15, "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":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"ISO #/~", "x":16.25, "y":2}, + {"label":"ANSI Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"ISO Enter", "x":17.25, "y":1, "w":1.25, "h":2}, + {"label":"PgDn", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"ISO \\/|", "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":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "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":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "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}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Print", "x":15, "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":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgDn", "x":15, "y":2}, + + {"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":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "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":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "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}, + {"label":"~", "x":13, "y":0}, + {"label":"Back", "x":14, "y":0}, + {"label":"Print", "x":15, "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":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgDn", "x":15, "y":2}, + + {"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":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "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":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "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}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Print", "x":15, "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":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgDn", "x":15, "y":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":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "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":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "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}, + {"label":"~", "x":13, "y":0}, + {"label":"Back", "x":14, "y":0}, + {"label":"Print", "x":15, "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":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "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":"PgDn", "x":15, "y":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":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "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":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + } } } diff --git a/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c b/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c index 741b7ff55fd4..6c7b1094b583 100644 --- a/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c +++ b/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ -[0] = LAYOUT_ansi_splitbs( +[0] = LAYOUT_65_ansi_blocker_split_bs( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PSCR, 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, @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ - [1] = LAYOUT_ansi_splitbs( + [1] = LAYOUT_65_ansi_blocker_split_bs( RESET, 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, diff --git a/keyboards/anomalykb/a65i/keymaps/default/keymap.c b/keyboards/anomalykb/a65i/keymaps/default/keymap.c index 162a57f8194b..c12189c62103 100644 --- a/keyboards/anomalykb/a65i/keymaps/default/keymap.c +++ b/keyboards/anomalykb/a65i/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ -[0] = LAYOUT_ansi( +[0] = LAYOUT_65_ansi_blocker( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, 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, @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ - [1] = LAYOUT_ansi( + [1] = LAYOUT_65_ansi_blocker( RESET, 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, diff --git a/keyboards/anomalykb/a65i/keymaps/iso/keymap.c b/keyboards/anomalykb/a65i/keymaps/iso/keymap.c index 21f34c06c429..b40ea686bc3e 100644 --- a/keyboards/anomalykb/a65i/keymaps/iso/keymap.c +++ b/keyboards/anomalykb/a65i/keymaps/iso/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ -[0] = LAYOUT_iso( +[0] = LAYOUT_65_iso_blocker( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, 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_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ - [1] = LAYOUT_iso( + [1] = LAYOUT_65_iso_blocker( RESET, 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, diff --git a/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c b/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c index 09c2a5093758..7e9b97d406ef 100644 --- a/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c +++ b/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ -[0] = LAYOUT_iso_splitbs( +[0] = LAYOUT_65_iso_blocker_split_bs( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PSCR, 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_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ - [1] = LAYOUT_iso_splitbs( + [1] = LAYOUT_65_iso_blocker_split_bs( RESET, 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, diff --git a/keyboards/anomalykb/a65i/keymaps/via/keymap.c b/keyboards/anomalykb/a65i/keymaps/via/keymap.c index 162a57f8194b..c12189c62103 100644 --- a/keyboards/anomalykb/a65i/keymaps/via/keymap.c +++ b/keyboards/anomalykb/a65i/keymaps/via/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ -[0] = LAYOUT_ansi( +[0] = LAYOUT_65_ansi_blocker( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, 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, @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------' */ - [1] = LAYOUT_ansi( + [1] = LAYOUT_65_ansi_blocker( RESET, 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, From 86c0a6d3d7b960a6cb397404514b1bb1d042e42f Mon Sep 17 00:00:00 2001 From: fvolpe83 <62909893+fvolpe83@users.noreply.github.com> Date: Fri, 30 Jul 2021 07:16:51 +0200 Subject: [PATCH 103/328] [Keymap] Update keymaps for fvolpe83 (#13739) changed folder name to match github username, changed caps from LT(1,KC_CAPS) to MO(1) and updated readme --- keyboards/xd60/keymaps/{shura30 => fvolpe83}/config.h | 0 keyboards/xd60/keymaps/{shura30 => fvolpe83}/keymap.c | 2 +- keyboards/xd60/keymaps/{shura30 => fvolpe83}/readme.md | 8 ++++---- keyboards/xd60/keymaps/{shura30 => fvolpe83}/rules.mk | 0 4 files changed, 5 insertions(+), 5 deletions(-) rename keyboards/xd60/keymaps/{shura30 => fvolpe83}/config.h (100%) rename keyboards/xd60/keymaps/{shura30 => fvolpe83}/keymap.c (96%) rename keyboards/xd60/keymaps/{shura30 => fvolpe83}/readme.md (73%) rename keyboards/xd60/keymaps/{shura30 => fvolpe83}/rules.mk (100%) diff --git a/keyboards/xd60/keymaps/shura30/config.h b/keyboards/xd60/keymaps/fvolpe83/config.h similarity index 100% rename from keyboards/xd60/keymaps/shura30/config.h rename to keyboards/xd60/keymaps/fvolpe83/config.h diff --git a/keyboards/xd60/keymaps/shura30/keymap.c b/keyboards/xd60/keymaps/fvolpe83/keymap.c similarity index 96% rename from keyboards/xd60/keymaps/shura30/keymap.c rename to keyboards/xd60/keymaps/fvolpe83/keymap.c index 61ce36310555..0a18678dcc6c 100755 --- a/keyboards/xd60/keymaps/shura30/keymap.c +++ b/keyboards/xd60/keymaps/fvolpe83/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = 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_GRV, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_NO, - LT(1,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, + MO(1), 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_NO, KC_RSFT, KC_PSCR, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_NO, TT(1), KC_RCTL), diff --git a/keyboards/xd60/keymaps/shura30/readme.md b/keyboards/xd60/keymaps/fvolpe83/readme.md similarity index 73% rename from keyboards/xd60/keymaps/shura30/readme.md rename to keyboards/xd60/keymaps/fvolpe83/readme.md index 8e58ad3d9810..753c6bbb2dd7 100755 --- a/keyboards/xd60/keymaps/shura30/readme.md +++ b/keyboards/xd60/keymaps/fvolpe83/readme.md @@ -1,4 +1,4 @@ -# shura30's keymap for XIUDI's 60% XD60 PCB rev3 +# fvolpe83's keymap for XIUDI's 60% XD60 PCB rev3 3 layers in ISO: @@ -12,7 +12,7 @@ ## Additional Notes -RGB lighting enabled and goes to sleep with the host, each layer has its own color including capslock layer: +RGB lighting enabled and goes to sleep with the host, each layer has its own color, caps layer is still there (can be enabled via software) but acts as FN - 0 = cyan/blue - caps = red @@ -21,13 +21,13 @@ RGB lighting enabled and goes to sleep with the host, each layer has its own col tapping toggle has been defined to 3 in the separate config.h -via has been enabled, waiting for official support on their end +via has been enabled ## Build To build the keymap, simply run: - make xd60/rev3:shura30 # XD60 rev3 + make xd60/rev3:fvolpe83 # XD60 rev3 ![Keyboard Layout (Physical appearence)](https://i.imgur.com/CSRPjbX.png "physical layout") diff --git a/keyboards/xd60/keymaps/shura30/rules.mk b/keyboards/xd60/keymaps/fvolpe83/rules.mk similarity index 100% rename from keyboards/xd60/keymaps/shura30/rules.mk rename to keyboards/xd60/keymaps/fvolpe83/rules.mk From 327e5a08d9566ac93048992786abdf6538e39591 Mon Sep 17 00:00:00 2001 From: Trent Hoh Date: Fri, 30 Jul 2021 13:24:21 +0800 Subject: [PATCH 104/328] [Keyboard] Added YMD40v2 VIA (#13770) VIA support for YMD40v2 --- keyboards/ymdk/ymd40/v2/keymaps/via/keymap.c | 44 +++++++++++++++++++ keyboards/ymdk/ymd40/v2/keymaps/via/readme.md | 1 + keyboards/ymdk/ymd40/v2/keymaps/via/rules.mk | 2 + 3 files changed, 47 insertions(+) create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/via/keymap.c create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/via/readme.md create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/via/rules.mk diff --git a/keyboards/ymdk/ymd40/v2/keymaps/via/keymap.c b/keyboards/ymdk/ymd40/v2/keymaps/via/keymap.c new file mode 100644 index 000000000000..70e96c2dcf16 --- /dev/null +++ b/keyboards/ymdk/ymd40/v2/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2021 James Young (@noroadsleft) + * + * 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_ortho_4x12( + 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_CAPS, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_UP, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_4x12( + 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, _______, + _______, _______, _______, _______, _______, _______, _______, MO(3), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [2] = LAYOUT_ortho_4x12( + 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, _______, + _______, _______, _______, _______, MO(3), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [3] = LAYOUT_ortho_4x12( + RESET, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, DEBUG, + _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, BL_TOGG, BL_DEC, BL_INC, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ymdk/ymd40/v2/keymaps/via/readme.md b/keyboards/ymdk/ymd40/v2/keymaps/via/readme.md new file mode 100644 index 000000000000..952866354721 --- /dev/null +++ b/keyboards/ymdk/ymd40/v2/keymaps/via/readme.md @@ -0,0 +1 @@ +# The default keymap for YMD40 v2 diff --git a/keyboards/ymdk/ymd40/v2/keymaps/via/rules.mk b/keyboards/ymdk/ymd40/v2/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/ymdk/ymd40/v2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file From 104cdef32954d10065ed7f0b8b724e631eb5c2e9 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 29 Jul 2021 22:26:47 -0700 Subject: [PATCH 105/328] Cannonkeys Balance: Configurator fixes (#13778) --- keyboards/cannonkeys/balance/info.json | 96 +++++++++++++++++++++++++- 1 file changed, 95 insertions(+), 1 deletion(-) diff --git a/keyboards/cannonkeys/balance/info.json b/keyboards/cannonkeys/balance/info.json index d7429ac8baf3..ce37a2797445 100644 --- a/keyboards/cannonkeys/balance/info.json +++ b/keyboards/cannonkeys/balance/info.json @@ -6,7 +6,101 @@ "height": 5.5, "layouts": { "LAYOUT_all": { - "layout": [{"label":"KNOB", "x":15.25, "y":0}, {"label":"~", "x":0, "y":0.25}, {"label":"!", "x":1, "y":0.25}, {"label":"@", "x":2, "y":0.25}, {"label":"#", "x":3, "y":0.25}, {"label":"$", "x":4, "y":0.25}, {"label":"%", "x":5, "y":0.25}, {"label":"^", "x":6, "y":0.25}, {"label":"&", "x":7, "y":0.25}, {"label":"*", "x":8, "y":0.25}, {"label":"(", "x":9, "y":0.25}, {"label":")", "x":10, "y":0.25}, {"label":"_", "x":11, "y":0.25}, {"label":"+", "x":12, "y":0.25}, {"x":13, "y":0.25}, {"x":14, "y":0.25}, {"label":"Num Lock", "x":16.5, "y":0.25}, {"label":"/", "x":17.5, "y":0.25}, {"label":"*", "x":18.5, "y":0.25}, {"label":"-", "x":19.5, "y":0.25}, {"label":"Tab", "x":0, "y":1.25, "w":1.5}, {"label":"Q", "x":1.5, "y":1.25}, {"label":"W", "x":2.5, "y":1.25}, {"label":"E", "x":3.5, "y":1.25}, {"label":"R", "x":4.5, "y":1.25}, {"label":"T", "x":5.5, "y":1.25}, {"label":"Y", "x":6.5, "y":1.25}, {"label":"U", "x":7.5, "y":1.25}, {"label":"I", "x":8.5, "y":1.25}, {"label":"O", "x":9.5, "y":1.25}, {"label":"P", "x":10.5, "y":1.25}, {"label":"{", "x":11.5, "y":1.25}, {"label":"}", "x":12.5, "y":1.25}, {"label":"|", "x":13.5, "y":1.25, "w":1.5}, {"label":"PgUp", "x":15.25, "y":1.25}, {"label":"7", "x":16.5, "y":1.25}, {"label":"8", "x":17.5, "y":1.25}, {"label":"9", "x":18.5, "y":1.25}, {"label":"+", "x":19.5, "y":1.25}, {"label":"Caps Lock", "x":0, "y":2.25, "w":1.75}, {"label":"A", "x":1.75, "y":2.25}, {"label":"S", "x":2.75, "y":2.25}, {"label":"D", "x":3.75, "y":2.25}, {"label":"F", "x":4.75, "y":2.25}, {"label":"G", "x":5.75, "y":2.25}, {"label":"H", "x":6.75, "y":2.25}, {"label":"J", "x":7.75, "y":2.25}, {"label":"K", "x":8.75, "y":2.25}, {"label":"L", "x":9.75, "y":2.25}, {"label":":", "x":10.75, "y":2.25}, {"label":"\"", "x":11.75, "y":2.25}, {"label":"Enter", "x":12.75, "y":2.25, "w":2.25}, {"label":"PgDn", "x":15.25, "y":2.25}, {"label":"4", "x":16.5, "y":2.25}, {"label":"5", "x":17.5, "y":2.25}, {"label":"6", "x":18.5, "y":2.25}, {"label":"+", "x":19.5, "y":2.25}, {"label":"Shift", "x":0, "y":3.25, "w":2.25}, {"label":"Z", "x":2.25, "y":3.25}, {"label":"X", "x":3.25, "y":3.25}, {"label":"C", "x":4.25, "y":3.25}, {"label":"V", "x":5.25, "y":3.25}, {"label":"B", "x":6.25, "y":3.25}, {"label":"N", "x":7.25, "y":3.25}, {"label":"M", "x":8.25, "y":3.25}, {"label":"<", "x":9.25, "y":3.25}, {"label":">", "x":10.25, "y":3.25}, {"label":"?", "x":11.25, "y":3.25}, {"label":"Shift", "x":12.25, "y":3.25, "w":2.75}, {"label":"1", "x":16.5, "y":3.25}, {"label":"2", "x":17.5, "y":3.25}, {"label":"3", "x":18.5, "y":3.25}, {"label":"Enter", "x":19.5, "y":3.25}, {"label":"\u2191", "x":15.25, "y":3.5}, {"label":"Ctrl", "x":0, "y":4.25, "w":1.25}, {"label":"Win", "x":1.25, "y":4.25}, {"label":"Alt", "x":2.25, "y":4.25, "w":1.25}, {"x":3.5, "y":4.25, "w":7}, {"label":"Ctrl", "x":10.5, "y":4.25, "w":1.25}, {"label":"Win", "x":11.75, "y":4.25}, {"label":"Alt", "x":12.75, "y":4.25, "w":1.25}, {"label":"0", "x":17.5, "y":4.25}, {"label":".", "x":18.5, "y":4.25}, {"label":"Enter", "x":19.5, "y":4.25}, {"label":"\u2190", "x":14.25, "y":4.5}, {"label":"\u2193", "x":15.25, "y":4.5}, {"label":"\u2192", "x":16.25, "y":4.5}] + "layout": [ + {"label":"~", "x":0, "y":0.25}, + {"label":"!", "x":1, "y":0.25}, + {"label":"@", "x":2, "y":0.25}, + {"label":"#", "x":3, "y":0.25}, + {"label":"$", "x":4, "y":0.25}, + {"label":"%", "x":5, "y":0.25}, + {"label":"^", "x":6, "y":0.25}, + {"label":"&", "x":7, "y":0.25}, + {"label":"*", "x":8, "y":0.25}, + {"label":"(", "x":9, "y":0.25}, + {"label":")", "x":10, "y":0.25}, + {"label":"_", "x":11, "y":0.25}, + {"label":"+", "x":12, "y":0.25}, + {"label":"Backspace", "x":13, "y":0.25}, + {"label":"Delete", "x":14, "y":0.25}, + {"label":"KNOB", "x":15.25, "y":0}, + {"label":"Num Lock", "x":16.5, "y":0.25}, + {"label":"/", "x":17.5, "y":0.25}, + {"label":"*", "x":18.5, "y":0.25}, + {"label":"-", "x":19.5, "y":0.25}, + + {"label":"Tab", "x":0, "y":1.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":1.25}, + {"label":"W", "x":2.5, "y":1.25}, + {"label":"E", "x":3.5, "y":1.25}, + {"label":"R", "x":4.5, "y":1.25}, + {"label":"T", "x":5.5, "y":1.25}, + {"label":"Y", "x":6.5, "y":1.25}, + {"label":"U", "x":7.5, "y":1.25}, + {"label":"I", "x":8.5, "y":1.25}, + {"label":"O", "x":9.5, "y":1.25}, + {"label":"P", "x":10.5, "y":1.25}, + {"label":"{", "x":11.5, "y":1.25}, + {"label":"}", "x":12.5, "y":1.25}, + {"label":"|", "x":13.5, "y":1.25, "w":1.5}, + {"label":"PgUp", "x":15.25, "y":1.25}, + {"label":"7", "x":16.5, "y":1.25}, + {"label":"8", "x":17.5, "y":1.25}, + {"label":"9", "x":18.5, "y":1.25}, + {"label":"+", "x":19.5, "y":1.25}, + + {"label":"Caps Lock", "x":0, "y":2.25, "w":1.75}, + {"label":"A", "x":1.75, "y":2.25}, + {"label":"S", "x":2.75, "y":2.25}, + {"label":"D", "x":3.75, "y":2.25}, + {"label":"F", "x":4.75, "y":2.25}, + {"label":"G", "x":5.75, "y":2.25}, + {"label":"H", "x":6.75, "y":2.25}, + {"label":"J", "x":7.75, "y":2.25}, + {"label":"K", "x":8.75, "y":2.25}, + {"label":"L", "x":9.75, "y":2.25}, + {"label":":", "x":10.75, "y":2.25}, + {"label":"\"", "x":11.75, "y":2.25}, + {"label":"ISO ~", "x":12.75, "y":2.25}, + {"label":"Enter", "x":13.75, "y":2.25, "w":1.25}, + {"label":"PgDn", "x":15.25, "y":2.25}, + {"label":"4", "x":16.5, "y":2.25}, + {"label":"5", "x":17.5, "y":2.25}, + {"label":"6", "x":18.5, "y":2.25}, + {"label":"+", "x":19.5, "y":2.25}, + + {"label":"Shift", "x":0, "y":3.25, "w":1.25}, + {"label":"ISO |", "x":1.25, "y":3.25}, + {"label":"Z", "x":2.25, "y":3.25}, + {"label":"X", "x":3.25, "y":3.25}, + {"label":"C", "x":4.25, "y":3.25}, + {"label":"V", "x":5.25, "y":3.25}, + {"label":"B", "x":6.25, "y":3.25}, + {"label":"N", "x":7.25, "y":3.25}, + {"label":"M", "x":8.25, "y":3.25}, + {"label":"<", "x":9.25, "y":3.25}, + {"label":">", "x":10.25, "y":3.25}, + {"label":"?", "x":11.25, "y":3.25}, + {"label":"Shift", "x":12.25, "y":3.25, "w":2.75}, + {"label":"Up", "x":15.25, "y":3.5}, + {"label":"1", "x":16.5, "y":3.25}, + {"label":"2", "x":17.5, "y":3.25}, + {"label":"3", "x":18.5, "y":3.25}, + {"label":"Enter", "x":19.5, "y":3.25}, + + {"label":"Ctrl", "x":0, "y":4.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":4.25}, + {"label":"Alt", "x":2.25, "y":4.25, "w":1.25}, + {"label":"Space", "x":3.5, "y":4.25, "w":7}, + {"label":"Alt", "x":10.5, "y":4.25, "w":1.25}, + {"label":"Fn", "x":11.75, "y":4.25}, + {"label":"Ctrl", "x":12.75, "y":4.25, "w":1.25}, + {"label":"Left", "x":14.25, "y":4.5}, + {"label":"Down", "x":15.25, "y":4.5}, + {"label":"Right", "x":16.25, "y":4.5}, + {"label":"0", "x":17.5, "y":4.25}, + {"label":".", "x":18.5, "y":4.25}, + {"label":"Enter", "x":19.5, "y":4.25} + ] } } } From 219ce2b58a078cd04ff8186bdebbf632f7ebb7fc Mon Sep 17 00:00:00 2001 From: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Fri, 30 Jul 2021 01:36:21 -0400 Subject: [PATCH 106/328] [Keymap] jonavin quefrency keymap (#13751) add winkeylock and rgb functions Co-authored-by: Jonavin <=> --- .../keebio/quefrency/keymaps/jonavin/config.h | 6 + .../keebio/quefrency/keymaps/jonavin/keymap.c | 113 +++++++++++++++--- .../quefrency/keymaps/jonavin/readme.md | 14 ++- 3 files changed, 114 insertions(+), 19 deletions(-) diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/config.h b/keyboards/keebio/quefrency/keymaps/jonavin/config.h index 4d65c137af65..b7883424bc56 100644 --- a/keyboards/keebio/quefrency/keymaps/jonavin/config.h +++ b/keyboards/keebio/quefrency/keymaps/jonavin/config.h @@ -37,3 +37,9 @@ along with this program. If not, see . //Always send Escape if Control is pressed #define TAPPING_TERM 180 + +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_LAYERS + #define RGBLIGHT_SLEEP +#endif // RGBLIGHT_ENABLE + diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c b/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c index 171b5203e821..7243c59b640d 100644 --- a/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c @@ -17,7 +17,6 @@ #include QMK_KEYBOARD_H - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -31,6 +30,7 @@ enum custom_layers { enum custom_keycodes { DOUBLEZERO = SAFE_RANGE, + KC_WINLCK, //Toggles Win key on and off }; // Tap Dance Definitions @@ -45,19 +45,12 @@ qk_tap_dance_action_t tap_dance_actions[] = { #define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case DOUBLEZERO: - if (record->event.pressed) { - // when keycode DOUBLEZERO is pressed - SEND_STRING("00"); - } else { - // when keycode DOUBLEZERO is released - } - break; - } - return true; -}; +bool _isWinKeyDisabled = false; + +#ifdef RGBLIGHT_ENABLE + // Custom RGB Colours + #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps +#endif // RGBLIGHT_ENABLE const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_65( @@ -68,10 +61,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_65( 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_F13, KC_CALC, KC_NO, - RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, - KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_HOME, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RCTL(KC_PGUP), KC_END, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT)), + RGB_TOG, RGB_MOD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, + KC_CAPS, KC_NO, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_HOME, + KC_TRNS, KC_NO, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_MOD, KC_END, + KC_TRNS, KC_WINLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, RGB_SPD, RGB_RMOD, RGB_SPI), [_MO2] = LAYOUT_65( KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_PSLS, KC_PEQL, KC_TRNS, KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, @@ -86,6 +79,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case DOUBLEZERO: + if (record->event.pressed) { + // when keycode DOUBLEZERO is pressed + SEND_STRING("00"); + } else { + // when keycode DOUBLEZERO is released + } + break; + case KC_WINLCK: + if (record->event.pressed) { + _isWinKeyDisabled = !_isWinKeyDisabled; //toggle status + if(_isWinKeyDisabled) { + process_magic(GUI_OFF, record); + } else { + process_magic(GUI_ON, record); + } + } else unregister_code16(keycode); + break; + } + return true; +}; + #ifdef ENCODER_ENABLE // Encoder Functionality bool encoder_update_user(uint8_t index, bool clockwise) { switch (index) @@ -128,3 +146,62 @@ bool encoder_update_user(uint8_t index, bool clockwise) { return true; } #endif + +#ifdef RGBLIGHT_ENABLE + + enum custom_rgblight_layers + { + _rgbCAPS, + _rgbWINLOCK, + _rgbFN, + _rgbNUMPAD, + }; + + // RGB map LEFT 1, 2, 3, 12, 13, 14, 15, 0 RIGHT 7, 6, 5, 4, 11, 10, 9, 8 + const rgblight_segment_t PROGMEM _rgb_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {14, 1, HSV_RED} // Light 4 LEDs, starting with LED 6 + ); + const rgblight_segment_t PROGMEM _rgb_winlock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {13, 1, HSV_PURPLE} // Light 4 LEDs, starting with LED 6 + ); + const rgblight_segment_t PROGMEM _rgb_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {9, 2, HSV_ORANGE}, + {12, 2, HSV_ORANGE} + ); + // Light LEDs 9 & 10 in cyan when keyboard layer 1 is active + const rgblight_segment_t PROGMEM _rgb_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {4, 3, HSV_PURPLE}, + {9, 3, HSV_PURPLE} + ); + + const rgblight_segment_t* const PROGMEM _rgb_layers[] = RGBLIGHT_LAYERS_LIST( + _rgb_capslock_layer, + _rgb_winlock_layer, + _rgb_fn_layer, + _rgb_numpad_layer + ); + + bool led_update_user(led_t led_state) { + rgblight_set_layer_state(_rgbCAPS, led_state.caps_lock); + rgblight_set_layer_state(_rgbWINLOCK, _isWinKeyDisabled); + return true; + } + + layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(_rgbFN, layer_state_cmp(state, _FN1)); + rgblight_set_layer_state(_rgbNUMPAD, layer_state_cmp(state, _MO2)); + return state; + } +#endif // RGBLIGHT_ENABLE + +void keyboard_post_init_user(void) { + + if (IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // turn on Num lock by defautl so that the numpad layer always has predictable results + tap_code(KC_NUMLOCK); + } + #ifdef RGBLIGHT_ENABLE + rgblight_mode(1); // single colour mode + rgblight_setrgb(RGB_GODSPEED); // Default startup colour + rgblight_layers = _rgb_layers; + #endif +} diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/readme.md b/keyboards/keebio/quefrency/keymaps/jonavin/readme.md index bf009dee9102..c782d26c071d 100644 --- a/keyboards/keebio/quefrency/keymaps/jonavin/readme.md +++ b/keyboards/keebio/quefrency/keymaps/jonavin/readme.md @@ -7,12 +7,24 @@ - ESC is set to GRAVESC (Esc when pressed, Shift-Esc is ~ and Win-ESC is `), plus handling for Ctrl-Shift-ESC to bring up Task Manager in Windows - Layer 2 left spacebar Backspace - add double tap of Left Shift to toggle Caps Lock +- add Win Key lock function using Fn+Win - additional encoder functionality - holding L shift, Navigate page up/down - holding Left Ctrl, navigate prev/next word - holding Left Alt, change media prev/next track - default is change volume +- RGB Functionality + - additional RGB function key binds to arrow on Fn layer + - Add capslock indicator, win key lock indicator + - Fn and layer 2 indicators using RGB underglow + ## All layers diagram -![image](https://user-images.githubusercontent.com/71780717/118903429-c52cc800-b8e5-11eb-9c45-3d9815a50123.png) +Default Layer +![image](https://user-images.githubusercontent.com/71780717/127251683-ad445b40-95a9-4d2a-b164-a96f3a13464e.png) + +MO(1) / FN layer +![image](https://user-images.githubusercontent.com/71780717/127251736-047f2f73-dfff-4fcc-bf0e-a5378e2fee08.png) +MO(2) / Numpad layer +![image](https://user-images.githubusercontent.com/71780717/127251985-4f564a56-8836-4db0-9cbd-ec859755a8d9.png) From 7e1d28006ffeb66cd4d6a987f2aeea04587b87cb Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 29 Jul 2021 22:37:41 -0700 Subject: [PATCH 107/328] CherryB Studio CB1800: fix key sequence in info.json (#13779) This commit fixes the position in sequence of the arrow keys. --- keyboards/cherrybstudio/cb1800/info.json | 120 ++++++++++++++++++++++- 1 file changed, 118 insertions(+), 2 deletions(-) diff --git a/keyboards/cherrybstudio/cb1800/info.json b/keyboards/cherrybstudio/cb1800/info.json index c54997a5fa8e..b83b8fadc607 100644 --- a/keyboards/cherrybstudio/cb1800/info.json +++ b/keyboards/cherrybstudio/cb1800/info.json @@ -6,7 +6,123 @@ "height": 7.25, "layouts": { "LAYOUT_all": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Esc", "x":14, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"PrtSc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"x":13, "y":2}, {"label":"Backspace", "x":14, "y":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"\"", "x":11.75, "y":4}, {"x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":4, "w":1.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":1.25}, {"x":1.25, "y":5}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5}, {"label":"\u2191", "x":14.25, "y":5.25}, {"label":"lctrl", "x":0, "y":6}, {"label":"lgui", "x":1, "y":6}, {"label":"lalt", "x":2, "y":6}, {"label":"space", "x":3, "y":6, "w":6}, {"label":"ralt", "x":9, "y":6}, {"label":"rgui", "x":10, "y":6}, {"label":"Menu", "x":11, "y":6}, {"label":"lctrl", "x":12, "y":6}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}, {"label":"Enter", "x":18.5, "y":6}, {"label":"\u2190", "x":13.25, "y":6.25}, {"label":"\u2193", "x":14.25, "y":6.25}, {"label":"\u2192", "x":15.25, "y":6.25}] - }, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"Esc", "x":14, "y":0}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"PgUp", "x":17.5, "y":0}, + {"label":"PrtSc", "x":18.5, "y":0}, + + {"label":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"PgDn", "x":17.5, "y":1}, + {"label":"Scroll Lock", "x":18.5, "y":1}, + + {"label":"~", "x":0, "y":2}, + {"label":"!", "x":1, "y":2}, + {"label":"@", "x":2, "y":2}, + {"label":"#", "x":3, "y":2}, + {"label":"$", "x":4, "y":2}, + {"label":"%", "x":5, "y":2}, + {"label":"^", "x":6, "y":2}, + {"label":"&", "x":7, "y":2}, + {"label":"*", "x":8, "y":2}, + {"label":"(", "x":9, "y":2}, + {"label":")", "x":10, "y":2}, + {"label":"_", "x":11, "y":2}, + {"label":"+", "x":12, "y":2}, + {"x":13, "y":2}, + {"label":"Backspace", "x":14, "y":2}, + {"label":"Num Lock", "x":15.5, "y":2}, + {"label":"/", "x":16.5, "y":2}, + {"label":"*", "x":17.5, "y":2}, + {"label":"Pause", "x":18.5, "y":2}, + + {"label":"Tab", "x":0, "y":3, "w":1.5}, + {"label":"Q", "x":1.5, "y":3}, + {"label":"W", "x":2.5, "y":3}, + {"label":"E", "x":3.5, "y":3}, + {"label":"R", "x":4.5, "y":3}, + {"label":"T", "x":5.5, "y":3}, + {"label":"Y", "x":6.5, "y":3}, + {"label":"U", "x":7.5, "y":3}, + {"label":"I", "x":8.5, "y":3}, + {"label":"O", "x":9.5, "y":3}, + {"label":"P", "x":10.5, "y":3}, + {"label":"{", "x":11.5, "y":3}, + {"label":"}", "x":12.5, "y":3}, + {"label":"|", "x":13.5, "y":3, "w":1.5}, + {"label":"7", "x":15.5, "y":3}, + {"label":"8", "x":16.5, "y":3}, + {"label":"9", "x":17.5, "y":3}, + {"label":"-", "x":18.5, "y":3}, + + {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, + {"label":"A", "x":1.75, "y":4}, + {"label":"S", "x":2.75, "y":4}, + {"label":"D", "x":3.75, "y":4}, + {"label":"F", "x":4.75, "y":4}, + {"label":"G", "x":5.75, "y":4}, + {"label":"H", "x":6.75, "y":4}, + {"label":"J", "x":7.75, "y":4}, + {"label":"K", "x":8.75, "y":4}, + {"label":"L", "x":9.75, "y":4}, + {"label":":", "x":10.75, "y":4}, + {"label":"\"", "x":11.75, "y":4}, + {"label":"ISO~", "x":12.75, "y":4}, + {"label":"Enter", "x":13.75, "y":4, "w":1.25}, + {"label":"4", "x":15.5, "y":4}, + {"label":"5", "x":16.5, "y":4}, + {"label":"6", "x":17.5, "y":4}, + {"label":"+", "x":18.5, "y":4}, + + {"label":"Shift", "x":0, "y":5, "w":1.25}, + {"label":"ISO|", "x":1.25, "y":5}, + {"label":"Z", "x":2.25, "y":5}, + {"label":"X", "x":3.25, "y":5}, + {"label":"C", "x":4.25, "y":5}, + {"label":"V", "x":5.25, "y":5}, + {"label":"B", "x":6.25, "y":5}, + {"label":"N", "x":7.25, "y":5}, + {"label":"M", "x":8.25, "y":5}, + {"label":"<", "x":9.25, "y":5}, + {"label":">", "x":10.25, "y":5}, + {"label":"?", "x":11.25, "y":5}, + {"label":"Shift", "x":12.25, "y":5, "w":1.75}, + {"label":"Up", "x":14.25, "y":5.25}, + {"label":"1", "x":15.5, "y":5}, + {"label":"2", "x":16.5, "y":5}, + {"label":"3", "x":17.5, "y":5}, + {"label":"Enter", "x":18.5, "y":5}, + + {"label":"LCtrl", "x":0, "y":6}, + {"label":"LGui", "x":1, "y":6}, + {"label":"LAlt", "x":2, "y":6}, + {"label":"Space", "x":3, "y":6, "w":6}, + {"label":"RAlt", "x":9, "y":6}, + {"label":"RGui", "x":10, "y":6}, + {"label":"Menu", "x":11, "y":6}, + {"label":"LCtrl", "x":12, "y":6}, + {"label":"Left", "x":13.25, "y":6.25}, + {"label":"Down", "x":14.25, "y":6.25}, + {"label":"Right", "x":15.25, "y":6.25}, + {"label":"0", "x":16.5, "y":6}, + {"label":".", "x":17.5, "y":6}, + {"label":"Enter", "x":18.5, "y":6} + ] + } } } From 03212ced241522351f5e019946dd701c78793a1f Mon Sep 17 00:00:00 2001 From: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Fri, 30 Jul 2021 01:38:38 -0400 Subject: [PATCH 108/328] [Keymap] jonavin gmmk pro keymap add RGB functionality (#13591) Co-authored-by: Drashna Jaelre Co-authored-by: Jonavin <=> --- keyboards/gmmk/pro/keymaps/jonavin/config.h | 5 + keyboards/gmmk/pro/keymaps/jonavin/keymap.c | 219 +++++++++++++++--- keyboards/gmmk/pro/keymaps/jonavin/readme.md | 22 +- .../gmmk/pro/keymaps/jonavin/rgb_matrix_map.h | 144 ++++++++++++ 4 files changed, 356 insertions(+), 34 deletions(-) create mode 100644 keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h diff --git a/keyboards/gmmk/pro/keymaps/jonavin/config.h b/keyboards/gmmk/pro/keymaps/jonavin/config.h index d7219b2571f6..b77cb05f5f2c 100644 --- a/keyboards/gmmk/pro/keymaps/jonavin/config.h +++ b/keyboards/gmmk/pro/keymaps/jonavin/config.h @@ -26,3 +26,8 @@ //Always send Escape if Control is pressed #define TAPPING_TERM 180 + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR + #define RGB_DISABLE_WHEN_USB_SUSPENDED true +#endif diff --git a/keyboards/gmmk/pro/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/keymaps/jonavin/keymap.c index 7289c1dd9e5e..8b37449576b9 100644 --- a/keyboards/gmmk/pro/keymaps/jonavin/keymap.c +++ b/keyboards/gmmk/pro/keymaps/jonavin/keymap.c @@ -16,6 +16,9 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H +#include "rgb_matrix_map.h" + +#define ARRAYSIZE(arr) sizeof(arr)/sizeof(arr[0]) enum custom_layers { _BASE, @@ -27,6 +30,8 @@ enum custom_layers { enum custom_keycodes { KC_00 = SAFE_RANGE, KC_WINLCK, //Toggles Win key on and off + RGB_TOI, // Timeout idle time up + RGB_TOD, // Timeout idle time down }; // Tap Dance Definitions @@ -43,31 +48,6 @@ qk_tap_dance_action_t tap_dance_actions[] = { bool _isWinKeyDisabled = false; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_00: - if (record->event.pressed) { - // when keycode KC_00 is pressed - SEND_STRING("00"); - } else { - // when keycode KC_00 is released - } - break; - - case KC_WINLCK: - if (record->event.pressed) { - _isWinKeyDisabled = !_isWinKeyDisabled; //toggle status - if(_isWinKeyDisabled) { - process_magic(GUI_OFF, record); - } else { - process_magic(GUI_ON, record); - } - } else unregister_code16(keycode); - break; - } - return true; -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -93,8 +73,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, RESET, KC_HOME, KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, _______, RGB_HUI, _______, _______, _______, KC_NLCK, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + _______, _______, RGB_HUI, _______, _______, _______, KC_NLCK, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______, + _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI ), [_MO2] = LAYOUT( @@ -117,12 +97,93 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; + +// TIMEOUTS +#define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes +#define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) +static uint16_t timeout_timer = 0; +static uint16_t timeout_counter = 0; //in minute intervals +static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; + +void timeout_reset_timer(void) { + timeout_timer = timer_read(); + timeout_counter = 0; +}; + +void timeout_update_threshold(bool increase) { + if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; + if (!increase && timeout_threshold > 0) timeout_threshold--; +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_00: + if (record->event.pressed) { + // when keycode KC_00 is pressed + SEND_STRING("00"); + } else { + // when keycode KC_00 is released + } + break; + case KC_WINLCK: + if (record->event.pressed) { + _isWinKeyDisabled = !_isWinKeyDisabled; //toggle status + if(_isWinKeyDisabled) { + process_magic(GUI_OFF, record); + } else { + process_magic(GUI_ON, record); + } + } else unregister_code16(keycode); + break; + case RGB_TOI: + if(record->event.pressed) { + timeout_update_threshold(true); + } else unregister_code16(keycode); + break; + case RGB_TOD: + if(record->event.pressed) { + timeout_update_threshold(false); //decrease timeout + } else unregister_code16(keycode); + break; + default: + if (record->event.pressed) { //reset activity timer + #ifdef RGB_MATRIX_ENABLE + rgb_matrix_enable(); + #endif + timeout_reset_timer(); + } + break; + } + return true; +}; + +void matrix_scan_user(void) { + if (timeout_threshold > 0) { + if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick + timeout_counter++; + timeout_timer = timer_read(); + } + #ifdef RGB_MATRIX_ENABLE + if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { + rgb_matrix_disable_noeeprom(); + } + #endif + } // timeout_threshold = 0 will disable timeout +}; + + #ifdef ENCODER_ENABLE // Encoder Functionality + uint8_t selected_layer = 0; bool encoder_update_user(uint8_t index, bool clockwise) { - if ( clockwise ) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, Page up + if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers + if(selected_layer < 3) { + selected_layer ++; + layer_move(selected_layer); + } + } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up unregister_mods(MOD_BIT(KC_LSFT)); register_code(KC_PGDN); register_mods(MOD_BIT(KC_LSFT)); @@ -131,10 +192,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track tap_code(KC_MEDIA_NEXT_TRACK); } else { - tap_code(KC_VOLU); // Otherwise it just changes volume + switch (selected_layer) { + case _FN1: + timeout_update_threshold(true); + break; + default: + tap_code(KC_VOLU); // Otherwise it just changes volume + break; + } } } else { if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { + if (selected_layer > 0) { + selected_layer --; + layer_move(selected_layer); + } + } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { unregister_mods(MOD_BIT(KC_LSFT)); register_code(KC_PGUP); register_mods(MOD_BIT(KC_LSFT)); @@ -143,9 +216,93 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track tap_code(KC_MEDIA_PREV_TRACK); } else { - tap_code(KC_VOLD); + switch (selected_layer) { + case _FN1: + timeout_update_threshold(false); + break; + default: + tap_code(KC_VOLD); + break; + } } } + return true; } #endif + +#ifdef RGB_MATRIX_ENABLE + // Capslock, Scroll lock and Numlock indicator on Left side lights. + void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) { + rgb_matrix_set_color(LED_L1, RGB_GREEN); + rgb_matrix_set_color(LED_L2, RGB_GREEN); + } + if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF + rgb_matrix_set_color(LED_L3, RGB_MAGENTA); + rgb_matrix_set_color(LED_L4, RGB_MAGENTA); + } + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgb_matrix_set_color(LED_L5, RGB_RED); + rgb_matrix_set_color(LED_L6, RGB_RED); + rgb_matrix_set_color(LED_L7, RGB_RED); + } + if (_isWinKeyDisabled) { + rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled + } + switch(get_highest_layer(layer_state)){ // special handling per layer + case _FN1: // on Fn layer select what the encoder does when pressed + rgb_matrix_set_color(LED_R2, RGB_RED); + rgb_matrix_set_color(LED_R3, RGB_RED); + rgb_matrix_set_color(LED_R4, RGB_RED); + rgb_matrix_set_color(LED_FN, RGB_RED); //FN key + + // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code + if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_RED); + else if (timeout_threshold < 140) { + rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_RED); + rgb_matrix_set_color(LED_LIST_NUMROW[(timeout_threshold % 10)], RGB_RED); + } else { // >= 140 minutes, just show these 3 lights + rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_RED); + rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_RED); + rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED); + } + break; + case _MO2: + for (uint8_t i=0; i or encoder + - setting to zero disables timeout + - indicators in FN layer using RGB in FN and number rows to show the timeout in minutes + - LED address location map as enum definition + - LED group lists for arrows, numpad, F row, num row, left and right side LEDs + - default startuo in single mode with default colour + - Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED + - Layer indicator on right side LED + - Fn key light up red when Fn layer activate + - Win Key light up red when Win Lock mode enabled + - Layer 2 activation lights up Numpad area ## All layers diagram Default layer ![image](https://user-images.githubusercontent.com/71780717/124177658-82324880-da7e-11eb-9421-b69100131062.png) Fn Layer -![image](https://user-images.githubusercontent.com/71780717/124176887-8742c800-da7d-11eb-9b19-156bd67cac7d.png) +![image](https://user-images.githubusercontent.com/71780717/126086069-bc539ffc-3ab6-4ebb-9bef-5005f8add294.png) Layer 2 (Caps Lock Mod) ![image](https://user-images.githubusercontent.com/71780717/124177683-8b231a00-da7e-11eb-9434-e2475f679a54.png) diff --git a/keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h b/keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h new file mode 100644 index 000000000000..1ee53889054e --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h @@ -0,0 +1,144 @@ +/* Copyright 2021 Jonavin Eng + * + * 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 . + */ + +#ifdef RGB_MATRIX_ENABLE + + // Custom RGB Colours + #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps + #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Naurilus Font colours + + // RGB LED locations + enum led_location_map { + LED_ESC, // 0, ESC, k13 + LED_GRV, // 1, ~, k16 + LEB_TAB, // 2, Tab, k11 + LED_CAPS, // 3, Caps, k21 + LED_LSFT, // 4, Sh_L, k00 + LED_LCTL, // 5, Ct_L, k06 + LED_F1, // 6, F1, k26 + LED_1, // 7, 1, k17 + LED_Q, // 8, Q, k10 + LED_A, // 9, A, k12 + LED_Z, // 10, Z, k14 + LED_LWIN, // 11, Win_L, k90 + LED_F2, // 12, F2, k36 + LED_2, // 13, 2, k27 + LED_W, // 14, W, k20 + LED_S, // 15, S, k22 + LED_X, // 16, X, k24 + LED_LALT, // 17, Alt_L, k93 + LED_F3, // 18, F3, k31 + LED_3, // 19, 3, k37 + LED_E, // 20, E, k30 + LED_D, // 21, D, k32 + LED_C, // 22, C, k34 + LED_F4, // 23, F4, k33 + LED_4, // 24, 4, k47 + LED_R, // 25, R, k40 + LED_F, // 26, F, k42 + LED_V, // 27, V, k44 + LED_F5, // 28, F5, k07 + LED_5, // 29, 5, k46 + LED_T, // 30, T, k41 + LED_G, // 31, G, k43 + LED_B, // 32, B, k45 + LED_SPC, // 33, SPACE, k94 + LED_F6, // 34, F6, k63 + LED_6, // 35, 6, k56 + LED_Y, // 36, Y, k51 + LED_H, // 37, H, k53 + LED_N, // 38, N, k55 + LED_F7, // 39, F7, k71 + LED_7, // 40, 7, k57 + LED_U, // 41, U, k50 + LED_J, // 42, J, k52 + LED_M, // 43, M, k54 + LED_F8, // 44, F8, k76 + LED_8, // 45, 8, k67 + LED_I, // 46, I, k60 + LED_K, // 47, K, k62 + LED_COMM, // 48, ,, k64 + LED_RALT, // 49, Alt_R, k95 + LED_F9, // 50, F9, ka6 + LED_9, // 51, 9, k77 + LED_O, // 52, O, k70 + LED_L, // 53, L, k72 + LED_DOT, // 54, ., k74 + LED_FN, // 55, FN, k92 + LED_F10, // 56, F10, ka7 + LED_0, // 57, 0, k87 + LED_P, // 58, P, k80 + LED_SCLN, // 59, ;, k82 + LED_SLSH, // 60, ?, k85 + LED_F11, // 61, F11, ka3 + LED_MINS, // 62, -, k86 + LED_LBRC, // 63, [, k81 + LED_QUOT, // 64, ", k83 + LED_RCTL, // 65, Ct_R, k04 + LED_F12, // 66, F12, ka5 + LED_L1, // 67, LED, l01 + LED_R1, // 68, LED, l11 + LED_INS, // 69, Prt, k97 -- remapped to INS + LED_L2, // 70, LED, l02 + LED_R2, // 71, LED, l12 + LED_DEL, // 72, Del, k65 + LED_L3, // 73, LED, l03 + LED_R3, // 74, LED, l13 + LED_PGUP, // 75, PgUp, k15 + LED_L4, // 76, LED, l04 + LED_R4, // 77, LED, l14 + LED_EQL, // 78, =, k66 + LED_RIGHT, // 79, Right, k05 + LED_L5, // 80, LED, l05 + LED_R5, // 81, LED, l15 + LED_END, // 82, End, k75 + LED_L6, // 83, LED, l06 + LED_R6, // 84, LED, l16 + LED_BSPC, // 85, BSpc, ka1 + LED_PGDN, // 86, PgDn, k25 + LED_L7, // 87, LED, l07 + LED_R7, // 88, LED, l17 + LED_RBRC, // 89, ], k61 + LED_RSFT, // 90, Sh_R, k91 + LED_L8, // 91, LED, l08 + LED_R8, // 92, LED, l18 + LED_BSLS, // 93, \, ka2 + LED_UP, // 94, Up, k35 + LED_LEFT, // 95, Left, k03 + LED_ENT, // 96, Enter, ka4 + LED_DOWN // 97, Down, k73 + }; + + const uint8_t LED_LIST_WASD[] = { LED_W, LED_A, LED_S, LED_D }; + + const uint8_t LED_LIST_ARROWS[] = { LED_LEFT, LED_RIGHT, LED_UP, LED_DOWN }; + + const uint8_t LED_LIST_FUNCROW[] = { LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_INS}; + + const uint8_t LED_LIST_NUMROW[] = { LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_DEL}; + + const uint8_t LED_LIST_NUMPAD[] = { + LED_7, LED_8, LED_9, + LED_U, LED_I, LED_O, + LED_J, LED_K, LED_L, + LED_M, LED_COMM, LED_DOT + }; + + const uint8_t LED_SIDE_LEFT[] = { LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7, LED_L8}; + + const uint8_t LED_SIDE_RIGHT[] = { LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7, LED_R8}; + +#endif From a1f7d86ef59c1bfb52fbf2ba326ae899fb020c11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20A=2E=20Volpato?= Date: Fri, 30 Jul 2021 02:54:06 -0300 Subject: [PATCH 109/328] [Keyboard] Initial Noxary 378 support (#13156) Co-authored-by: Gondolindrim --- keyboards/noxary/378/378.c | 18 +++++ keyboards/noxary/378/378.h | 36 ++++++++++ keyboards/noxary/378/chconf.h | 30 ++++++++ keyboards/noxary/378/config.h | 71 +++++++++++++++++++ keyboards/noxary/378/keymaps/default/keymap.c | 27 +++++++ keyboards/noxary/378/keymaps/via/keymap.c | 48 +++++++++++++ keyboards/noxary/378/keymaps/via/rules.mk | 1 + keyboards/noxary/378/mcuconf.h | 24 +++++++ keyboards/noxary/378/readme.md | 15 ++++ keyboards/noxary/378/rules.mk | 25 +++++++ 10 files changed, 295 insertions(+) create mode 100644 keyboards/noxary/378/378.c create mode 100644 keyboards/noxary/378/378.h create mode 100644 keyboards/noxary/378/chconf.h create mode 100644 keyboards/noxary/378/config.h create mode 100755 keyboards/noxary/378/keymaps/default/keymap.c create mode 100755 keyboards/noxary/378/keymaps/via/keymap.c create mode 100644 keyboards/noxary/378/keymaps/via/rules.mk create mode 100644 keyboards/noxary/378/mcuconf.h create mode 100644 keyboards/noxary/378/readme.md create mode 100644 keyboards/noxary/378/rules.mk diff --git a/keyboards/noxary/378/378.c b/keyboards/noxary/378/378.c new file mode 100644 index 000000000000..10835509e3e1 --- /dev/null +++ b/keyboards/noxary/378/378.c @@ -0,0 +1,18 @@ +/* +Copyright 2015 Álvaro "Gondolindrim" Volpato + +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 "378.h" diff --git a/keyboards/noxary/378/378.h b/keyboards/noxary/378/378.h new file mode 100644 index 000000000000..db92f21d2fcc --- /dev/null +++ b/keyboards/noxary/378/378.h @@ -0,0 +1,36 @@ +/* +Copyright 2015 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3G, \ + K40, K41, K42, K43, K44, K48, K4C, K4E, K4F, K4G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___, K3G }, \ + { K40, K41, K42, K43, K44, ___, ___, ___, K48, ___, ___, ___, K4C, ___, K4E, K4F, K4G } \ +} diff --git a/keyboards/noxary/378/chconf.h b/keyboards/noxary/378/chconf.h new file mode 100644 index 000000000000..06279fc3872d --- /dev/null +++ b/keyboards/noxary/378/chconf.h @@ -0,0 +1,30 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/arctic/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next diff --git a/keyboards/noxary/378/config.h b/keyboards/noxary/378/config.h new file mode 100644 index 000000000000..a159af02fd36 --- /dev/null +++ b/keyboards/noxary/378/config.h @@ -0,0 +1,71 @@ +/* +Copyright 2015 Álvaro "Gondolindrim" Volpato + +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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4E58 //"NX" +#define PRODUCT_ID 0x017A // 378 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Noxary +#define PRODUCT Noxary 378 + + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { A7 , A3 , B9 , B8 , B7 , B6 , B5 , B4 , B3 , A15, A2 , A1 , A0 , F1 , F0 , C14 , C15 } +#define MATRIX_ROW_PINS { A10, B11, A4 , A5 , A6 } +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN A6 +//#define BACKLIGHT_PWM_DRIVER PWMD3 +//#define BACKLIGHT_PWM_CHANNEL 1 +//#define BACKLIGHT_PAL_MODE 1 +//#define BACKLIGHT_LEVELS 6 +//#define BACKLIGHT_BREATHING +//#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/noxary/378/keymaps/default/keymap.c b/keyboards/noxary/378/keymaps/default/keymap.c new file mode 100755 index 000000000000..d78d05be3631 --- /dev/null +++ b/keyboards/noxary/378/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_F1 , KC_F6 , 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_F2 , KC_F7 , 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_PSCR, + KC_F3 , KC_F8 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_HOME, KC_DEL , + KC_F4 , KC_F9 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_END , + KC_F5 , KC_F10 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT +) +}; diff --git a/keyboards/noxary/378/keymaps/via/keymap.c b/keyboards/noxary/378/keymaps/via/keymap.c new file mode 100755 index 000000000000..f8f4e4687f73 --- /dev/null +++ b/keyboards/noxary/378/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_F1 , KC_F6 , 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_F2 , KC_F7 , 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_PSCR, + KC_F3 , KC_F8 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_HOME, KC_DEL , + KC_F4 , KC_F9 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_END , + KC_F5 , KC_F10 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT +), + [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 +), + [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 +), + [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 +) +}; diff --git a/keyboards/noxary/378/keymaps/via/rules.mk b/keyboards/noxary/378/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/noxary/378/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/noxary/378/mcuconf.h b/keyboards/noxary/378/mcuconf.h new file mode 100644 index 000000000000..5b2f5ef867ad --- /dev/null +++ b/keyboards/noxary/378/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/arctic/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next diff --git a/keyboards/noxary/378/readme.md b/keyboards/noxary/378/readme.md new file mode 100644 index 000000000000..b309b3106580 --- /dev/null +++ b/keyboards/noxary/378/readme.md @@ -0,0 +1,15 @@ +# Noxary 378 + +![Noxary 378](https://cdn.shopify.com/s/files/1/0071/6377/3043/products/red.left.708_900x.png) + +A customizable 65% keyboard with ten macro keys + +* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) +* Hardware Supported: proprietary NX378PCB +* Hardware Availability: [Noxary](https://noxary.co/collections/378) + +Make example for this keyboard (after setting up your build environment): + + make noxary/378:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/noxary/378/rules.mk b/keyboards/noxary/378/rules.mk new file mode 100644 index 000000000000..d27facb7c488 --- /dev/null +++ b/keyboards/noxary/378/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From 6fd9b2feba920e9c7773e1f9c84244ac0d0f50c0 Mon Sep 17 00:00:00 2001 From: officereso <49379681+officereso@users.noreply.github.com> Date: Fri, 30 Jul 2021 00:56:27 -0500 Subject: [PATCH 110/328] [Docs] Added information on soldering diodes in parallel (#13117) Co-authored-by: Ryan --- docs/hand_wire.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hand_wire.md b/docs/hand_wire.md index 05d3af340b56..e79a80375ace 100644 --- a/docs/hand_wire.md +++ b/docs/hand_wire.md @@ -113,7 +113,7 @@ Don't hold the iron on the solder/joint longer than necessary. Heat will be cond #### Soldering the Diodes -Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. The input lead of the diode should be touching the left contact on the switch, and the bent, output end should be facing to the right and resting on the switch there, like this: +Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. Make sure the diodes are soldered in parallel (diode outputs shouldn't connect to diode inputs). The input lead of the diode should be touching the left contact on the switch, and the bent, output end should be facing to the right and resting on the switch there, like this: ![soldering-diodes-01.png](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/docs/hand_wire/soldering-diodes-01.png) From e1ce0d2836cb8428624861107806160b16c849d6 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 00:07:10 -0700 Subject: [PATCH 111/328] Clawsome Luggage Rack: correct keymap directory name (#13780) Rename `keyboards/clawsome/luggage_rack/keymap/` to `keyboards/clawsome/luggage_rack/keymaps/`. --- .../clawsome/luggage_rack/{keymap => keymaps}/default/keymap.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename keyboards/clawsome/luggage_rack/{keymap => keymaps}/default/keymap.c (100%) diff --git a/keyboards/clawsome/luggage_rack/keymap/default/keymap.c b/keyboards/clawsome/luggage_rack/keymaps/default/keymap.c similarity index 100% rename from keyboards/clawsome/luggage_rack/keymap/default/keymap.c rename to keyboards/clawsome/luggage_rack/keymaps/default/keymap.c From d93089d8eaffa4fc6d3c41fd513b005bc8ff6562 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 00:17:11 -0700 Subject: [PATCH 112/328] MNK1800s: fix Configurator key sequence (#13783) --- keyboards/mnk1800s/info.json | 90 +++++++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/keyboards/mnk1800s/info.json b/keyboards/mnk1800s/info.json index 8d67aea76b72..44ff75c031c0 100755 --- a/keyboards/mnk1800s/info.json +++ b/keyboards/mnk1800s/info.json @@ -6,7 +6,95 @@ "height": 5.25, "layouts": { "LAYOUT_all": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "y":0}, {"x":18.5, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4.5, "y":1, "w":1.5}, {"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":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1}, {"x":17, "y":1}, {"x":18, "y":1, "w":1.5}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4.5, "y":2, "w":1.75}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"x":11.25, "y":2}, {"x":12.25, "y":2}, {"x":13.25, "y":2}, {"x":14.25, "y":2}, {"x":15.25, "y":2}, {"x":16.25, "y":2}, {"x":17.25, "y":2, "w":2.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":5.5, "y":3, "w":1.25}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3}, {"x":14.75, "y":3}, {"x":15.75, "y":3}, {"x":16.75, "y":3, "w":1.75}, {"x":18.5, "y":3}, {"x":4.25, "y":3.25}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":6.5, "y":4, "w":1.5}, {"x":8, "y":4, "w":1.5}, {"x":9.5, "y":4, "w":7}, {"x":16.5, "y":4, "w":1.5}, {"x":18, "y":4, "w":1.5}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}] + "layout": [ + {"label":"Num Lock", "x":0, "y":0}, + {"label":"/", "x":1, "y":0}, + {"label":"*", "x":2, "y":0}, + {"label":"-", "x":3, "y":0}, + {"label":"Esc", "x":4.5, "y":0}, + {"label":"1", "x":5.5, "y":0}, + {"label":"2", "x":6.5, "y":0}, + {"label":"3", "x":7.5, "y":0}, + {"label":"4", "x":8.5, "y":0}, + {"label":"5", "x":9.5, "y":0}, + {"label":"6", "x":10.5, "y":0}, + {"label":"7", "x":11.5, "y":0}, + {"label":"8", "x":12.5, "y":0}, + {"label":"9", "x":13.5, "y":0}, + {"label":"0", "x":14.5, "y":0}, + {"label":"-", "x":15.5, "y":0}, + {"label":"=", "x":16.5, "y":0}, + {"label":"Backspace", "x":17.5, "y":0}, + {"label":"Delete", "x":18.5, "y":0}, + + {"label":"7", "x":0, "y":1}, + {"label":"8", "x":1, "y":1}, + {"label":"9", "x":2, "y":1}, + {"label":"+", "x":3, "y":1}, + {"label":"Tab", "x":4.5, "y":1, "w":1.5}, + {"label":"Q", "x":6, "y":1}, + {"label":"W", "x":7, "y":1}, + {"label":"E", "x":8, "y":1}, + {"label":"R", "x":9, "y":1}, + {"label":"T", "x":10, "y":1}, + {"label":"Y", "x":11, "y":1}, + {"label":"U", "x":12, "y":1}, + {"label":"I", "x":13, "y":1}, + {"label":"O", "x":14, "y":1}, + {"label":"P", "x":15, "y":1}, + {"label":"[", "x":16, "y":1}, + {"label":"]", "x":17, "y":1}, + {"label":"\\", "x":18, "y":1, "w":1.5}, + + {"label":"4", "x":0, "y":2}, + {"label":"5", "x":1, "y":2}, + {"label":"6", "x":2, "y":2}, + {"label":"Enter", "x":3, "y":2}, + {"label":"Ctrl", "x":4.5, "y":2, "w":1.75}, + {"label":"A", "x":6.25, "y":2}, + {"label":"S", "x":7.25, "y":2}, + {"label":"D", "x":8.25, "y":2}, + {"label":"F", "x":9.25, "y":2}, + {"label":"G", "x":10.25, "y":2}, + {"label":"H", "x":11.25, "y":2}, + {"label":"J", "x":12.25, "y":2}, + {"label":"K", "x":13.25, "y":2}, + {"label":"L", "x":14.25, "y":2}, + {"label":";", "x":15.25, "y":2}, + {"label":"'", "x":16.25, "y":2}, + {"label":"Enter", "x":17.25, "y":2, "w":2.25}, + + {"label":"1", "x":0, "y":3}, + {"label":"2", "x":1, "y":3}, + {"label":"3", "x":2, "y":3}, + {"label":"Enter", "x":3, "y":3}, + {"label":"Up", "x":4.25, "y":3.25}, + {"label":"Shift", "x":5.5, "y":3, "w":1.25}, + {"label":"Z", "x":6.75, "y":3}, + {"label":"X", "x":7.75, "y":3}, + {"label":"C", "x":8.75, "y":3}, + {"label":"V", "x":9.75, "y":3}, + {"label":"B", "x":10.75, "y":3}, + {"label":"N", "x":11.75, "y":3}, + {"label":"M", "x":12.75, "y":3}, + {"label":",", "x":13.75, "y":3}, + {"label":".", "x":14.75, "y":3}, + {"label":"/", "x":15.75, "y":3}, + {"label":"Shift", "x":16.75, "y":3, "w":1.75}, + {"label":"Fn", "x":18.5, "y":3}, + + {"label":"0", "x":0, "y":4}, + {"label":"0", "x":1, "y":4}, + {"label":".", "x":2, "y":4}, + {"label":"Left", "x":3.25, "y":4.25}, + {"label":"Down", "x":4.25, "y":4.25}, + {"label":"Right", "x":5.25, "y":4.25}, + {"label":"GUI", "x":6.5, "y":4, "w":1.5}, + {"label":"Alt", "x":8, "y":4, "w":1.5}, + {"label":"Space", "x":9.5, "y":4, "w":7}, + {"label":"Alt", "x":16.5, "y":4, "w":1.5}, + {"label":"Menu", "x":18, "y":4, "w":1.5} + ] } } } From 8b39a3c48470ff95ba358dcb36c3c2f3b8e5a70f Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 30 Jul 2021 23:47:34 +1000 Subject: [PATCH 113/328] `qmk docs`: Add flag to open in browser (#13788) * `qmk docs`: Add flag to open in browser * Add docs --- docs/cli_commands.md | 3 ++- lib/python/qmk/cli/docs.py | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/cli_commands.md b/docs/cli_commands.md index 581342093a99..4e27622c74b9 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -349,11 +349,12 @@ qmk cformat -b branch_name ## `qmk docs` This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936. +Use the `-b`/`--browser` flag to automatically open the local webserver in your default browser. **Usage**: ``` -qmk docs [-p PORT] +qmk docs [-b] [-p PORT] ``` ## `qmk generate-docs` diff --git a/lib/python/qmk/cli/docs.py b/lib/python/qmk/cli/docs.py index 581610650408..d8f9b045a12f 100644 --- a/lib/python/qmk/cli/docs.py +++ b/lib/python/qmk/cli/docs.py @@ -2,11 +2,13 @@ """ import http.server import os +import webbrowser from milc import cli @cli.argument('-p', '--port', default=8936, type=int, help='Port number to use.') +@cli.argument('-b', '--browser', action='store_true', help='Open the docs in the default browser.') @cli.subcommand('Run a local webserver for QMK documentation.', hidden=False if cli.config.user.developer else True) def docs(cli): """Spin up a local HTTPServer instance for the QMK docs. @@ -14,9 +16,12 @@ def docs(cli): os.chdir('docs') with http.server.HTTPServer(('', cli.config.docs.port), http.server.SimpleHTTPRequestHandler) as httpd: - cli.log.info("Serving QMK docs at http://localhost:%d/", cli.config.docs.port) + cli.log.info(f"Serving QMK docs at http://localhost:{cli.config.docs.port}/") cli.log.info("Press Control+C to exit.") + if cli.config.docs.browser: + webbrowser.open(f'http://localhost:{cli.config.docs.port}') + try: httpd.serve_forever() except KeyboardInterrupt: From f2d34f38be1e793068ab02d6a7942ca7a3a5188c Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 08:10:59 -0700 Subject: [PATCH 114/328] Nack: rename layout macro to LAYOUT_ortho_4x13 (#13784) --- keyboards/nack/info.json | 63 ++++++++++++++++++++++++++++++++++++++-- keyboards/nack/nack.h | 2 +- 2 files changed, 62 insertions(+), 3 deletions(-) diff --git a/keyboards/nack/info.json b/keyboards/nack/info.json index 47942c4f195e..2df08a85de67 100644 --- a/keyboards/nack/info.json +++ b/keyboards/nack/info.json @@ -4,9 +4,68 @@ "maintainer": "farfalleflickan", "width": 13, "height": 4, + "layout_aliases": { + "LAYOUT": "LAYOUT_ortho_4x13" + }, "layouts": { - "LAYOUT": { - "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"\u00c5", "x":11, "y":0}, {"label":"\u00a8", "x":12, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":"\u00d6", "x":10, "y":1}, {"label":"\u00c4", "x":11, "y":1}, {"label":"'", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"", "x":10, "y":2}, {"label":"↑", "x":11, "y":2}, {"label":"backsp", "x":12, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Super", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Fn", "x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"label":"Fn", "x":6, "y":3}, {"label":"", "x":7, "y":3}, {"label":"Alt Gr", "x":8, "y":3}, {"label":"Enter", "x":9, "y":3}, {"label":"←", "x":10, "y":3}, {"label":"↓", "x":11, "y":3}, {"label":"→", "x":12, "y":3}] + "LAYOUT_ortho_4x13": { + "layout": [ + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"Å", "x":11, "y":0}, + {"label":"¨", "x":12, "y":0}, + + {"label":"Esc", "x":0, "y":1}, + {"label":"A", "x":1, "y":1}, + {"label":"S", "x":2, "y":1}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1}, + {"label":"G", "x":5, "y":1}, + {"label":"H", "x":6, "y":1}, + {"label":"J", "x":7, "y":1}, + {"label":"K", "x":8, "y":1}, + {"label":"L", "x":9, "y":1}, + {"label":"Ö", "x":10, "y":1}, + {"label":"Ä", "x":11, "y":1}, + {"label":"'", "x":12, "y":1}, + + {"label":"Shift", "x":0, "y":2}, + {"label":"Z", "x":1, "y":2}, + {"label":"X", "x":2, "y":2}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2}, + {"label":"B", "x":5, "y":2}, + {"label":"N", "x":6, "y":2}, + {"label":"M", "x":7, "y":2}, + {"label":",", "x":8, "y":2}, + {"label":".", "x":9, "y":2}, + {"label":"-", "x":10, "y":2}, + {"label":"Up", "x":11, "y":2}, + {"label":"Backspace", "x":12, "y":2}, + + {"label":"Ctrl", "x":0, "y":3}, + {"label":"Alt", "x":1, "y":3}, + {"label":"GUI", "x":2, "y":3}, + {"label":"Fn1", "x":3, "y":3}, + {"label":"Space", "x":4, "y":3}, + {"label":"NoOp", "x":5, "y":3}, + {"label":"Fn2", "x":6, "y":3}, + {"label":"Alt Gr", "x":7, "y":3}, + {"label":"<", "x":8, "y":3}, + {"label":"Enter", "x":9, "y":3}, + {"label":"Left", "x":10, "y":3}, + {"label":"Down", "x":11, "y":3}, + {"label":"Right", "x":12, "y":3} + ] } } } diff --git a/keyboards/nack/nack.h b/keyboards/nack/nack.h index 6680e992eea8..b409d40df3db 100644 --- a/keyboards/nack/nack.h +++ b/keyboards/nack/nack.h @@ -17,7 +17,7 @@ #pragma once #include "quantum.h" -#define LAYOUT( \ +#define LAYOUT_ortho_4x13( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12,\ k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25,\ k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38,\ From 6823e03b0143ed839e594cd5e8d06872ba907a42 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 08:11:37 -0700 Subject: [PATCH 115/328] Ocean Sus Board: rename layout macro (#13785) - rename LAYOUT_ortho_3x4 to LAYOUT_ortho_4x3 - ... because ortho layouts in QMK are named by x instead of x --- keyboards/ocean/sus/info.json | 2 +- keyboards/ocean/sus/keymaps/default/keymap.c | 8 ++++---- keyboards/ocean/sus/keymaps/via/keymap.c | 8 ++++---- keyboards/ocean/sus/sus.h | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/ocean/sus/info.json b/keyboards/ocean/sus/info.json index 9bfad4239fa1..8cf2299d9e62 100644 --- a/keyboards/ocean/sus/info.json +++ b/keyboards/ocean/sus/info.json @@ -5,7 +5,7 @@ "width": 3, "height": 4, "layouts": { - "LAYOUT_ortho_3x4": { + "LAYOUT_ortho_4x3": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, diff --git a/keyboards/ocean/sus/keymaps/default/keymap.c b/keyboards/ocean/sus/keymaps/default/keymap.c index 166e84018e0e..9b18b6af2607 100644 --- a/keyboards/ocean/sus/keymaps/default/keymap.c +++ b/keyboards/ocean/sus/keymaps/default/keymap.c @@ -15,28 +15,28 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x4( + [0] = LAYOUT_ortho_4x3( KC_P7, KC_P8, KC_P9, KC_P4, KC_P5, KC_P6, KC_P1, KC_P2, KC_P3, KC_PENT, KC_P0, MO(1) ), - [1] = LAYOUT_ortho_3x4( + [1] = LAYOUT_ortho_4x3( 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_ortho_3x4( + [2] = LAYOUT_ortho_4x3( 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_ortho_3x4( + [3] = LAYOUT_ortho_4x3( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/ocean/sus/keymaps/via/keymap.c b/keyboards/ocean/sus/keymaps/via/keymap.c index 166e84018e0e..9b18b6af2607 100644 --- a/keyboards/ocean/sus/keymaps/via/keymap.c +++ b/keyboards/ocean/sus/keymaps/via/keymap.c @@ -15,28 +15,28 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x4( + [0] = LAYOUT_ortho_4x3( KC_P7, KC_P8, KC_P9, KC_P4, KC_P5, KC_P6, KC_P1, KC_P2, KC_P3, KC_PENT, KC_P0, MO(1) ), - [1] = LAYOUT_ortho_3x4( + [1] = LAYOUT_ortho_4x3( 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_ortho_3x4( + [2] = LAYOUT_ortho_4x3( 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_ortho_3x4( + [3] = LAYOUT_ortho_4x3( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/ocean/sus/sus.h b/keyboards/ocean/sus/sus.h index 394b003388db..cba5f3cbc8e7 100644 --- a/keyboards/ocean/sus/sus.h +++ b/keyboards/ocean/sus/sus.h @@ -17,7 +17,7 @@ #include "quantum.h" -#define LAYOUT_ortho_3x4(\ +#define LAYOUT_ortho_4x3(\ K00, K01, K02, \ K10, K11, K12, \ K20, K21, K22, \ From 77735b0a5601231dfbe19850960ff38674220473 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 08:12:36 -0700 Subject: [PATCH 116/328] Pearl Boards Pandora: correct layout macro reference in info.json (#13787) --- keyboards/pearlboards/pandora/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/pearlboards/pandora/info.json b/keyboards/pearlboards/pandora/info.json index 03b75b361728..722f57a1ba1b 100644 --- a/keyboards/pearlboards/pandora/info.json +++ b/keyboards/pearlboards/pandora/info.json @@ -5,7 +5,7 @@ "width": 15, "height": 5, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0}, {"label":"0,14", "x":14, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,12", "x":12.75, "y":2}, {"label":"2,13", "x":13.75, "y":2, "w":1.25}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,10", "x":10, "y":4, "w":1.25}, {"label":"4,11", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":12.5, "y":4, "w":1.25}, {"label":"4,13", "x":13.75, "y":4, "w":1.25}] } } From 1e2408af915b7e79749ae5f51134a1032ba70313 Mon Sep 17 00:00:00 2001 From: 8bits4ever <87928173+8bits4ever@users.noreply.github.com> Date: Fri, 30 Jul 2021 18:53:55 +0200 Subject: [PATCH 117/328] [Keyboard] Add Commodore Amiga 1200 Membrane Converter (#13705) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/converter/a1200/a1200.c | 16 +++++ keyboards/converter/a1200/a1200.h | 47 ++++++++++++++ keyboards/converter/a1200/config.h | 61 +++++++++++++++++++ keyboards/converter/a1200/info.json | 16 +++++ .../converter/a1200/keymaps/default/keymap.c | 39 ++++++++++++ keyboards/converter/a1200/readme.md | 34 +++++++++++ keyboards/converter/a1200/rules.mk | 22 +++++++ 7 files changed, 235 insertions(+) create mode 100644 keyboards/converter/a1200/a1200.c create mode 100644 keyboards/converter/a1200/a1200.h create mode 100644 keyboards/converter/a1200/config.h create mode 100644 keyboards/converter/a1200/info.json create mode 100644 keyboards/converter/a1200/keymaps/default/keymap.c create mode 100644 keyboards/converter/a1200/readme.md create mode 100644 keyboards/converter/a1200/rules.mk diff --git a/keyboards/converter/a1200/a1200.c b/keyboards/converter/a1200/a1200.c new file mode 100644 index 000000000000..5e7e40428738 --- /dev/null +++ b/keyboards/converter/a1200/a1200.c @@ -0,0 +1,16 @@ +/* Copyright 2021 8bits4ever + * + * 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 "a1200.h" diff --git a/keyboards/converter/a1200/a1200.h b/keyboards/converter/a1200/a1200.h new file mode 100644 index 000000000000..ae99809e0972 --- /dev/null +++ b/keyboards/converter/a1200/a1200.h @@ -0,0 +1,47 @@ +/* Copyright 2021 8bits4ever + * + * 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 _x_ KC_NO + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * The first section contains "names" for physical keys of the keyboard + * and defines their position on the board. + * The second section defines position of the keys on the switch matrix + * (where COLUMNS and ROWS crosses). */ + +#define LAYOUT( \ + K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, \ + \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N,K4O, K4P, K4Q, K4R, K4S, K4T, K4U, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3R, K3S, K3T, K3U, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K2O, K2P, K2Q, K2R, K2S, K2T, \ + K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1M, K0F, K0G, K0H, K1O, K1P, K1Q, K1R, \ + K0A, K0B, K0C, K0D, K0E, K0I, K0J \ +) \ +{ \ +/* "Q" */ { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K2O, K0F, K4P }, \ +/* "A" */ { K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K4P, K0H, K0B }, \ +/* "Z" */ { K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K4O, K0C, K4O, K0G, K0A }, \ +/* PAD */ { K4U, K2T, K3T, K2S, K1Q, K0J, K3S, K2R, K1P, K1R, K3R, K2Q, K1O, K0I, K3U, K1A }, \ +/* "1" */ { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K2P, K2A }, \ +/* 05 */ { _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, K1M }, \ +/* FN */ { K5A, K4R, K5B, K5C, K5D, K5E, K5F, K4S, K5G, K4T, K5H, K5I, K5J, K5K, K4Q, K0D }, \ +/* 07 */ { _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, K0E }, \ +} +/* A(15) B(16) C(17) D(18) E(19) F(20) G(21) H(22) I(23) J(24) K(25) L(26) M(27) N(28) O(29) P(30) */ diff --git a/keyboards/converter/a1200/config.h b/keyboards/converter/a1200/config.h new file mode 100644 index 000000000000..52771d70a242 --- /dev/null +++ b/keyboards/converter/a1200/config.h @@ -0,0 +1,61 @@ +/* +Copyright 2021 8bits4ever + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 8bits4ever +#define PRODUCT MiSS-1200 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +/* + * 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 { F0, F1, F2, F3, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { D2, D3, D4, D5, D6, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed (5 is default) */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN B6 + + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/converter/a1200/info.json b/keyboards/converter/a1200/info.json new file mode 100644 index 000000000000..f3df9c947dc4 --- /dev/null +++ b/keyboards/converter/a1200/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Amiga 1200 Keyboard", + "maintainer": "8bits4ever", + "width": 22.5, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, + {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"`", "x":13, "y":1.5}, {"label":"Backspace", "x":14, "y":1.5}, {"label":"Del", "x":15.25, "y":1.5, "w":1.5}, {"label":"Help", "x":16.75, "y":1.5, "w":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5}, + {"label":"CTRL", "x":0, "y":3.5}, {"label":"Caps Lock", "x":1, "y":3.5}, {"label":"A", "x":2, "y":3.5}, {"label":"S", "x":3, "y":3.5}, {"label":"D", "x":4, "y":3.5}, {"label":"F", "x":5, "y":3.5}, {"label":"G", "x":6, "y":3.5}, {"label":"H", "x":7, "y":3.5}, {"label":"J", "x":8, "y":3.5}, {"label":"K", "x":9, "y":3.5}, {"label":"L", "x":10, "y":3.5}, {"label":":", "x":11, "y":3.5}, {"label":"\"", "x":12, "y":3.5}, {"label":"~", "x":13, "y":3.5}, {"label":"Enter", "x":14, "y":2.5, "w":1, "h":2}, {"label":"\u2191", "x":16.25, "y":3.5}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"+", "x":21.5, "y":3.5}, + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2190", "x":15.25, "y":4.5}, {"label":"\u2193", "x":16.25, "y":4.5}, {"label":"\u2192", "x":17.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, + {"label":"alt", "x":1, "y":5.5, "w":1.5}, {"label":"Amiga", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Amiga", "x":11, "y":5.5, "w":1.5}, {"label":"Alt", "x":12.5, "y":5.5, "w":1.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}] + } + } +} diff --git a/keyboards/converter/a1200/keymaps/default/keymap.c b/keyboards/converter/a1200/keymaps/default/keymap.c new file mode 100644 index 000000000000..0b5713a2ec50 --- /dev/null +++ b/keyboards/converter/a1200/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2021 8bits4ever + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + + KC_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_BSLS, KC_BSPC, KC_DEL, MO(1), KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, + 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_P7, KC_P8, KC_P9, KC_PMNS, + KC_LCTL, 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_NO, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_P0, KC_PDOT + ), + + [1] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F11, KC_F12, + + 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_BSLS, KC_BSPC, KC_DEL, KC_TRNS, KC_NLCK, KC_SLCK, KC_PSLS, KC_PSCR, + 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_P7, KC_P8, KC_P9, KC_PMNS, + KC_LCTL, 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_NO, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_P0, KC_PDOT + ), +}; + diff --git a/keyboards/converter/a1200/readme.md b/keyboards/converter/a1200/readme.md new file mode 100644 index 000000000000..b2094c6a38b0 --- /dev/null +++ b/keyboards/converter/a1200/readme.md @@ -0,0 +1,34 @@ +# Amiga 1200 Keyboard Converter + +Modification of the Model-M 101 membrane adapter (converter/modelm101) to work with Amiga 1200 keyboard (and possibly Amiga 500/600 too). It would be very convenient to manufacture a small PCB adapter to make easier the task of connecting the keyboard membrane and the Teensy 2.0++ board. + +This adapter is meant to allow using the original Amiga keyboard as a USB input device, either with a desktop PC or a R-Pi/FPGA board hosted inside the Amiga case. + +Files have been modified in accordance to fit Amiga keyboard layout and features. A second layer has been implemented (momentary toggle "Help" key) to access unexistent keys (like F11 and F12). This is a work in progress. + + +Pins of the Teensy board you should use by default: +``` +Columns: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +Pins: D2 D3 D4 D5 D6 D7 E0 E1 C0 C1 C2 C3 C4 C5 C6 C7 +-------------------------------------------------------- +Rows: 1 2 3 4 5 6 7 8 +Pins: F0 F1 F2 F3 F4 F5 F6 F7 +-------------------------------------------------------- +Status LEDs: CapsLock +5V +Pins: B6 5V +``` + +Please note that some versions of Model M have LED connected with a ribbon cable, and not with separate wires. + +* Keyboard Maintainer: [8bits4ever](https://github.com/8bits4ever) +* Hardware Supported: Teensy 2.0++ board by PJRC +* Hardware Availability: https://www.pjrc.com/store/teensypp.html + +For first time flashing use the reset button on the Teensy board enter in bootloader mode. Once the board is flashed you can use "HELP"+"R" on the Amiga keyboard for the same purpose. + +Make example for this keyboard (after setting up your build environment): + + make converter/a1200:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/converter/a1200/rules.mk b/keyboards/converter/a1200/rules.mk new file mode 100644 index 000000000000..007e40f3b5df --- /dev/null +++ b/keyboards/converter/a1200/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = at90usb1286 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From cfca9707182aa832bb1c3aa2e93ce3cf749c63e9 Mon Sep 17 00:00:00 2001 From: Matthew Dias Date: Fri, 30 Jul 2021 12:01:43 -0500 Subject: [PATCH 118/328] [Keyboard] Add portal 66 (#13767) --- keyboards/portal_66/config.h | 109 ++++++ keyboards/portal_66/info.json | 312 ++++++++++++++++++ keyboards/portal_66/keymaps/default/keymap.c | 38 +++ keyboards/portal_66/keymaps/default/readme.md | 1 + keyboards/portal_66/keymaps/via/keymap.c | 54 +++ keyboards/portal_66/keymaps/via/rules.mk | 1 + keyboards/portal_66/portal_66.c | 17 + keyboards/portal_66/portal_66.h | 75 +++++ keyboards/portal_66/readme.md | 18 + keyboards/portal_66/rules.mk | 24 ++ 10 files changed, 649 insertions(+) create mode 100644 keyboards/portal_66/config.h create mode 100644 keyboards/portal_66/info.json create mode 100644 keyboards/portal_66/keymaps/default/keymap.c create mode 100644 keyboards/portal_66/keymaps/default/readme.md create mode 100644 keyboards/portal_66/keymaps/via/keymap.c create mode 100644 keyboards/portal_66/keymaps/via/rules.mk create mode 100644 keyboards/portal_66/portal_66.c create mode 100644 keyboards/portal_66/portal_66.h create mode 100644 keyboards/portal_66/readme.md create mode 100644 keyboards/portal_66/rules.mk diff --git a/keyboards/portal_66/config.h b/keyboards/portal_66/config.h new file mode 100644 index 000000000000..3a3efc80b5fd --- /dev/null +++ b/keyboards/portal_66/config.h @@ -0,0 +1,109 @@ +/* +Copyright 2021 Matthew Dias + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x504C +#define PRODUCT_ID 0x5066 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Parallel Limited +#define PRODUCT Portal 66 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * 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 { E6, B7, F7, F4, F5 } +#define MATRIX_COL_PINS { F6, B0, F1, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/portal_66/info.json b/keyboards/portal_66/info.json new file mode 100644 index 000000000000..20d7297ca34c --- /dev/null +++ b/keyboards/portal_66/info.json @@ -0,0 +1,312 @@ +{ + "keyboard_name": "Portal 66", + "maintainer": "matthewdias", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_ansi_split_bs": { + "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":12, "y":0 }, + { "x":13, "y":0 }, + { "x":14, "y":0 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4 }, + { "x":11, "y":4 }, + { "x":12, "y":4 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + }, + "LAYOUT_65_ansi": { + "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":12, "y":0 }, + { "x":13, "y":0, "w": 2 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4 }, + { "x":11, "y":4 }, + { "x":12, "y":4 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + }, + "LAYOUT_65_ansi_split_bs_2_right_mods": { + "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":12, "y":0 }, + { "x":13, "y":0 }, + { "x":14, "y":0 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4, "w":1.5 }, + { "x":11.5, "y":4, "w":1.5 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + }, + "LAYOUT_65_ansi_2_right_mods": { + "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":12, "y":0 }, + { "x":13, "y":0, "w": 2 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4, "w":1.5 }, + { "x":11.5, "y":4, "w":1.5 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + } + } +} diff --git a/keyboards/portal_66/keymaps/default/keymap.c b/keyboards/portal_66/keymaps/default/keymap.c new file mode 100644 index 000000000000..0269d577bf72 --- /dev/null +++ b/keyboards/portal_66/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2021 Matthew Dias + * + * 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 { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_65_ansi_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT_65_ansi_split_bs( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/portal_66/keymaps/default/readme.md b/keyboards/portal_66/keymaps/default/readme.md new file mode 100644 index 000000000000..5d87fc7fe062 --- /dev/null +++ b/keyboards/portal_66/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Portal 66 diff --git a/keyboards/portal_66/keymaps/via/keymap.c b/keyboards/portal_66/keymaps/via/keymap.c new file mode 100644 index 000000000000..59e038a54101 --- /dev/null +++ b/keyboards/portal_66/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2021 Matthew Dias + * + * 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 { + _L0, + _L1, + _L2, + _L3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_L0] = LAYOUT_65_ansi_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_L1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_L1] = LAYOUT_65_ansi_split_bs( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L2] = LAYOUT_65_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L3] = LAYOUT_65_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/portal_66/keymaps/via/rules.mk b/keyboards/portal_66/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/portal_66/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/portal_66/portal_66.c b/keyboards/portal_66/portal_66.c new file mode 100644 index 000000000000..a53989f94879 --- /dev/null +++ b/keyboards/portal_66/portal_66.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Matthew Dias + * + * 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 "portal_66.h" diff --git a/keyboards/portal_66/portal_66.h b/keyboards/portal_66/portal_66.h new file mode 100644 index 000000000000..5d3525ae4528 --- /dev/null +++ b/keyboards/portal_66/portal_66.h @@ -0,0 +1,75 @@ +/* Copyright 2021 Matthew Dias + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_65_ansi_split_bs( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k400, k401, k402, k406, k409, k410, k411, k412, k413, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ + { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, k410, k411, k412, k413, KC_NO, k415 } \ +} + +#define LAYOUT_65_ansi( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k400, k401, k402, k406, k409, k410, k411, k412, k413, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, KC_NO, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ + { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, k410, k411, k412, k413, KC_NO, k415 } \ +} + +#define LAYOUT_65_ansi_split_bs_2_right_mods( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k400, k401, k402, k406, k409, k411, k412, k413, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ + { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, KC_NO, k411, k412, k413, KC_NO, k415 } \ +} + +#define LAYOUT_65_ansi_2_right_mods( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k400, k401, k402, k406, k409, k411, k412, k413, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, KC_NO, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ + { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, KC_NO, k411, k412, k413, KC_NO, k415 } \ +} diff --git a/keyboards/portal_66/readme.md b/keyboards/portal_66/readme.md new file mode 100644 index 000000000000..b87945af3ba3 --- /dev/null +++ b/keyboards/portal_66/readme.md @@ -0,0 +1,18 @@ +# Portal 66 + +A 65% keyboard + +* Keyboard Maintainer: matthewdias +* Hardware Supported: Portal 66 + +To reset the keyboard into bootloader mode, press the reset switch on the underside. + +Make example for this keyboard (after setting up your build environment): + + make portal_66:default + +Flashing example for this keyboard: + + make portal_66: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). diff --git a/keyboards/portal_66/rules.mk b/keyboards/portal_66/rules.mk new file mode 100644 index 000000000000..f8a290cad533 --- /dev/null +++ b/keyboards/portal_66/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 65_ansi From d1db0087456e0cc7d20477feb22f434c3a4ce51d Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 31 Jul 2021 03:10:05 +1000 Subject: [PATCH 119/328] Onekey cleanup (#13786) --- .../handwired/onekey/blackpill_f401/chconf.h | 1 - .../handwired/onekey/blackpill_f401/config.h | 8 +++-- .../handwired/onekey/blackpill_f401/halconf.h | 1 - .../handwired/onekey/blackpill_f401/mcuconf.h | 1 + .../handwired/onekey/blackpill_f401/readme.md | 4 +-- .../handwired/onekey/blackpill_f401/rules.mk | 5 +-- .../handwired/onekey/blackpill_f411/chconf.h | 1 - .../handwired/onekey/blackpill_f411/config.h | 8 +++-- .../handwired/onekey/blackpill_f411/halconf.h | 1 - .../handwired/onekey/blackpill_f411/mcuconf.h | 1 + .../handwired/onekey/blackpill_f411/readme.md | 4 +-- .../handwired/onekey/blackpill_f411/rules.mk | 5 +-- .../onekey/blackpill_f411_tinyuf2/config.h | 8 +++-- .../onekey/blackpill_f411_tinyuf2/mcuconf.h | 1 + .../onekey/blackpill_f411_tinyuf2/readme.md | 6 ++-- .../onekey/blackpill_f411_tinyuf2/rules.mk | 5 +-- keyboards/handwired/onekey/bluepill/chconf.h | 1 - keyboards/handwired/onekey/bluepill/config.h | 8 +++-- keyboards/handwired/onekey/bluepill/halconf.h | 1 - keyboards/handwired/onekey/bluepill/mcuconf.h | 1 - keyboards/handwired/onekey/bluepill/readme.md | 2 +- keyboards/handwired/onekey/config.h | 32 +++++++++++-------- keyboards/handwired/onekey/elite_c/config.h | 2 ++ keyboards/handwired/onekey/elite_c/readme.md | 2 +- keyboards/handwired/onekey/elite_c/rules.mk | 7 ---- keyboards/handwired/onekey/info.json | 2 +- .../handwired/onekey/keymaps/console/keymap.c | 20 ++++++++++++ keyboards/handwired/onekey/onekey.c | 2 +- keyboards/handwired/onekey/promicro/config.h | 2 ++ keyboards/handwired/onekey/promicro/rules.mk | 7 ---- keyboards/handwired/onekey/proton_c/config.h | 10 +++--- keyboards/handwired/onekey/proton_c/readme.md | 2 +- keyboards/handwired/onekey/readme.md | 16 ++++++---- keyboards/handwired/onekey/rules.mk | 17 +++++----- .../handwired/onekey/stm32f0_disco/chconf.h | 1 - .../handwired/onekey/stm32f0_disco/config.h | 10 +++--- .../handwired/onekey/stm32f0_disco/halconf.h | 1 - .../handwired/onekey/stm32f0_disco/mcuconf.h | 1 - .../handwired/onekey/stm32f0_disco/readme.md | 2 +- keyboards/handwired/onekey/teensy_2/config.h | 2 ++ keyboards/handwired/onekey/teensy_2/readme.md | 2 +- keyboards/handwired/onekey/teensy_2/rules.mk | 7 ---- .../handwired/onekey/teensy_2pp/config.h | 2 ++ .../handwired/onekey/teensy_2pp/readme.md | 2 +- .../handwired/onekey/teensy_2pp/rules.mk | 7 ---- keyboards/handwired/onekey/teensy_32/chconf.h | 1 - keyboards/handwired/onekey/teensy_32/config.h | 2 ++ .../handwired/onekey/teensy_32/halconf.h | 1 - keyboards/handwired/onekey/teensy_lc/chconf.h | 1 - keyboards/handwired/onekey/teensy_lc/config.h | 2 ++ .../handwired/onekey/teensy_lc/halconf.h | 1 - 51 files changed, 121 insertions(+), 118 deletions(-) create mode 100644 keyboards/handwired/onekey/keymaps/console/keymap.c diff --git a/keyboards/handwired/onekey/blackpill_f401/chconf.h b/keyboards/handwired/onekey/blackpill_f401/chconf.h index de4ab83ec369..04ff4362aea6 100644 --- a/keyboards/handwired/onekey/blackpill_f401/chconf.h +++ b/keyboards/handwired/onekey/blackpill_f401/chconf.h @@ -36,4 +36,3 @@ #define CH_CFG_FACTORY_PIPES TRUE #include_next - diff --git a/keyboards/handwired/onekey/blackpill_f401/config.h b/keyboards/handwired/onekey/blackpill_f401/config.h index 829e84677f5f..3825d3f7ec48 100644 --- a/keyboards/handwired/onekey/blackpill_f401/config.h +++ b/keyboards/handwired/onekey/blackpill_f401/config.h @@ -18,13 +18,15 @@ #include "config_common.h" +#define PRODUCT Onekey Blackpill STM32F401 + #define MATRIX_COL_PINS { B0 } #define MATRIX_ROW_PINS { A7 } #define UNUSED_PINS -#define BACKLIGHT_PIN A0 -#define BACKLIGHT_PWM_DRIVER PWMD5 -#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PIN A0 +#define BACKLIGHT_PWM_DRIVER PWMD5 +#define BACKLIGHT_PWM_CHANNEL 1 #define RGB_DI_PIN A1 diff --git a/keyboards/handwired/onekey/blackpill_f401/halconf.h b/keyboards/handwired/onekey/blackpill_f401/halconf.h index 878879db1e28..020a7722f0d5 100644 --- a/keyboards/handwired/onekey/blackpill_f401/halconf.h +++ b/keyboards/handwired/onekey/blackpill_f401/halconf.h @@ -26,4 +26,3 @@ #define HAL_USE_PWM TRUE #include_next - diff --git a/keyboards/handwired/onekey/blackpill_f401/mcuconf.h b/keyboards/handwired/onekey/blackpill_f401/mcuconf.h index 034a022db4dc..e614a9dfa93f 100644 --- a/keyboards/handwired/onekey/blackpill_f401/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f401/mcuconf.h @@ -13,6 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #pragma once #include_next "mcuconf.h" diff --git a/keyboards/handwired/onekey/blackpill_f401/readme.md b/keyboards/handwired/onekey/blackpill_f401/readme.md index 18ed6a43e972..3971cdfa2d43 100644 --- a/keyboards/handwired/onekey/blackpill_f401/readme.md +++ b/keyboards/handwired/onekey/blackpill_f401/readme.md @@ -1,5 +1,5 @@ -# f401 blackpill onekey +# F401 Blackpill onekey -Supported Hardware: *STM32F401CCU6 WeAct v1.3*. +* Supported Hardware: STM32F401CCU6 WeAct v1.3 To trigger keypress, short together pins *B0* and *A7*. diff --git a/keyboards/handwired/onekey/blackpill_f401/rules.mk b/keyboards/handwired/onekey/blackpill_f401/rules.mk index 9b0a72afb9dd..264e71d0b5af 100644 --- a/keyboards/handwired/onekey/blackpill_f401/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f401/rules.mk @@ -4,7 +4,4 @@ MCU = STM32F401 # Bootloader selection BOOTLOADER = stm32-dfu -# Build Options -# change yes to no to disable -# -KEYBOARD_SHARED_EP = yes +KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/blackpill_f411/chconf.h b/keyboards/handwired/onekey/blackpill_f411/chconf.h index 4ecd0f52a277..8b55eaeef089 100644 --- a/keyboards/handwired/onekey/blackpill_f411/chconf.h +++ b/keyboards/handwired/onekey/blackpill_f411/chconf.h @@ -36,4 +36,3 @@ #define CH_CFG_FACTORY_PIPES TRUE #include_next - diff --git a/keyboards/handwired/onekey/blackpill_f411/config.h b/keyboards/handwired/onekey/blackpill_f411/config.h index 829e84677f5f..16e8f27924bd 100644 --- a/keyboards/handwired/onekey/blackpill_f411/config.h +++ b/keyboards/handwired/onekey/blackpill_f411/config.h @@ -18,13 +18,15 @@ #include "config_common.h" +#define PRODUCT Onekey Blackpill STM32F411 + #define MATRIX_COL_PINS { B0 } #define MATRIX_ROW_PINS { A7 } #define UNUSED_PINS -#define BACKLIGHT_PIN A0 -#define BACKLIGHT_PWM_DRIVER PWMD5 -#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PIN A0 +#define BACKLIGHT_PWM_DRIVER PWMD5 +#define BACKLIGHT_PWM_CHANNEL 1 #define RGB_DI_PIN A1 diff --git a/keyboards/handwired/onekey/blackpill_f411/halconf.h b/keyboards/handwired/onekey/blackpill_f411/halconf.h index d54f2a26acf6..4a0da20890c7 100644 --- a/keyboards/handwired/onekey/blackpill_f411/halconf.h +++ b/keyboards/handwired/onekey/blackpill_f411/halconf.h @@ -26,4 +26,3 @@ #define HAL_USE_PWM TRUE #include_next - diff --git a/keyboards/handwired/onekey/blackpill_f411/mcuconf.h b/keyboards/handwired/onekey/blackpill_f411/mcuconf.h index 034a022db4dc..e614a9dfa93f 100644 --- a/keyboards/handwired/onekey/blackpill_f411/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f411/mcuconf.h @@ -13,6 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #pragma once #include_next "mcuconf.h" diff --git a/keyboards/handwired/onekey/blackpill_f411/readme.md b/keyboards/handwired/onekey/blackpill_f411/readme.md index a1e1e3723312..e7eb6f285b60 100644 --- a/keyboards/handwired/onekey/blackpill_f411/readme.md +++ b/keyboards/handwired/onekey/blackpill_f411/readme.md @@ -1,5 +1,5 @@ -# f411 blackpill onekey +# F411 Blackpill onekey -Supported Hardware: *STM32F411CEU6 WeAct v1.3*. +* Supported Hardware: STM32F411CEU6 WeAct v1.3 To trigger keypress, short together pins *B0* and *A7*. diff --git a/keyboards/handwired/onekey/blackpill_f411/rules.mk b/keyboards/handwired/onekey/blackpill_f411/rules.mk index 3ded2a2587e9..75bc794ef0a9 100644 --- a/keyboards/handwired/onekey/blackpill_f411/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f411/rules.mk @@ -4,7 +4,4 @@ MCU = STM32F411 # Bootloader selection BOOTLOADER = stm32-dfu -# Build Options -# change yes to no to disable -# -KEYBOARD_SHARED_EP = yes +KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h index 95e99aacc159..44ec0bfc6e87 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h @@ -18,13 +18,15 @@ #include "config_common.h" +#define PRODUCT Onekey Blackpill STM32F411 TinyUF2 + #define MATRIX_COL_PINS { B0 } #define MATRIX_ROW_PINS { A7 } #define UNUSED_PINS -#define BACKLIGHT_PIN A0 -#define BACKLIGHT_PWM_DRIVER PWMD5 -#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PIN A0 +#define BACKLIGHT_PWM_DRIVER PWMD5 +#define BACKLIGHT_PWM_CHANNEL 1 #define RGB_DI_PIN A1 diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h index ad8aecdb1096..d003af03e568 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h @@ -13,6 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #pragma once #include_next "mcuconf.h" diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/readme.md b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/readme.md index ff43658f4cfa..c5ed1260b56b 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/readme.md +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/readme.md @@ -1,9 +1,9 @@ -# f411 blackpill onekey +# F411 Blackpill onekey -Supported Hardware: *STM32F411CEU6 WeAct v1.3*. +* Supported Hardware: STM32F411CEU6 WeAct v1.3 To trigger keypress, short together pins *B0* and *A7*. This variant requires the TinyUF2 bootloader to be installed. This can be downloaded from the [tinyuf2 releases page](https://github.com/adafruit/tinyuf2/releases). The F401 blackpill binary works for both F401- and F411-based blackpill devices. -Double-tap reset to enter bootloader mode. Copy the built uf2 file to the device by dragging the file to the new USB disk. \ No newline at end of file +Double-tap reset to enter bootloader mode. Copy the built uf2 file to the device by dragging the file to the new USB disk. diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk index 4d0b1591e2e2..70180ee790b5 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk @@ -4,7 +4,4 @@ MCU = STM32F411 # Bootloader selection BOOTLOADER = tinyuf2 -# Build Options -# change yes to no to disable -# -KEYBOARD_SHARED_EP = yes +KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/bluepill/chconf.h b/keyboards/handwired/onekey/bluepill/chconf.h index c7a982aedd00..63236f2c2c8c 100644 --- a/keyboards/handwired/onekey/bluepill/chconf.h +++ b/keyboards/handwired/onekey/bluepill/chconf.h @@ -26,4 +26,3 @@ #define CH_CFG_USE_CONDVARS_TIMEOUT FALSE #include_next - diff --git a/keyboards/handwired/onekey/bluepill/config.h b/keyboards/handwired/onekey/bluepill/config.h index c6166380cf26..3eb7699a8b7a 100644 --- a/keyboards/handwired/onekey/bluepill/config.h +++ b/keyboards/handwired/onekey/bluepill/config.h @@ -18,13 +18,15 @@ #include "config_common.h" +#define PRODUCT Onekey Bluepill STM32F103 + #define MATRIX_COL_PINS { B0 } #define MATRIX_ROW_PINS { A7 } #define UNUSED_PINS -#define BACKLIGHT_PIN A0 -#define BACKLIGHT_PWM_DRIVER PWMD2 -#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PIN A0 +#define BACKLIGHT_PWM_DRIVER PWMD2 +#define BACKLIGHT_PWM_CHANNEL 1 #define RGB_DI_PIN A1 diff --git a/keyboards/handwired/onekey/bluepill/halconf.h b/keyboards/handwired/onekey/bluepill/halconf.h index 956d50f26f9d..923b4e52d24d 100644 --- a/keyboards/handwired/onekey/bluepill/halconf.h +++ b/keyboards/handwired/onekey/bluepill/halconf.h @@ -24,4 +24,3 @@ #define HAL_USE_PWM TRUE #include_next - diff --git a/keyboards/handwired/onekey/bluepill/mcuconf.h b/keyboards/handwired/onekey/bluepill/mcuconf.h index 99525360b3b6..5e94a97e21e6 100644 --- a/keyboards/handwired/onekey/bluepill/mcuconf.h +++ b/keyboards/handwired/onekey/bluepill/mcuconf.h @@ -28,4 +28,3 @@ #undef STM32_SPI_USE_SPI2 #define STM32_SPI_USE_SPI2 FALSE - diff --git a/keyboards/handwired/onekey/bluepill/readme.md b/keyboards/handwired/onekey/bluepill/readme.md index 0bf1f5701c8f..8688e09b4a7c 100644 --- a/keyboards/handwired/onekey/bluepill/readme.md +++ b/keyboards/handwired/onekey/bluepill/readme.md @@ -1,3 +1,3 @@ -# bluepill onekey +# Bluepill onekey To trigger keypress, short together pins *B0* and *A7*. diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h index 4643da7cf832..950146a5d371 100644 --- a/keyboards/handwired/onekey/config.h +++ b/keyboards/handwired/onekey/config.h @@ -18,31 +18,31 @@ along with this program. If not, see . #pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6465 -#define DEVICE_VER 0x0001 -#define MANUFACTURER none -#define PRODUCT onekey +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6465 +#define DEVICE_VER 0x0001 +#define MANUFACTURER QMK /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 +/* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 -#define TAPPING_TERM 500 +/* 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 +#define TAPPING_TERM 500 + /* * Feature disable options * These options are also useful to firmware size reduction. @@ -58,5 +58,11 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/handwired/onekey/elite_c/config.h b/keyboards/handwired/onekey/elite_c/config.h index 02c81ce7439b..f495a1c38b21 100644 --- a/keyboards/handwired/onekey/elite_c/config.h +++ b/keyboards/handwired/onekey/elite_c/config.h @@ -18,6 +18,8 @@ #include "config_common.h" +#define PRODUCT Onekey Elite-C + #define MATRIX_COL_PINS { F4 } #define MATRIX_ROW_PINS { F5 } #define UNUSED_PINS diff --git a/keyboards/handwired/onekey/elite_c/readme.md b/keyboards/handwired/onekey/elite_c/readme.md index 28a0885bb3ef..5320d7b61987 100644 --- a/keyboards/handwired/onekey/elite_c/readme.md +++ b/keyboards/handwired/onekey/elite_c/readme.md @@ -1,3 +1,3 @@ # Elite-C onekey -To trigger keypress, short together pins *F4* and *F5* (marked on the PCB as *A3* and *A2*). +To trigger keypress, short together pins *F4* and *F5*. diff --git a/keyboards/handwired/onekey/elite_c/rules.mk b/keyboards/handwired/onekey/elite_c/rules.mk index 2f20507d4ddd..e8326bcf0998 100644 --- a/keyboards/handwired/onekey/elite_c/rules.mk +++ b/keyboards/handwired/onekey/elite_c/rules.mk @@ -2,11 +2,4 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index ac339ba197d9..641f2aa6f08d 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -7,7 +7,7 @@ "layouts": { "LAYOUT_ortho_1x1": { "layout": [ - {"x":0, "y":0} + {"x": 0, "y": 0} ] } } diff --git a/keyboards/handwired/onekey/keymaps/console/keymap.c b/keyboards/handwired/onekey/keymaps/console/keymap.c new file mode 100644 index 000000000000..ad8fd402ee0e --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/console/keymap.c @@ -0,0 +1,20 @@ +#include QMK_KEYBOARD_H + +enum custom_keycodes { + KC_HELLO = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ortho_1x1(KC_HELLO) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_HELLO: + if (record->event.pressed) { + printf("Hello world!\n"); + } + return false; + } + return true; +} diff --git a/keyboards/handwired/onekey/onekey.c b/keyboards/handwired/onekey/onekey.c index c79e0120ebe2..cbd67012ce6d 100644 --- a/keyboards/handwired/onekey/onekey.c +++ b/keyboards/handwired/onekey/onekey.c @@ -1 +1 @@ -#include "onekey.h" \ No newline at end of file +#include "onekey.h" diff --git a/keyboards/handwired/onekey/promicro/config.h b/keyboards/handwired/onekey/promicro/config.h index 02c81ce7439b..9c8961d5cade 100644 --- a/keyboards/handwired/onekey/promicro/config.h +++ b/keyboards/handwired/onekey/promicro/config.h @@ -18,6 +18,8 @@ #include "config_common.h" +#define PRODUCT Onekey Pro Micro + #define MATRIX_COL_PINS { F4 } #define MATRIX_ROW_PINS { F5 } #define UNUSED_PINS diff --git a/keyboards/handwired/onekey/promicro/rules.mk b/keyboards/handwired/onekey/promicro/rules.mk index e6fef517279c..cf663a7ed6aa 100644 --- a/keyboards/handwired/onekey/promicro/rules.mk +++ b/keyboards/handwired/onekey/promicro/rules.mk @@ -2,11 +2,4 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = caterina diff --git a/keyboards/handwired/onekey/proton_c/config.h b/keyboards/handwired/onekey/proton_c/config.h index a364bbee341f..5600ae33ae57 100644 --- a/keyboards/handwired/onekey/proton_c/config.h +++ b/keyboards/handwired/onekey/proton_c/config.h @@ -18,14 +18,16 @@ #include "config_common.h" +#define PRODUCT Onekey Proton-C + #define MATRIX_COL_PINS { A2 } #define MATRIX_ROW_PINS { A1 } #define UNUSED_PINS -#define BACKLIGHT_PIN B8 -#define BACKLIGHT_PWM_DRIVER PWMD4 -#define BACKLIGHT_PWM_CHANNEL 3 -#define BACKLIGHT_PAL_MODE 2 +#define BACKLIGHT_PIN B8 +#define BACKLIGHT_PWM_DRIVER PWMD4 +#define BACKLIGHT_PWM_CHANNEL 3 +#define BACKLIGHT_PAL_MODE 2 #define RGB_DI_PIN A0 #define RGB_CI_PIN B13 diff --git a/keyboards/handwired/onekey/proton_c/readme.md b/keyboards/handwired/onekey/proton_c/readme.md index be5a2871ca20..c8c21838ec93 100644 --- a/keyboards/handwired/onekey/proton_c/readme.md +++ b/keyboards/handwired/onekey/proton_c/readme.md @@ -1,3 +1,3 @@ -# Proton C onekey +# Proton-C onekey To trigger keypress, short together pins *A1* and *A2*. diff --git a/keyboards/handwired/onekey/readme.md b/keyboards/handwired/onekey/readme.md index 0e9d6a538aaf..b630b11748c3 100644 --- a/keyboards/handwired/onekey/readme.md +++ b/keyboards/handwired/onekey/readme.md @@ -1,15 +1,17 @@ -# onekey handwired +# onekey -Custom handwired one key keyboard. +Custom handwired one key keyboard. **See each individual board for pin information.** -Keyboard Maintainer: QMK Community -Hardware Supported: bluepill, Elite-C, Pro Micro, Proton C, Teensy 2.0, Teensy++ 2.0, Teensy LC, Teensy 3.2 -Hardware Availability: - -**See each individual board for pin infomation** +* Keyboard Maintainer: QMK Community +* Hardware Supported: bluepill, Elite-C, Pro Micro, Proton C, Teensy 2.0, Teensy++ 2.0, Teensy LC, Teensy 3.2 +* Hardware Availability: *n/a* Make example for this keyboard (after setting up your build environment): make handwired/onekey:default +Flashing example for this keyboard: + + make handwired/onekey: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). diff --git a/keyboards/handwired/onekey/rules.mk b/keyboards/handwired/onekey/rules.mk index df2ec1ecf449..d4676e44954d 100644 --- a/keyboards/handwired/onekey/rules.mk +++ b/keyboards/handwired/onekey/rules.mk @@ -1,21 +1,20 @@ # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output DEFAULT_FOLDER = handwired/onekey/promicro + LAYOUTS = ortho_1x1 diff --git a/keyboards/handwired/onekey/stm32f0_disco/chconf.h b/keyboards/handwired/onekey/stm32f0_disco/chconf.h index 33ceb1431ef6..1e497767d53e 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/chconf.h +++ b/keyboards/handwired/onekey/stm32f0_disco/chconf.h @@ -28,4 +28,3 @@ #define CH_CFG_USE_CONDVARS_TIMEOUT FALSE #include_next - diff --git a/keyboards/handwired/onekey/stm32f0_disco/config.h b/keyboards/handwired/onekey/stm32f0_disco/config.h index 0d6dd18fa22c..e0f6d00050d2 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/config.h +++ b/keyboards/handwired/onekey/stm32f0_disco/config.h @@ -18,14 +18,16 @@ #include "config_common.h" +#define PRODUCT Onekey STM32F072 Discovery + #define MATRIX_COL_PINS { B4 } #define MATRIX_ROW_PINS { B5 } #define UNUSED_PINS -#define BACKLIGHT_PIN C8 -#define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 -#define BACKLIGHT_PAL_MODE 0 +#define BACKLIGHT_PIN C8 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 3 +#define BACKLIGHT_PAL_MODE 0 #define RGB_DI_PIN B15 diff --git a/keyboards/handwired/onekey/stm32f0_disco/halconf.h b/keyboards/handwired/onekey/stm32f0_disco/halconf.h index cb7de673869f..78ed6586c844 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/halconf.h +++ b/keyboards/handwired/onekey/stm32f0_disco/halconf.h @@ -24,4 +24,3 @@ #define HAL_USE_PWM TRUE #include_next - diff --git a/keyboards/handwired/onekey/stm32f0_disco/mcuconf.h b/keyboards/handwired/onekey/stm32f0_disco/mcuconf.h index 52d39e4dd4a3..ea4f9373a0f7 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/mcuconf.h +++ b/keyboards/handwired/onekey/stm32f0_disco/mcuconf.h @@ -25,4 +25,3 @@ #undef STM32_PWM_USE_TIM3 #define STM32_PWM_USE_TIM3 TRUE - diff --git a/keyboards/handwired/onekey/stm32f0_disco/readme.md b/keyboards/handwired/onekey/stm32f0_disco/readme.md index 48d999d69c08..0f5c01984dbb 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/readme.md +++ b/keyboards/handwired/onekey/stm32f0_disco/readme.md @@ -1,5 +1,5 @@ # STM32F072 Discovery kit onekey -Supported Hardware: +* Supported Hardware: [STM32F072 Discovery](https://www.st.com/en/evaluation-tools/32f072bdiscovery.html) To trigger keypress, short together pins *B4* and *B5*. diff --git a/keyboards/handwired/onekey/teensy_2/config.h b/keyboards/handwired/onekey/teensy_2/config.h index 167373cd39b6..b83262ef0527 100644 --- a/keyboards/handwired/onekey/teensy_2/config.h +++ b/keyboards/handwired/onekey/teensy_2/config.h @@ -18,6 +18,8 @@ #include "config_common.h" +#define PRODUCT Onekey Teensy 2.0 + #define MATRIX_COL_PINS { F4 } #define MATRIX_ROW_PINS { F5 } #define UNUSED_PINS diff --git a/keyboards/handwired/onekey/teensy_2/readme.md b/keyboards/handwired/onekey/teensy_2/readme.md index 86a3114e56aa..bf4cf6d2fe7c 100644 --- a/keyboards/handwired/onekey/teensy_2/readme.md +++ b/keyboards/handwired/onekey/teensy_2/readme.md @@ -1,3 +1,3 @@ # Teensy 2.0 onekey -To trigger keypress, short together pins *F4* and *F5* +To trigger keypress, short together pins *F4* and *F5*. diff --git a/keyboards/handwired/onekey/teensy_2/rules.mk b/keyboards/handwired/onekey/teensy_2/rules.mk index ae398e2588c7..320633f80f33 100644 --- a/keyboards/handwired/onekey/teensy_2/rules.mk +++ b/keyboards/handwired/onekey/teensy_2/rules.mk @@ -2,11 +2,4 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = halfkay diff --git a/keyboards/handwired/onekey/teensy_2pp/config.h b/keyboards/handwired/onekey/teensy_2pp/config.h index 167373cd39b6..886ad70cbf90 100644 --- a/keyboards/handwired/onekey/teensy_2pp/config.h +++ b/keyboards/handwired/onekey/teensy_2pp/config.h @@ -18,6 +18,8 @@ #include "config_common.h" +#define PRODUCT Onekey Teensy 2++ + #define MATRIX_COL_PINS { F4 } #define MATRIX_ROW_PINS { F5 } #define UNUSED_PINS diff --git a/keyboards/handwired/onekey/teensy_2pp/readme.md b/keyboards/handwired/onekey/teensy_2pp/readme.md index 243b08df174e..c2c96d12cd78 100644 --- a/keyboards/handwired/onekey/teensy_2pp/readme.md +++ b/keyboards/handwired/onekey/teensy_2pp/readme.md @@ -1,3 +1,3 @@ # Teensy++ 2.0 onekey -To trigger keypress, short together pins *F4* and *F5* +To trigger keypress, short together pins *F4* and *F5*. diff --git a/keyboards/handwired/onekey/teensy_2pp/rules.mk b/keyboards/handwired/onekey/teensy_2pp/rules.mk index c421eb862e9c..149471682dfb 100644 --- a/keyboards/handwired/onekey/teensy_2pp/rules.mk +++ b/keyboards/handwired/onekey/teensy_2pp/rules.mk @@ -2,11 +2,4 @@ MCU = at90usb1286 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = halfkay diff --git a/keyboards/handwired/onekey/teensy_32/chconf.h b/keyboards/handwired/onekey/teensy_32/chconf.h index 199e8d05bd9d..b7b23f268cee 100644 --- a/keyboards/handwired/onekey/teensy_32/chconf.h +++ b/keyboards/handwired/onekey/teensy_32/chconf.h @@ -50,4 +50,3 @@ #define CH_DBG_FILL_THREADS TRUE #include_next - diff --git a/keyboards/handwired/onekey/teensy_32/config.h b/keyboards/handwired/onekey/teensy_32/config.h index a4839135a03c..180f324875dc 100644 --- a/keyboards/handwired/onekey/teensy_32/config.h +++ b/keyboards/handwired/onekey/teensy_32/config.h @@ -19,6 +19,8 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" +#define PRODUCT Onekey Teensy 3.2 + #define MATRIX_COL_PINS { D5 } #define MATRIX_ROW_PINS { B2 } #define UNUSED_PINS diff --git a/keyboards/handwired/onekey/teensy_32/halconf.h b/keyboards/handwired/onekey/teensy_32/halconf.h index e5019779c7ce..5c99dcbd9db3 100644 --- a/keyboards/handwired/onekey/teensy_32/halconf.h +++ b/keyboards/handwired/onekey/teensy_32/halconf.h @@ -24,4 +24,3 @@ #define HAL_USE_I2C TRUE #include_next - diff --git a/keyboards/handwired/onekey/teensy_lc/chconf.h b/keyboards/handwired/onekey/teensy_lc/chconf.h index cfcced3cf74f..03dc5f0c95fe 100644 --- a/keyboards/handwired/onekey/teensy_lc/chconf.h +++ b/keyboards/handwired/onekey/teensy_lc/chconf.h @@ -50,4 +50,3 @@ #define CH_DBG_FILL_THREADS TRUE #include_next - diff --git a/keyboards/handwired/onekey/teensy_lc/config.h b/keyboards/handwired/onekey/teensy_lc/config.h index a4839135a03c..ad30f969f5bc 100644 --- a/keyboards/handwired/onekey/teensy_lc/config.h +++ b/keyboards/handwired/onekey/teensy_lc/config.h @@ -19,6 +19,8 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" +#define PRODUCT Onekey Teensy LC + #define MATRIX_COL_PINS { D5 } #define MATRIX_ROW_PINS { B2 } #define UNUSED_PINS diff --git a/keyboards/handwired/onekey/teensy_lc/halconf.h b/keyboards/handwired/onekey/teensy_lc/halconf.h index bdf1ba4310e0..89e2bcbbee87 100644 --- a/keyboards/handwired/onekey/teensy_lc/halconf.h +++ b/keyboards/handwired/onekey/teensy_lc/halconf.h @@ -24,4 +24,3 @@ #define HAL_USE_I2C TRUE #include_next - From 6af2d3a32cab19d2d3fec99da79c98b0ad14bde0 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 11:16:18 -0700 Subject: [PATCH 120/328] X-Bows Ranger: rename LAYOUT to LAYOUT_tkl_ansi (#13795) --- keyboards/xbows/ranger/info.json | 5 ++++- keyboards/xbows/ranger/keymaps/default/keymap.c | 4 ++-- keyboards/xbows/ranger/keymaps/via/keymap.c | 8 ++++---- keyboards/xbows/ranger/ranger.h | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/keyboards/xbows/ranger/info.json b/keyboards/xbows/ranger/info.json index d0c7189cd9e5..c8526dc0965b 100644 --- a/keyboards/xbows/ranger/info.json +++ b/keyboards/xbows/ranger/info.json @@ -4,8 +4,11 @@ "maintainer": "xbows-qmk", "width": 18.25, "height": 6.5, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_ansi" + }, "layouts": { - "LAYOUT": { + "LAYOUT_tkl_ansi": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, diff --git a/keyboards/xbows/ranger/keymaps/default/keymap.c b/keyboards/xbows/ranger/keymaps/default/keymap.c index 63987bf764e6..27b0cf3f8b6e 100644 --- a/keyboards/xbows/ranger/keymaps/default/keymap.c +++ b/keyboards/xbows/ranger/keymaps/default/keymap.c @@ -32,14 +32,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | GUI |Alter| Space | Alter| Fn | menu | Ctrl | Left | Down |Right * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| */ - [0] = LAYOUT( + [0] = LAYOUT_tkl_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9,KC_F10,KC_F11,KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL, KC_BSPC , KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,KC_QUOT, KC_ENT , KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , KC_UP, KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT( + [1] = LAYOUT_tkl_ansi( RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EEP_RST, KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, 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/xbows/ranger/keymaps/via/keymap.c b/keyboards/xbows/ranger/keymaps/via/keymap.c index b99574d57216..e38c05861ad6 100644 --- a/keyboards/xbows/ranger/keymaps/via/keymap.c +++ b/keyboards/xbows/ranger/keymaps/via/keymap.c @@ -32,28 +32,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | GUI |Alter| Space | Alter | Fn | menu | Ctrl | Left | Down |Right * |---------------------------------------------------------------------------------------------------------------------------------------------------------------| */ - [0] = LAYOUT( + [0] = LAYOUT_tkl_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9,KC_F10,KC_F11,KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL, KC_BSPC , KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,KC_QUOT, KC_ENT , KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , KC_UP, KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT( + [1] = LAYOUT_tkl_ansi( RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EEP_RST, KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT), - [2] = LAYOUT( + [2] = LAYOUT_tkl_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + [3] = LAYOUT_tkl_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/xbows/ranger/ranger.h b/keyboards/xbows/ranger/ranger.h index 28da14646fc1..9fd2bf7148ea 100644 --- a/keyboards/xbows/ranger/ranger.h +++ b/keyboards/xbows/ranger/ranger.h @@ -15,7 +15,7 @@ */ #pragma once #include "quantum.h" -#define LAYOUT( \ +#define LAYOUT_tkl_ansi( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K313, K113, K114, K115, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K413, K213, K214, K215, \ From 069f479af48f45f941bdb8e7f6bb41adcf525a1a Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 11:16:37 -0700 Subject: [PATCH 121/328] Ristretto: fix Configurator layout data (#13791) --- keyboards/ristretto/info.json | 60 +++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 6 deletions(-) diff --git a/keyboards/ristretto/info.json b/keyboards/ristretto/info.json index 86a0172c1beb..3ede995a519d 100644 --- a/keyboards/ristretto/info.json +++ b/keyboards/ristretto/info.json @@ -2,16 +2,64 @@ "keyboard_name": "ristretto", "url": "https://www.fruitykeeb.xyz/product/ristretto", "maintainer": "Fruit", - "width": 13, + "width": 15, "height": 4, "layouts": { "LAYOUT": { "layout": [ - {"label":"ESC", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0} , {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"BKSP", "x":12, "y":0}, - {"label":"TAB", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1} , {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"'", "x":12, "y":2}, - {"label":"LSFT", "x":0, "y":2},{"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2} , {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":"<", "x":9, "y":2}, {"label":">", "x":10, "y":2}, {"label":"?", "x":11, "y":2}, {"label":"ENTR", "x":12, "y":2}, - {"label":"LCTL", "x":0, "y":3},{"label":"LGUI","x":1,"y":3},{"label":"LALT","x":2,"y":3},{"label":"" , "x":3, "y":3}, {"label":"" , "x":4, "y":3}, {"label":"" , "x":5, "y":3}, {"label":"Rotary", "x":6, "y":3}, {"label":"" , "x":7, "y":3}, {"label":"" , "x":8, "y":3}, {"label":"" , "x":9, "y":3}, {"label":"RALT","x":10,"y":3},{"label":"RGUI","x":11,"y":3}, {"label":"RCTL","x":12, "y":3} + {"label":"ESC", "x":0, "y":0.25}, + {"label":"Q", "x":1, "y":0.25}, + {"label":"W", "x":2, "y":0.25}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0.25}, + {"label":"T", "x":5, "y":0.25}, + {"label":"Y", "x":9, "y":0.25}, + {"label":"U", "x":10, "y":0.25}, + {"label":"I", "x":11, "y":0}, + {"label":"O", "x":12, "y":0.25}, + {"label":"P", "x":13, "y":0.25}, + {"label":"BKSP", "x":14, "y":0.25}, + + {"label":"TAB", "x":0, "y":1.25}, + {"label":"A", "x":1, "y":1.25}, + {"label":"S", "x":2, "y":1.25}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1.25}, + {"label":"G", "x":5, "y":1.25}, + {"label":"H", "x":9, "y":1.25}, + {"label":"J", "x":10, "y":1.25}, + {"label":"K", "x":11, "y":1}, + {"label":"L", "x":12, "y":1.25}, + {"label":";", "x":13, "y":1.25}, + {"label":"'", "x":14, "y":1.25}, + + {"label":"LSFT", "x":0, "y":2.25}, + {"label":"Z", "x":1, "y":2.25}, + {"label":"X", "x":2, "y":2.25}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2.25}, + {"label":"B", "x":5, "y":2.25}, + {"label":"N", "x":9, "y":2.25}, + {"label":"M", "x":10, "y":2.25}, + {"label":"<", "x":11, "y":2}, + {"label":">", "x":12, "y":2.25}, + {"label":"?", "x":13, "y":2.25}, + {"label":"ENTR", "x":14, "y":2.25}, + + {"label":"LCTL", "x":0, "y":3.25}, + {"label":"LGUI", "x":1, "y":3.25}, + {"label":"LALT", "x":2, "y":3.25}, + {"label":"LOWER", "x":3, "y":3, "h":1.25}, + {"label":"Enter", "x":4, "y":3.25}, + {"label":"SPACE", "x":5, "y":3.25, "w":1.5}, + {"label":"Rotary", "x":7, "y":3.25}, + {"label":"SPACE", "x":8.5, "y":3.25, "w":1.5}, + {"label":"SHIFT", "x":10, "y":3.25}, + {"label":"RAISE", "x":11, "y":3, "h":1.25}, + {"label":"RALT", "x":12, "y":3.25}, + {"label":"RGUI", "x":13, "y":3.25}, + {"label":"RCTL", "x":14, "y":3.25} ] } } -} \ No newline at end of file +} From 4758ea21886685eb3a5c90a789a2bdd74f87e4e1 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 11:16:59 -0700 Subject: [PATCH 122/328] Stratos: fix layout macro reference in info.json (#13792) - change LAYOUT_60_ansi_tsangan_hhkb to LAYOUT_60_tsangan_hhkb --- keyboards/stratos/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/stratos/info.json b/keyboards/stratos/info.json index 0d73a0dc8f92..50336cf1c12a 100644 --- a/keyboards/stratos/info.json +++ b/keyboards/stratos/info.json @@ -272,7 +272,7 @@ {"x":13.5, "y":4, "w":1.5} ] }, - "LAYOUT_60_ansi_tsangan_hhkb": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, From 57ad8db60e1bd34695a178a44d6efa9f2f853261 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 11:17:30 -0700 Subject: [PATCH 123/328] Tiger910: fix Left Control key size in info.json (#13793) --- keyboards/tiger910/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/tiger910/info.json b/keyboards/tiger910/info.json index 0701fbdd32cf..01a0ab425db9 100644 --- a/keyboards/tiger910/info.json +++ b/keyboards/tiger910/info.json @@ -64,7 +64,7 @@ {"label":"K3C (B3,D1)", "x":12.25, "y":3, "w":1.75}, {"label":"K3E (B3,D3)", "x":14, "y":3}, {"label":"K3F (B3,D4)", "x":15, "y":3}, - {"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.56}, + {"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.5}, {"label":"K41 (B4,B6)", "x":1.5, "y":4}, {"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.5}, {"label":"K46 (B4,C3)", "x":4, "y":4, "w":7}, From e180524c10a8d740dce193c8596af3957b4a9dd9 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 11:17:48 -0700 Subject: [PATCH 124/328] txuu: rename LAYOUT to LAYOUT_65_ansi_blocker_split_bs (#13794) Renames the layout macro to be more conformant to the rest of QMK. --- keyboards/txuu/info.json | 7 +++++-- keyboards/txuu/txuu.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/keyboards/txuu/info.json b/keyboards/txuu/info.json index 7225605f5e68..d3dd0a8c26e4 100644 --- a/keyboards/txuu/info.json +++ b/keyboards/txuu/info.json @@ -3,8 +3,11 @@ "maintainer": "matthewdias", "width": 16, "height": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker_split_bs" + }, "layouts": { - "LAYOUT": { + "LAYOUT_65_ansi_blocker_split_bs": { "layout": [ {"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, @@ -77,4 +80,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/txuu/txuu.h b/keyboards/txuu/txuu.h index 2de782c64bb6..6ba459804b92 100644 --- a/keyboards/txuu/txuu.h +++ b/keyboards/txuu/txuu.h @@ -21,7 +21,7 @@ along with this program. If not, see . #define XXX KC_NO -#define LAYOUT( \ +#define LAYOUT_65_ansi_blocker_split_bs( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ From aece9ad5fa17624bea32fc1ebb4cd4318f037df2 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 30 Jul 2021 11:44:50 -0700 Subject: [PATCH 125/328] Xelus Dharma: add info.json file (#13796) --- keyboards/xelus/dharma/info.json | 99 ++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 keyboards/xelus/dharma/info.json diff --git a/keyboards/xelus/dharma/info.json b/keyboards/xelus/dharma/info.json new file mode 100644 index 000000000000..1c9c3af169fd --- /dev/null +++ b/keyboards/xelus/dharma/info.json @@ -0,0 +1,99 @@ +{ + "keyboard_name": "Xelus Dharma", + "url": "", + "maintainer": "Xelus22", + "height": 5.25, + "width": 19.5, + "layouts": { + "LAYOUT_all": { + "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":"Backspace", "x":13, "y":0}, + {"label":"Delete", "x":14, "y":0}, + {"label":"Num Lock", "x":15.5, "y":0}, + {"label":"/", "x":16.5, "y":0}, + {"label":"*", "x":17.5, "y":0}, + {"label":"-", "x":18.5, "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":"7", "x":15.5, "y":1}, + {"label":"8", "x":16.5, "y":1}, + {"label":"9", "x":17.5, "y":1}, + {"label":"+", "x":18.5, "y":1}, + + {"label":"Caps Lock", "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":"4", "x":15.5, "y":2}, + {"label":"5", "x":16.5, "y":2}, + {"label":"6", "x":17.5, "y":2}, + {"label":"+", "x":18.5, "y":2}, + + {"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":"Up", "x":14.25, "y":3.25}, + {"label":"1", "x":15.5, "y":3}, + {"label":"2", "x":16.5, "y":3}, + {"label":"3", "x":17.5, "y":3}, + {"label":"Enter", "x":18.5, "y":3, "h":2}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "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.5}, + {"label":"Ctrl", "x":11.5, "y":4, "w":1.5}, + {"label":"Left", "x":13.25, "y":4.25}, + {"label":"Down", "x":14.25, "y":4.25}, + {"label":"Right", "x":15.25, "y":4.25}, + {"label":"0", "x":16.5, "y":4}, + {"label":".", "x":17.5, "y":4} + ] + } + } +} From 7bfe53ee2f3e85a4216502a3e67eb436ea30c860 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 31 Jul 2021 07:00:14 +1000 Subject: [PATCH 126/328] Fix onekey console keymap (#13797) --- keyboards/handwired/onekey/keymaps/console/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/handwired/onekey/keymaps/console/keymap.c b/keyboards/handwired/onekey/keymaps/console/keymap.c index ad8fd402ee0e..b47fb59d17e1 100644 --- a/keyboards/handwired/onekey/keymaps/console/keymap.c +++ b/keyboards/handwired/onekey/keymaps/console/keymap.c @@ -12,7 +12,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_HELLO: if (record->event.pressed) { - printf("Hello world!\n"); + println("Hello world!"); } return false; } From addb389a5e384f1db927610087c9258589b50f20 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 31 Jul 2021 00:15:11 +0100 Subject: [PATCH 127/328] Move ergosaurus via keymap to correct location (#13802) --- keyboards/ergosaurus/keymaps/{default => }/via/keymap.c | 0 keyboards/ergosaurus/keymaps/{default => }/via/rules.mk | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename keyboards/ergosaurus/keymaps/{default => }/via/keymap.c (100%) rename keyboards/ergosaurus/keymaps/{default => }/via/rules.mk (100%) diff --git a/keyboards/ergosaurus/keymaps/default/via/keymap.c b/keyboards/ergosaurus/keymaps/via/keymap.c similarity index 100% rename from keyboards/ergosaurus/keymaps/default/via/keymap.c rename to keyboards/ergosaurus/keymaps/via/keymap.c diff --git a/keyboards/ergosaurus/keymaps/default/via/rules.mk b/keyboards/ergosaurus/keymaps/via/rules.mk similarity index 100% rename from keyboards/ergosaurus/keymaps/default/via/rules.mk rename to keyboards/ergosaurus/keymaps/via/rules.mk From b459f314ec3e75d44aa6192bdbdf279041fe5c17 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 31 Jul 2021 09:21:45 +1000 Subject: [PATCH 128/328] Explicitly state that VIA should not be enabled in the default keymap. (#13803) --- docs/pr_checklist.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 9bfa79403d66..c8e27d5658ca 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -93,6 +93,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - default (and via) keymaps should be "pristine" - bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap - standard layouts preferred in these keymaps, if possible + - default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via` - submitters can have a personal (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board - Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards) From a4c050b5ae30bd21be4a4bad596f1275a6d16bfc Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 31 Jul 2021 10:34:14 +1000 Subject: [PATCH 129/328] Fix up paths for bioi boards - parallel compilation failures due to file collisions. (#13806) --- keyboards/bioi/g60/rules.mk | 6 +++--- keyboards/bioi/morgan65/rules.mk | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/bioi/g60/rules.mk b/keyboards/bioi/g60/rules.mk index a7e616d4d186..dc1a000f3349 100644 --- a/keyboards/bioi/g60/rules.mk +++ b/keyboards/bioi/g60/rules.mk @@ -7,9 +7,9 @@ F_CPU = 8000000 # Bootloader selection BOOTLOADER = qmk-dfu -SRC += ../usart.c \ - ../ble.c \ - ../main.c +SRC += usart.c \ + ble.c \ + main.c OPT_DEFS += -DPROTOCOL_BLE OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 diff --git a/keyboards/bioi/morgan65/rules.mk b/keyboards/bioi/morgan65/rules.mk index a7e616d4d186..dc1a000f3349 100644 --- a/keyboards/bioi/morgan65/rules.mk +++ b/keyboards/bioi/morgan65/rules.mk @@ -7,9 +7,9 @@ F_CPU = 8000000 # Bootloader selection BOOTLOADER = qmk-dfu -SRC += ../usart.c \ - ../ble.c \ - ../main.c +SRC += usart.c \ + ble.c \ + main.c OPT_DEFS += -DPROTOCOL_BLE OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 From ec2f6026b906b0d2aa19d2bf55f4aefa74f5149e Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 31 Jul 2021 02:47:00 -0700 Subject: [PATCH 130/328] Neito: correct key sequence in info.json (#13808) --- keyboards/neito/info.json | 449 ++++++++------------------------------ 1 file changed, 85 insertions(+), 364 deletions(-) diff --git a/keyboards/neito/info.json b/keyboards/neito/info.json index 92900051a192..7f13f3eaa8fe 100644 --- a/keyboards/neito/info.json +++ b/keyboards/neito/info.json @@ -1,365 +1,86 @@ { - "keyboard_name":"Neito", - "url":"olli.works", - "maintainer":"Oliver Granlund", - "width":20.69, - "height":14.755, - "layouts":{ - "LAYOUT":{ - "layout":[ - { - "label":"0,7", - "x":19.19, - "y":0 - }, - { - "label":"0,1", - "x":2.62, - "y":0.19 - }, - { - "label":"1,5", - "x":14.94, - "y":0.19 - }, - { - "label":"0,0", - "x":0.62, - "y":0.25 - }, - { - "label":"1,0", - "x":1.62, - "y":0.25 - }, - { - "label":"0,6", - "x":15.94, - "y":0.25 - }, - { - "label":"1,6", - "x":16.94, - "y":0.25, - "w":2 - }, - { - "label":"1,1", - "x":4, - "y":0.44 - }, - { - "label":"0,2", - "x":5, - "y":0.44 - }, - { - "label":"1,2", - "x":6, - "y":0.44 - }, - { - "label":"0,3", - "x":7, - "y":0.44 - }, - { - "label":"1,3", - "x":10.25, - "y":0.44 - }, - { - "label":"0,4", - "x":11.25, - "y":0.44 - }, - { - "label":"1,4", - "x":12.25, - "y":0.44 - }, - { - "label":"0,5", - "x":13.25, - "y":0.44 - }, - { - "label":"2,7", - "x":19.44, - "y":1 - }, - { - "label":"2,0", - "x":0.43, - "y":1.25, - "w":1.5 - }, - { - "label":"3,0", - "x":1.93, - "y":1.25 - }, - { - "label":"3,5", - "x":15.69, - "y":1.25 - }, - { - "label":"2,6", - "x":16.69, - "y":1.25 - }, - { - "label":"3,6", - "x":17.94, - "y":1.25, - "w":1.25, - "h":2 - }, - { - "label":"2,1", - "x":3.5, - "y":1.44 - }, - { - "label":"3,1", - "x":4.5, - "y":1.44 - }, - { - "label":"2,2", - "x":5.5, - "y":1.44 - }, - { - "label":"3,2", - "x":6.5, - "y":1.44 - }, - { - "label":"2,3", - "x":9.75, - "y":1.44 - }, - { - "label":"3,3", - "x":10.75, - "y":1.44 - }, - { - "label":"2,4", - "x":11.75, - "y":1.44 - }, - { - "label":"3,4", - "x":12.75, - "y":1.44 - }, - { - "label":"2,5", - "x":13.75, - "y":1.44 - }, - { - "label":"4,7", - "x":19.69, - "y":2.0 - }, - { - "label":"4,0", - "x":0.18, - "y":2.25, - "w":1.75 - }, - { - "label":"5,0", - "x":1.93, - "y":2.25 - }, - { - "label":"4,5", - "x":14.94, - "y":2.25 - }, - { - "label":"5,5", - "x":15.94, - "y":2.25 - }, - { - "label":"4,6", - "x":16.94, - "y":2.25 - }, - { - "label":"4,1", - "x":3.75, - "y":2.44 - }, - { - "label":"5,1", - "x":4.75, - "y":2.44 - }, - { - "label":"4,2", - "x":5.75, - "y":2.44 - }, - { - "label":"5,2", - "x":6.75, - "y":2.44 - }, - { - "label":"4,3", - "x":10, - "y":2.44 - }, - { - "label":"5,3", - "x":11, - "y":2.44 - }, - { - "label":"4,4", - "x":12, - "y":2.44 - }, - { - "label":"5,4", - "x":13, - "y":2.44 - }, - { - "label":"6,0", - "x":0, - "y":3.25, - "w":1.25 - }, - { - "label":"8,0", - "x":1.25, - "y":3.25 - }, - { - "label":"7,0", - "x":2.25, - "y":3.25 - }, - { - "label":"6,5", - "x":15.44, - "y":3.25 - }, - { - "label":"6,6", - "x":16.44, - "y":3.25, - "w":1.75 - }, - { - "label":"6,1", - "x":4.25, - "y":3.44 - }, - { - "label":"7,1", - "x":5.25, - "y":3.44 - }, - { - "label":"6,2", - "x":6.25, - "y":3.44 - }, - { - "label":"7,2", - "x":7.25, - "y":3.44 - }, - { - "label":"8,3", - "x":9.25, - "y":3.44 - }, - { - "label":"6,3", - "x":10.25, - "y":3.44 - }, - { - "label":"7,3", - "x":11.25, - "y":3.44 - }, - { - "label":"6,4", - "x":12.25, - "y":3.44 - }, - { - "label":"7,4", - "x":13.25, - "y":3.44 - }, - { - "label":"7,6", - "x":18.44, - "y":3.5 - }, - { - "label":"9,0", - "x":0, - "y":4.25, - "w":1.5 - }, - { - "label":"8,1", - "x":4.25, - "y":4.44, - "w":1.5 - }, - { - "label":"8,2", - "x":5.75, - "y":4.44, - "w":2 - }, - { - "label":"9,2", - "x":7.75, - "y":4.44 - }, - { - "label":"9,3", - "x":9.75, - "y":4.44, - "w":2.75 - }, - { - "label":"8,4", - "x":12.5, - "y":4.44, - "w":1.5 - }, - { - "label":"8,6", - "x":17.44, - "y":4.5 - }, - { - "label":"9,6", - "x":18.44, - "y":4.5 - }, - { - "label":"8,7", - "x":19.44, - "y":4.5 - } - ] - } - } -} \ No newline at end of file + "keyboard_name": "Neito", + "url": "olli.works", + "maintainer": "Oliver Granlund", + "width": 20.69, + "height": 14.755, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"0,0", "x":0.62, "y":0.25}, + {"label":"1,0", "x":1.62, "y":0.25}, + {"label":"0,1", "x":2.62, "y":0.19}, + {"label":"1,1", "x":4, "y":0.44}, + {"label":"0,2", "x":5, "y":0.44}, + {"label":"1,2", "x":6, "y":0.44}, + {"label":"0,3", "x":7, "y":0.44}, + {"label":"1,3", "x":10.25, "y":0.44}, + {"label":"0,4", "x":11.25, "y":0.44}, + {"label":"1,4", "x":12.25, "y":0.44}, + {"label":"0,5", "x":13.25, "y":0.44}, + {"label":"1,5", "x":14.94, "y":0.19}, + {"label":"0,6", "x":15.94, "y":0.25}, + {"label":"1,6", "x":16.94, "y":0.25, "w":2}, + {"label":"0,7", "x":19.19, "y":0}, + + + {"label":"2,0", "x":0.43, "y":1.25, "w":1.5}, + {"label":"3,0", "x":1.93, "y":1.25}, + {"label":"2,1", "x":3.5, "y":1.44}, + {"label":"3,1", "x":4.5, "y":1.44}, + {"label":"2,2", "x":5.5, "y":1.44}, + {"label":"3,2", "x":6.5, "y":1.44}, + {"label":"2,3", "x":9.75, "y":1.44}, + {"label":"3,3", "x":10.75, "y":1.44}, + {"label":"2,4", "x":11.75, "y":1.44}, + {"label":"3,4", "x":12.75, "y":1.44}, + {"label":"2,5", "x":13.75, "y":1.44}, + {"label":"3,5", "x":15.69, "y":1.25}, + {"label":"2,6", "x":16.69, "y":1.25}, + {"label":"3,6", "x":17.94, "y":1.25, "w":1.25, "h":2}, + {"label":"2,7", "x":19.44, "y":1}, + + {"label":"4,0", "x":0.18, "y":2.25, "w":1.75}, + {"label":"5,0", "x":1.93, "y":2.25}, + {"label":"4,1", "x":3.75, "y":2.44}, + {"label":"5,1", "x":4.75, "y":2.44}, + {"label":"4,2", "x":5.75, "y":2.44}, + {"label":"5,2", "x":6.75, "y":2.44}, + {"label":"4,3", "x":10, "y":2.44}, + {"label":"5,3", "x":11, "y":2.44}, + {"label":"4,4", "x":12, "y":2.44}, + {"label":"5,4", "x":13, "y":2.44}, + {"label":"4,5", "x":14.94, "y":2.25}, + {"label":"5,5", "x":15.94, "y":2.25}, + {"label":"4,6", "x":16.94, "y":2.25}, + {"label":"4,7", "x":19.69, "y":2.0}, + + {"label":"6,0", "x":0, "y":3.25, "w":1.25}, + {"label":"8,0", "x":1.25, "y":3.25}, + {"label":"7,0", "x":2.25, "y":3.25}, + {"label":"6,1", "x":4.25, "y":3.44}, + {"label":"7,1", "x":5.25, "y":3.44}, + {"label":"6,2", "x":6.25, "y":3.44}, + {"label":"7,2", "x":7.25, "y":3.44}, + {"label":"8,3", "x":9.25, "y":3.44}, + {"label":"6,3", "x":10.25, "y":3.44}, + {"label":"7,3", "x":11.25, "y":3.44}, + {"label":"6,4", "x":12.25, "y":3.44}, + {"label":"7,4", "x":13.25, "y":3.44}, + {"label":"6,5", "x":15.44, "y":3.25}, + {"label":"6,6", "x":16.44, "y":3.25, "w":1.75}, + {"label":"7,6", "x":18.44, "y":3.5}, + + {"label":"9,0", "x":0, "y":4.25, "w":1.5}, + {"label":"8,1", "x":4.25, "y":4.44, "w":1.5}, + {"label":"8,2", "x":5.75, "y":4.44, "w":2}, + {"label":"9,2", "x":7.75, "y":4.44}, + {"label":"9,3", "x":9.75, "y":4.44, "w":2.75}, + {"label":"8,4", "x":12.5, "y":4.44, "w":1.5}, + {"label":"8,6", "x":17.44, "y":4.5}, + {"label":"9,6", "x":18.44, "y":4.5}, + {"label":"8,7", "x":19.44, "y":4.5} + ] + } + } +} From fb6c66a14b3b7eb51381b938aa96dd56718d0e17 Mon Sep 17 00:00:00 2001 From: MakotoKurauchi Date: Sat, 31 Jul 2021 18:51:32 +0900 Subject: [PATCH 131/328] change DIP_SWITCH_ENABLE to off (#13815) --- keyboards/helix/rev3_4rows/rev3_4rows.c | 2 ++ keyboards/helix/rev3_4rows/rules.mk | 2 +- keyboards/helix/rev3_5rows/rev3_5rows.c | 2 ++ keyboards/helix/rev3_5rows/rules.mk | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/keyboards/helix/rev3_4rows/rev3_4rows.c b/keyboards/helix/rev3_4rows/rev3_4rows.c index c034c833819e..4477b39226ca 100644 --- a/keyboards/helix/rev3_4rows/rev3_4rows.c +++ b/keyboards/helix/rev3_4rows/rev3_4rows.c @@ -30,6 +30,7 @@ void set_mac_mode(bool macmode) { eeconfig_update_keymap(keymap_config.raw); } +#ifdef DIP_SWITCH_ENABLE void dip_switch_update_kb(uint8_t index, bool active) { switch (index) { case 0: @@ -44,3 +45,4 @@ void dip_switch_update_kb(uint8_t index, bool active) { break; } } +#endif diff --git a/keyboards/helix/rev3_4rows/rules.mk b/keyboards/helix/rev3_4rows/rules.mk index a5916c114d85..530d1d750eb5 100644 --- a/keyboards/helix/rev3_4rows/rules.mk +++ b/keyboards/helix/rev3_4rows/rules.mk @@ -5,7 +5,7 @@ RGB_MATRIX_ENABLE = no RGB_MATRIX_DRIVER = WS2812 OLED_DRIVER_ENABLE = yes ENCODER_ENABLE = yes -DIP_SWITCH_ENABLE = yes +DIP_SWITCH_ENABLE = no LTO_ENABLE = yes SRC += oled_display.c diff --git a/keyboards/helix/rev3_5rows/rev3_5rows.c b/keyboards/helix/rev3_5rows/rev3_5rows.c index c034c833819e..4477b39226ca 100644 --- a/keyboards/helix/rev3_5rows/rev3_5rows.c +++ b/keyboards/helix/rev3_5rows/rev3_5rows.c @@ -30,6 +30,7 @@ void set_mac_mode(bool macmode) { eeconfig_update_keymap(keymap_config.raw); } +#ifdef DIP_SWITCH_ENABLE void dip_switch_update_kb(uint8_t index, bool active) { switch (index) { case 0: @@ -44,3 +45,4 @@ void dip_switch_update_kb(uint8_t index, bool active) { break; } } +#endif diff --git a/keyboards/helix/rev3_5rows/rules.mk b/keyboards/helix/rev3_5rows/rules.mk index a5916c114d85..530d1d750eb5 100644 --- a/keyboards/helix/rev3_5rows/rules.mk +++ b/keyboards/helix/rev3_5rows/rules.mk @@ -5,7 +5,7 @@ RGB_MATRIX_ENABLE = no RGB_MATRIX_DRIVER = WS2812 OLED_DRIVER_ENABLE = yes ENCODER_ENABLE = yes -DIP_SWITCH_ENABLE = yes +DIP_SWITCH_ENABLE = no LTO_ENABLE = yes SRC += oled_display.c From e755c5fe1f92ad6f34088b457ce0d170f316a940 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 31 Jul 2021 06:09:47 -0700 Subject: [PATCH 132/328] [Keyboard] Fix RGBKB Pan Rev1 Encoder RGB handling (#13781) --- keyboards/rgbkb/pan/pan.c | 99 +++++++++++++++++++++++-------- keyboards/rgbkb/pan/rev1/rules.mk | 3 + 2 files changed, 76 insertions(+), 26 deletions(-) diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c index bc438f2d08d0..c367550e4967 100644 --- a/keyboards/rgbkb/pan/pan.c +++ b/keyboards/rgbkb/pan/pan.c @@ -1,24 +1,70 @@ - /* Copyright 2020 RGBKB - * - * 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 . - */ +/* Copyright 2020 RGBKB + * + * 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 "pan.h" #include "quantum.h" #include "rgb_matrix_types.h" - #if defined RGB_MATRIX_ENABLE +# if defined(KEYBOARD_rgbkb_pan_rev1) +# include "ws2812.h" + +// LED color buffer +LED_TYPE rgb_matrix_ws2812_array[DRIVER_LED_TOTAL]; + +static void init(void) {} + +static void flush(void) { + // Assumes use of RGB_DI_PIN + ws2812_setleds(rgb_matrix_ws2812_array, DRIVER_LED_TOTAL); +} + +// Set an led in the buffer to a color +static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) { +# if defined(RGB_ENCODERS) || defined(STAGGERED_RGB_ENCODERS) + if (i == 0 || i == 1) { // if encoder LEDs, change LEDs + rgb_matrix_ws2812_array[i].r = g; + rgb_matrix_ws2812_array[i].g = b; + rgb_matrix_ws2812_array[i].b = r; + } else +# endif + { + rgb_matrix_ws2812_array[i].r = r; + rgb_matrix_ws2812_array[i].g = g; + rgb_matrix_ws2812_array[i].b = b; + } +# ifdef RGBW + convert_rgb_to_rgbw(&rgb_matrix_ws2812_array[i]); +# endif +} + +static void setled_all(uint8_t r, uint8_t g, uint8_t b) { + for (int i = 0; i < sizeof(rgb_matrix_ws2812_array) / sizeof(rgb_matrix_ws2812_array[0]); i++) { + setled(i, r, g, b); + } +} + +const rgb_matrix_driver_t rgb_matrix_driver = { + .init = init, + .flush = flush, + .set_color = setled, + .set_color_all = setled_all, +}; +# endif + +// clang-format off led_config_t g_led_config = { { { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, { 0, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 }, @@ -26,14 +72,14 @@ { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40 }, { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED } }, { -#ifdef STAGGERED_RGB_ENCODERS +# ifdef STAGGERED_RGB_ENCODERS {0, -19},{228, -19}, {0, 0}, {14, 0}, {33, 0}, {52, 0}, {71, 0}, {90, 0}, {109, 0}, {128, 0}, {147, 0}, {166, 0}, {185, 0}, {204, 0}, {223, 0}, {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, {223, 57}, {204, 57}, {185, 57}, {171, 57}, {147, 57}, {128, 57}, {109, 57}, {90, 57}, {71, 57}, {52, 57}, {33, 57}, {14, 57}, {0, 57}, {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, -#elif defined RGB_ENCODERS +# elif defined RGB_ENCODERS {0, -19},{228, -19}, {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, @@ -41,48 +87,49 @@ {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, {0, 95},{19, 95}, //not used -#elif defined STAGGERED_LAYOUT +# elif defined STAGGERED_LAYOUT {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, {0, 0}, {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, {0, 0}, {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, {0, 95},{19, 95},//not used -#else +# else {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, {0, 0},{0, 0}, {0, 0},{0, 0},//not used -#endif +# endif }, { -#ifdef STAGGERED_RGB_ENCODERS +# ifdef STAGGERED_RGB_ENCODERS 1, 1, 1, 4, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -#elif defined RGB_ENCODERS +# elif defined RGB_ENCODERS 1, 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, 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, 1 -#elif defined STAGGERED_LAYOUT +# elif defined STAGGERED_LAYOUT 1, 4, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -#else +# else 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -#endif +# endif } }; +// clang-format on #endif diff --git a/keyboards/rgbkb/pan/rev1/rules.mk b/keyboards/rgbkb/pan/rev1/rules.mk index 4d3c0f6679a0..667c29005929 100644 --- a/keyboards/rgbkb/pan/rev1/rules.mk +++ b/keyboards/rgbkb/pan/rev1/rules.mk @@ -1,2 +1,5 @@ # The default configuration is a atmega32a DEFAULT_FOLDER = rgbkb/pan/rev1/32a + +RGB_MATRIX_DRIVER = custom +WS2812_DRIVER_REQUIRED := yes From 56200de2ebb237e61e30c5a454e3118a07c594ed Mon Sep 17 00:00:00 2001 From: Jay Greco Date: Sat, 31 Jul 2021 06:11:11 -0700 Subject: [PATCH 133/328] [Keyboard] Reduce nibble oled_status keymap size (#13813) --- .../nibble/keymaps/oled_status/oled_display.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_status/oled_display.c b/keyboards/nullbitsco/nibble/keymaps/oled_status/oled_display.c index 1b132a9e62f6..c734e80cefea 100644 --- a/keyboards/nullbitsco/nibble/keymaps/oled_status/oled_display.c +++ b/keyboards/nullbitsco/nibble/keymaps/oled_status/oled_display.c @@ -13,7 +13,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include #include "quantum.h" #include "oled_display.h" @@ -62,11 +61,14 @@ void process_record_keymap_oled(uint16_t keycode) { } void render_wpm(void) { - char wpm_str[10]; - - sprintf(wpm_str, "%03d", get_current_wpm()); + uint8_t n = get_current_wpm(); + char wpm_counter[4]; + wpm_counter[3] = '\0'; + wpm_counter[2] = '0' + n % 10; + wpm_counter[1] = '0' + (n /= 10) % 10; + wpm_counter[0] = '0' + n / 10 ; oled_write_P(PSTR(" "), false); - oled_write(wpm_str, false); + oled_write(wpm_counter, false); } void render_idle(void) { From d191ccfdc5c18bb390da03c007c85083e9863499 Mon Sep 17 00:00:00 2001 From: peott-fr <70998091+peott-fr@users.noreply.github.com> Date: Sat, 31 Jul 2021 06:14:56 -0700 Subject: [PATCH 134/328] [Keymap] Add peott-fr Kinesis keymap (#13812) --- keyboards/kinesis/keymaps/peott-fr/keymap.c | 28 +++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 keyboards/kinesis/keymaps/peott-fr/keymap.c diff --git a/keyboards/kinesis/keymaps/peott-fr/keymap.c b/keyboards/kinesis/keymaps/peott-fr/keymap.c new file mode 100644 index 000000000000..e813f070d088 --- /dev/null +++ b/keyboards/kinesis/keymaps/peott-fr/keymap.c @@ -0,0 +1,28 @@ +/* + * 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 + +/* THIS FILE WAS GENERATED! + * + * This file was generated by qmk json2c. You may or may not want to + * edit it directly. + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, LGUI_T(KC_MPLY), LALT_T(KC_MNXT), KC_GRV, KC_BSLS, KC_LBRC, KC_RBRC, KC_HOME, LT(1,KC_SPC), KC_DEL, KC_END, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(3), KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RALT, KC_APP, KC_PGUP, KC_PGDN, KC_ENT, LT(2,KC_BSPC)), + [1] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_LBRC, KC_UP, KC_RBRC, KC_LPRN, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_RPRN, KC_TRNS, KC_CALC, KC_MYCM, KC_TRNS, KC_ENT, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_NO, KC_NO, KC_P0, KC_PDOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO) +}; From 56f84774d7c8faa31a38dc7c6d71e2eb72be5320 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 31 Jul 2021 06:22:12 -0700 Subject: [PATCH 135/328] Rartland: add 65_ansi and 65_iso layouts (#13807) * add 65_ansi and 65_iso layouts ... with Community Layout support * add block comment of layouts to rartland.h --- keyboards/rart/rartland/info.json | 153 +++++++++++++++++++++++++++++ keyboards/rart/rartland/rartland.h | 56 +++++++++++ keyboards/rart/rartland/rules.mk | 11 ++- 3 files changed, 215 insertions(+), 5 deletions(-) diff --git a/keyboards/rart/rartland/info.json b/keyboards/rart/rartland/info.json index 697c36dc1a3b..2c4524964e24 100644 --- a/keyboards/rart/rartland/info.json +++ b/keyboards/rart/rartland/info.json @@ -81,6 +81,159 @@ {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + }, + "LAYOUT_65_ansi": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] } } } diff --git a/keyboards/rart/rartland/rartland.h b/keyboards/rart/rartland/rartland.h index a871c66b4412..5abfab87adf8 100644 --- a/keyboards/rart/rartland/rartland.h +++ b/keyboards/rart/rartland/rartland.h @@ -17,6 +17,34 @@ #include "quantum.h" +#define XXX KC_NO + +/* + * ┌────────┐ + * 2u Backspace │0D │ + * └────────┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │4D │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2D │4C │ │ │ ISO + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │4B │ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │4A │ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + * └────────────────(a)──────────────────┘└────(b)────┘ + * + * (a) 1.5 / 1.5 / 7 (b) + * ┌─────┬─────┬───────────────────────────┐ ┌─────┬─────┐ + * │40 │41 │43 │ │44 │46 │ 1.5 / 1.5 + * └─────┴─────┴───────────────────────────┘ └─────┴─────┘ + * ┌────┬────┐ + * │44 │45 │ 1.25 / 1.25 (0.5u gap) + * └────┴────┘ + */ + #define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K4D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, K4C, \ @@ -30,3 +58,31 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D } \ } + +#define LAYOUT_65_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, K4C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4B, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K4A, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49 \ +) { \ + { 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, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D } \ +} + +#define LAYOUT_65_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K4C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K4B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K4A, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49 \ +) { \ + { 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, XXX }, \ + { 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, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/rart/rartland/rules.mk b/keyboards/rart/rartland/rules.mk index 57d8e6a99628..fa3dd5338c28 100644 --- a/keyboards/rart/rartland/rules.mk +++ b/keyboards/rart/rartland/rules.mk @@ -10,11 +10,11 @@ BOOTLOADER = USBasp # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work @@ -25,5 +25,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes OLED_DRIVER_ENABLE = yes -ENCODER_ENABLE = yes +ENCODER_ENABLE = yes +LAYOUTS = 65_ansi 65_iso From 4604b58769f3107253e863ed6f343d8190a5ea27 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 31 Jul 2021 06:23:27 -0700 Subject: [PATCH 136/328] Charue Sunsetter: layout macro fixes (#13809) * remove K214 from LAYOUT_1065_ansi macro Position K214 is only used by the ISO layout (as KC_NUHS); it doesn't get used here. Removing it so the layout macro matches the info.json layout data. Also updates info.json to use human-friendly formatting. * add layout macros Adds: - LAYOUT_1065_ansi_split_bs macro - LAYOUT_1065_iso macro - LAYOUT_1065_iso_split_bs macro - `default_iso` keymap * add LAYOUT_all macro Adds LAYOUT_all macro and a `default_all` keymap. This PCB is unusual in that the ANSI Backslash and ANSI Enter do not share their matrix positions with the Non-US Backslash or ISO Enter keys at all. This layout macro supports both the ANSI and ISO positions in one macro/keymap. --- keyboards/charue/sunsetter/info.json | 431 +++++++++++++++++- .../charue/sunsetter/keymaps/default/keymap.c | 10 +- .../sunsetter/keymaps/default_all/keymap.c | 26 ++ .../sunsetter/keymaps/default_iso/keymap.c | 26 ++ .../charue/sunsetter/keymaps/via/keymap.c | 40 +- keyboards/charue/sunsetter/sunsetter.h | 90 +++- 6 files changed, 591 insertions(+), 32 deletions(-) create mode 100644 keyboards/charue/sunsetter/keymaps/default_all/keymap.c create mode 100644 keyboards/charue/sunsetter/keymaps/default_iso/keymap.c diff --git a/keyboards/charue/sunsetter/info.json b/keyboards/charue/sunsetter/info.json index cd9c2a01dbf5..8f4220cb0d8d 100644 --- a/keyboards/charue/sunsetter/info.json +++ b/keyboards/charue/sunsetter/info.json @@ -5,8 +5,437 @@ "width": 18.25, "height": 5, "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0}, + {"label":"Backspace", "x":16.25, "y":0}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"|", "x":15.75, "y":1, "w":1.5}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"~", "x":18.5, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":2.25}, + {"label":"Enter", "x":19.5, "y":1, "w":1.25, "h":2}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"|", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"2.25", "x":6, "y":4, "w":2.25}, + {"label":"1.25", "x":8.25, "y":4, "w":1.25}, + {"label":"2.75", "x":9.5, "y":4, "w":2.75}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"Win", "x":13.25, "y":4}, + {"label":"Ctrl", "x":14.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] + }, "LAYOUT_1065_ansi": { - "layout": [{"label":"F1", "x":0, "y":0}, {"label":"F2", "x":1, "y":0}, {"label":"~", "x":2.25, "y":0}, {"label":"!", "x":3.25, "y":0}, {"label":"@", "x":4.25, "y":0}, {"label":"#", "x":5.25, "y":0}, {"label":"$", "x":6.25, "y":0}, {"label":"%", "x":7.25, "y":0}, {"label":"^", "x":8.25, "y":0}, {"label":"&", "x":9.25, "y":0}, {"label":"*", "x":10.25, "y":0}, {"label":"(", "x":11.25, "y":0}, {"label":")", "x":12.25, "y":0}, {"label":"_", "x":13.25, "y":0}, {"label":"+", "x":14.25, "y":0}, {"label":"Backspace", "x":15.25, "y":0, "w":2}, {"label":"", "x":17.25, "y":0}, {"label":"F3", "x":0, "y":1}, {"label":"F4", "x":1, "y":1}, {"label":"Tab", "x":2.25, "y":1, "w":1.5}, {"label":"Q", "x":3.75, "y":1}, {"label":"W", "x":4.75, "y":1}, {"label":"E", "x":5.75, "y":1}, {"label":"R", "x":6.75, "y":1}, {"label":"T", "x":7.75, "y":1}, {"label":"Y", "x":8.75, "y":1}, {"label":"U", "x":9.75, "y":1}, {"label":"I", "x":10.75, "y":1}, {"label":"O", "x":11.75, "y":1}, {"label":"P", "x":12.75, "y":1}, {"label":"{", "x":13.75, "y":1}, {"label":"}", "x":14.75, "y":1}, {"label":"|", "x":15.75, "y":1, "w":1.5}, {"label":"", "x":17.25, "y":1}, {"label":"F5", "x":0, "y":2}, {"label":"F6", "x":1, "y":2}, {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, {"label":"A", "x":4, "y":2}, {"label":"S", "x":5, "y":2}, {"label":"D", "x":6, "y":2}, {"label":"F", "x":7, "y":2}, {"label":"G", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":":", "x":13, "y":2}, {"label":"\"", "x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":2.25}, {"label":"", "x":17.25, "y":2}, {"label":"F7", "x":0, "y":3}, {"label":"F8", "x":1, "y":3}, {"label":"Shift", "x":2.25, "y":3, "w":2.25}, {"label":"Z", "x":4.5, "y":3}, {"label":"X", "x":5.5, "y":3}, {"label":"C", "x":6.5, "y":3}, {"label":"V", "x":7.5, "y":3}, {"label":"B", "x":8.5, "y":3}, {"label":"N", "x":9.5, "y":3}, {"label":"M", "x":10.5, "y":3}, {"label":"<", "x":11.5, "y":3}, {"label":">", "x":12.5, "y":3}, {"label":"?", "x":13.5, "y":3}, {"label":"Shift", "x":14.5, "y":3, "w":1.75}, {"label":"", "x":16.25, "y":3}, {"label":"", "x":17.25, "y":3}, {"label":"F9/11", "x":0, "y":4}, {"label":"F10/12", "x":1, "y":4}, {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, {"label":"Win", "x":3.5, "y":4, "w":1.25}, {"label":"Alt", "x":4.75, "y":4, "w":1.25}, {"label":"6.25", "x":6, "y":4, "w":6.25}, {"label":"Fn", "x":12.25, "y":4}, {"label":"", "x":15.25, "y":4}, {"label":"", "x":16.25, "y":4}, {"label":"", "x":17.25, "y":4}] + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0, "w":2}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"|", "x":15.75, "y":1, "w":1.5}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":2.25}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":2.25}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"6.25", "x":6, "y":4, "w":6.25}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] + }, + "LAYOUT_1065_ansi_split_bs": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0}, + {"label":"Backspace", "x":16.25, "y":0}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"|", "x":15.75, "y":1, "w":1.5}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":2.25}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":2.25}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"6.25", "x":6, "y":4, "w":6.25}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] + }, + "LAYOUT_1065_iso": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0, "w":2}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"~", "x":15, "y":2}, + {"label":"Enter", "x":16, "y":1, "w":1.25, "h":2}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"|", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"6.25", "x":6, "y":4, "w":6.25}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] + }, + "LAYOUT_1065_iso_split_bs": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0}, + {"label":"Backspace", "x":16.25, "y":0}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"~", "x":15, "y":2}, + {"label":"Enter", "x":16, "y":1, "w":1.25, "h":2}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"|", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"6.25", "x":6, "y":4, "w":6.25}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] } } } diff --git a/keyboards/charue/sunsetter/keymaps/default/keymap.c b/keyboards/charue/sunsetter/keymaps/default/keymap.c index 1af121ea2ea2..01cf15282f89 100755 --- a/keyboards/charue/sunsetter/keymaps/default/keymap.c +++ b/keyboards/charue/sunsetter/keymaps/default/keymap.c @@ -18,9 +18,9 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_1065_ansi( - KC_F1, KC_F2, 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_VOLU, - KC_F3, KC_F4, 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_VOLD, - KC_F5, KC_F6, 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_ENT , KC_MUTE, - KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, - KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + KC_F1, KC_F2, 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_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), }; diff --git a/keyboards/charue/sunsetter/keymaps/default_all/keymap.c b/keyboards/charue/sunsetter/keymaps/default_all/keymap.c new file mode 100644 index 000000000000..99ac800734c6 --- /dev/null +++ b/keyboards/charue/sunsetter/keymaps/default_all/keymap.c @@ -0,0 +1,26 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_F1, KC_F2, 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_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_ENT , KC_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +}; diff --git a/keyboards/charue/sunsetter/keymaps/default_iso/keymap.c b/keyboards/charue/sunsetter/keymaps/default_iso/keymap.c new file mode 100644 index 000000000000..84b0a99e3597 --- /dev/null +++ b/keyboards/charue/sunsetter/keymaps/default_iso/keymap.c @@ -0,0 +1,26 @@ +/* +Copyright 2012,2013 Jun Wako + +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_1065_iso( + KC_F1, KC_F2, 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_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), +}; diff --git a/keyboards/charue/sunsetter/keymaps/via/keymap.c b/keyboards/charue/sunsetter/keymaps/via/keymap.c index 53d5ced2d631..ceba72e92f96 100644 --- a/keyboards/charue/sunsetter/keymaps/via/keymap.c +++ b/keyboards/charue/sunsetter/keymaps/via/keymap.c @@ -18,27 +18,27 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_1065_ansi( - KC_F1, KC_F2, 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_VOLU, - KC_F3, KC_F4, 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_VOLD, - KC_F5, KC_F6, 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_ENT , KC_MUTE, - KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, - KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + KC_F1, KC_F2, 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_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_1065_ansi( - KC_F1, KC_F2, 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_VOLU, - KC_F3, KC_F4, 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_VOLD, - KC_F5, KC_F6, 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_ENT , KC_MUTE, - KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, - KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + KC_F1, KC_F2, 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_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [2] = LAYOUT_1065_ansi( - KC_F1, KC_F2, 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_VOLU, - KC_F3, KC_F4, 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_VOLD, - KC_F5, KC_F6, 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_ENT , KC_MUTE, - KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, - KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + KC_F1, KC_F2, 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_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [3] = LAYOUT_1065_ansi( - KC_F1, KC_F2, 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_VOLU, - KC_F3, KC_F4, 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_VOLD, - KC_F5, KC_F6, 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_ENT , KC_MUTE, - KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, - KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + KC_F1, KC_F2, 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_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), }; diff --git a/keyboards/charue/sunsetter/sunsetter.h b/keyboards/charue/sunsetter/sunsetter.h index 47089ad2610c..51dd26f4ec71 100644 --- a/keyboards/charue/sunsetter/sunsetter.h +++ b/keyboards/charue/sunsetter/sunsetter.h @@ -21,16 +21,94 @@ along with this program. If not, see . #define ____ KC_NO +/* LAYOUT_all + * ┌───────┐ + * │016 │2u Backspace + * └───────┘ + * ┌───┬───┐┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │000│001││002│003│004│005│006│007│008│009│010│011│012│013│014│015│016│017│ + * ├───┼───┤├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ + * │100│101││102 │103│104│105│106│107│108│109│110│111│112│113│114│116 │117│ │ │ISO + * 2.25u ├───┼───┤├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐216 │Enter + * LShift │200│201││202 │203│204│205│206│207│208│209│210│211│212│213│215 │217│ │214│ │ + * ┌────────┐ ├───┼───┤├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ + * │302 │ │300│301││302 │303│304│305│306│307│308│309│310│311│312│313│314 │316│317│ + * └────────┘ ├───┼───┤├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │400│401││402 │403 │404 │406 │408 │410 │412│413│414│415│416│417│ + * └───┴───┘└────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘ + * ┌────────────────────────┐ └───┬───┘ + * │ 408 │ (a) + * └────────────────────────┘ + * + * (a) Positions 413 and 414 are present on the PCB, but inaccessible when using the standard Sunsetter top case. + */ + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K406, K408, K410, K412, K413, K414, K415, K416, K417 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, K116, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ + { K400, K401, K402, K403, K404, ____, K406, ____, K408, ____, K410, ____, K412, K413, K414, K415, K416, K417 } \ +} + #define LAYOUT_1065_ansi( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K016, K017, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116, K117, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K217, \ - K300, K301, K302, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ - K400, K401, K402, K403, K404, K408, K412, K415, K416, K417 \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K217, \ + K300, K301, K302, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K408, K412, K415, K416, K417 \ ) { \ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, ____, K016, K017 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, K116, K117 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, ____, K217 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, K215, ____, K217 }, \ + { K300, K301, K302, ____, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ + { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \ +} + +#define LAYOUT_1065_ansi_split_bs( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K217, \ + K300, K301, K302, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K408, K412, K415, K416, K417 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, K116, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, K215, ____, K217 }, \ { K300, K301, K302, ____, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \ } + +#define LAYOUT_1065_iso( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K216, K217, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K408, K412, K415, K416, K417 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, ____, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, ____, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, ____, K216, K217 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ + { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \ +} + +#define LAYOUT_1065_iso_split_bs( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K216, K217, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K408, K412, K415, K416, K417 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, ____, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, ____, K216, K217 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ + { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \ +} From 954806c80ff70bb241949761cf8bfedc28c55ee3 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 31 Jul 2021 06:25:47 -0700 Subject: [PATCH 137/328] DP60 layout macro renames (#13811) * info.json: apply human-friendly formatting * rename LAYOUT_60_wkl to LAYOUT_60_ansi_tsangan_split_rshift * rename LAYOUT_60_wkl_split_bs to LAYOUT_60_tsangan_hhkb * info.json: remove `key_count` keys --- keyboards/dp60/dp60.h | 4 +- keyboards/dp60/info.json | 427 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 414 insertions(+), 17 deletions(-) diff --git a/keyboards/dp60/dp60.h b/keyboards/dp60/dp60.h index 9d8bffa64acd..515a2c0745cf 100644 --- a/keyboards/dp60/dp60.h +++ b/keyboards/dp60/dp60.h @@ -93,7 +93,7 @@ k40, k42, k43, k47, k48, k49, k4a, k4b \ {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, k48, k49, k4a, k4b} \ } -#define LAYOUT_60_wkl( \ +#define LAYOUT_60_ansi_tsangan_split_rshift( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \ @@ -122,7 +122,7 @@ k40, k42, k43, k47, k48, k49, k4a, k4b \ {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ {KC_NO, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, KC_NO, k49, k4a, KC_NO} \ } -#define LAYOUT_60_wkl_split_bs( \ +#define LAYOUT_60_tsangan_hhkb( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \ diff --git a/keyboards/dp60/info.json b/keyboards/dp60/info.json index 9387c3f940cb..5c7eb943868f 100644 --- a/keyboards/dp60/info.json +++ b/keyboards/dp60/info.json @@ -4,30 +4,427 @@ "maintainer": "qmk", "width": 15, "height": 5, + "layout_aliases": { + "LAYOUT_60_wkl": "LAYOUT_60_ansi_tsangan_split_rshift", + "LAYOUT_60_wkl_split_bs": "LAYOUT_60_tsangan_hhkb" + }, "layouts": { - "LAYOUT_60_wkl": { - "key_count":61, - "layout": [{"label":"~", "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}, {"label":"Backspace", "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 Lock", "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}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + "LAYOUT_60_ansi_tsangan_split_rshift": { + "layout": [ + {"label":"~", "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}, + {"label":"Backspace", "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 Lock", "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}, + {"x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Win", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] }, "LAYOUT_60_ansi": { - "key_count":61, - "layout": [{"label":"~", "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}, {"label":"Backspace", "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 Lock", "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}, {"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": [ + {"label":"~", "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}, + {"label":"Backspace", "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 Lock", "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}, + {"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_hhkb": { - "key_count":60, - "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}, {"label":"|", "x":13, "y":0}, {"label":"~", "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "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}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}] + "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}, + {"label":"|", "x":13, "y":0}, + {"label":"~", "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":"Backspace", "x":13.5, "y":1, "w":1.5}, + + {"label":"Control", "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}, + {"x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Win", "x":12.5, "y":4} + ] }, "LAYOUT_60_iso": { - "key_count":62, - "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":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":2.75}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] }, "LAYOUT_60_ansi_split_bs_rshift": { - "key_count":63, - "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":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] }, - "LAYOUT_60_wkl_split_bs": { - "key_count":62, - "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":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}] + "LAYOUT_60_tsangan_hhkb": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] } } - } \ No newline at end of file +} From 3f5482bbb7886d1a1dc957fa5a448e9cb87e2c4b Mon Sep 17 00:00:00 2001 From: slashbunny Date: Sat, 31 Jul 2021 11:28:09 -0400 Subject: [PATCH 138/328] Update endgame keymap to work with suspend changes (#13805) Updates the Massdrop CTRL keyboard engame keymap to work after the changes to USB suspend in #12697 Fixes #13782 --- keyboards/massdrop/ctrl/keymaps/endgame/keymap.c | 2 +- keyboards/massdrop/ctrl/keymaps/endgame/keymap.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c b/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c index c28434e06b31..6451dd495b3c 100644 --- a/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c @@ -373,7 +373,7 @@ void set_layer_color(int layer) { } void rgb_matrix_indicators_user(void) { - if (g_suspend_state || disable_layer_color || + if (disable_layer_color || rgb_matrix_get_flags() == LED_FLAG_NONE || rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) { return; diff --git a/keyboards/massdrop/ctrl/keymaps/endgame/keymap.h b/keyboards/massdrop/ctrl/keymaps/endgame/keymap.h index 1a204311d47d..274768112622 100644 --- a/keyboards/massdrop/ctrl/keymaps/endgame/keymap.h +++ b/keyboards/massdrop/ctrl/keymaps/endgame/keymap.h @@ -33,7 +33,6 @@ #define RGB_TIME_OUT_MIN 10 #define RGB_TIME_OUT_STEP 10 -extern bool g_suspend_state; extern rgb_config_t rgb_matrix_config; bool disable_layer_color; From 1305b6d82e87ff4116832de6e70f08186c278a6c Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 31 Jul 2021 12:16:51 -0700 Subject: [PATCH 139/328] Momoka Ergo: layout macro/Configurator fix (#13825) * momoka_ergo.h: use modified QMK 3-character notation Renames the matrix position arguments to use QMK's K notation, but using L or R for the left and right halves, respectively. * physically arrange layout macro Arrange the layout macro and keycodes to resemble the assembled keyboard. * info.json: rebuild LAYOUT data Fixes mispositioned keys in QMK Configurator. --- keyboards/momoka_ergo/info.json | 148 +++++++++--------- .../momoka_ergo/keymaps/default/keymap.c | 47 +++--- keyboards/momoka_ergo/momoka_ergo.h | 51 +++--- 3 files changed, 130 insertions(+), 116 deletions(-) diff --git a/keyboards/momoka_ergo/info.json b/keyboards/momoka_ergo/info.json index ecbae947b07f..13df2b7dc10a 100644 --- a/keyboards/momoka_ergo/info.json +++ b/keyboards/momoka_ergo/info.json @@ -7,76 +7,84 @@ "layouts": { "LAYOUT": { "layout": [ - {"label":"L02", "x":3.5, "y":0}, - {"label":"R03", "x":15, "y":0}, - {"label":"L03", "x":2.5, "y":0.125}, - {"label":"L01", "x":4.5, "y":0.125}, - {"label":"R04", "x":14, "y":0.125}, - {"label":"R02", "x":16, "y":0.125}, - {"label":"L00", "x":5.5, "y":0.25}, - {"label":"R05", "x":13, "y":0.25}, - {"label":"L05", "x":0, "y":0.375, "w":1.5}, - {"label":"L04", "x":1.5, "y":0.375}, - {"label":"R01", "x":17, "y":0.375}, - {"label":"R00", "x":18, "y":0.375, "w":1.5}, - {"label":"L12", "x":3.5, "y":1}, - {"label":"R13", "x":15, "y":1}, - {"label":"L13", "x":2.5, "y":1.125}, - {"label":"L11", "x":4.5, "y":1.125}, - {"label":"R14", "x":14, "y":1.125}, - {"label":"R12", "x":16, "y":1.125}, - {"label":"L10", "x":5.5, "y":1.25}, - {"label":"R15", "x":13, "y":1.25}, - {"label":"L15", "x":0, "y":1.375, "w":1.5}, - {"label":"L14", "x":1.5, "y":1.375}, - {"label":"R11", "x":17, "y":1.375}, - {"label":"R10", "x":18, "y":1.375, "w":1.5}, - {"label":"L22", "x":3.5, "y":2}, - {"label":"R23", "x":15, "y":2}, - {"label":"L23", "x":2.5, "y":2.125}, - {"label":"L21", "x":4.5, "y":2.125}, - {"label":"R24", "x":14, "y":2.125}, - {"label":"R22", "x":16, "y":2.125}, - {"label":"L20", "x":5.5, "y":2.25}, - {"label":"R25", "x":13, "y":2.25}, - {"label":"L25", "x":0, "y":2.375, "w":1.5}, - {"label":"L24", "x":1.5, "y":2.375}, - {"label":"R21", "x":17, "y":2.375}, - {"label":"R20", "x":18, "y":2.375, "w":1.5}, - {"label":"L32", "x":3.5, "y":3}, - {"label":"R33", "x":15, "y":3}, - {"label":"L33", "x":2.5, "y":3.125}, - {"label":"L31", "x":4.5, "y":3.125}, - {"label":"R34", "x":14, "y":3.125}, - {"label":"R32", "x":16, "y":3.125}, - {"label":"L30", "x":5.5, "y":3.25}, - {"label":"R35", "x":13, "y":3.25}, - {"label":"L35", "x":0, "y":3.375, "w":1.5}, - {"label":"L34", "x":1.5, "y":3.375}, - {"label":"R31", "x":17, "y":3.375}, - {"label":"R30", "x":18, "y":3.375, "w":1.5}, - {"label":"L42", "x":3.5, "y":4}, - {"label":"R43", "x":15, "y":4}, - {"label":"L43", "x":2.5, "y":4.125}, - {"label":"L41", "x":4.5, "y":4.125}, - {"label":"R44", "x":14, "y":4.125}, - {"label":"R42", "x":16, "y":4.125}, - {"label":"L45", "x":0.5, "y":4.375}, - {"label":"L44", "x":1.5, "y":4.375}, - {"label":"R41", "x":17, "y":4.375}, - {"label":"R40", "x":18, "y":4.375}, - {"label":"L51", "x":1, "y":4.375}, - {"label":"L40", "x":2, "y":4.375}, - {"label":"L52", "x":0, "y":5.375, "h":2}, - {"label":"L61", "x":1, "y":5.375, "h":2}, - {"label":"L50", "x":2, "y":5.375}, - {"label":"L60", "x":2, "y":6.375}, - {"label":"R45", "x":-3.0, "y":6.375}, - {"label":"R54", "x":-2, "y":6.375}, - {"label":"R55", "x":-3.0, "y":7.375}, - {"label":"R64", "x":-2, "y":7.375, "h":2}, - {"label":"R53", "x":-1.0, "y":7.375, "h":2}, - {"label":"R65", "x":-3.0, "y":8.375}] + {"label":"L05", "x":0, "y":0.375, "w":1.5}, + {"label":"L04", "x":1.5, "y":0.375}, + {"label":"L03", "x":2.5, "y":0.125}, + {"label":"L02", "x":3.5, "y":0}, + {"label":"L01", "x":4.5, "y":0.125}, + {"label":"L00", "x":5.5, "y":0.25}, + {"label":"R70", "x":12.5, "y":0.25}, + {"label":"R71", "x":13.5, "y":0.125}, + {"label":"R72", "x":14.5, "y":0}, + {"label":"R73", "x":15.5, "y":0.125}, + {"label":"R74", "x":16.5, "y":0.375}, + {"label":"R75", "x":17.5, "y":0.375, "w":1.5}, + + {"label":"L15", "x":0, "y":1.375, "w":1.5}, + {"label":"L14", "x":1.5, "y":1.375}, + {"label":"L13", "x":2.5, "y":1.125}, + {"label":"L12", "x":3.5, "y":1}, + {"label":"L11", "x":4.5, "y":1.125}, + {"label":"L10", "x":5.5, "y":1.25}, + {"label":"R80", "x":12.5, "y":1.25}, + {"label":"R81", "x":13.5, "y":1.125}, + {"label":"R82", "x":14.5, "y":1}, + {"label":"R83", "x":15.5, "y":1.125}, + {"label":"R84", "x":16.5, "y":1.375}, + {"label":"R85", "x":17.5, "y":1.375, "w":1.5}, + + {"label":"L25", "x":0, "y":2.375, "w":1.5}, + {"label":"L24", "x":1.5, "y":2.375}, + {"label":"L23", "x":2.5, "y":2.125}, + {"label":"L22", "x":3.5, "y":2}, + {"label":"L21", "x":4.5, "y":2.125}, + {"label":"L20", "x":5.5, "y":2.25}, + {"label":"R90", "x":12.5, "y":2.25}, + {"label":"R91", "x":13.5, "y":2.125}, + {"label":"R92", "x":14.5, "y":2}, + {"label":"R93", "x":15.5, "y":2.125}, + {"label":"R94", "x":16.5, "y":2.375}, + {"label":"R95", "x":17.5, "y":2.375, "w":1.5}, + + {"label":"L35", "x":0, "y":3.375, "w":1.5}, + {"label":"L34", "x":1.5, "y":3.375}, + {"label":"L33", "x":2.5, "y":3.125}, + {"label":"L32", "x":3.5, "y":3}, + {"label":"L31", "x":4.5, "y":3.125}, + {"label":"L30", "x":5.5, "y":3.25}, + {"label":"RA0", "x":12.5, "y":3.25}, + {"label":"RA1", "x":13.5, "y":3.125}, + {"label":"RA2", "x":14.5, "y":3}, + {"label":"RA3", "x":15.5, "y":3.125}, + {"label":"RA4", "x":16.5, "y":3.375}, + {"label":"RA5", "x":17.5, "y":3.375, "w":1.5}, + + {"label":"L45", "x":0.5, "y":4.375}, + {"label":"L44", "x":1.5, "y":4.375}, + {"label":"L43", "x":2.5, "y":4.125}, + {"label":"L42", "x":3.5, "y":4}, + {"label":"L41", "x":4.5, "y":4.125}, + {"label":"RB1", "x":13.5, "y":4.125}, + {"label":"RB2", "x":14.5, "y":4}, + {"label":"RB3", "x":15.5, "y":4.125}, + {"label":"RB4", "x":16.5, "y":4.375}, + {"label":"RB5", "x":17.5, "y":4.375}, + + {"label":"L51", "x":7, "y":4.875}, + {"label":"L40", "x":8, "y":4.875}, + {"label":"RB0", "x":10, "y":4.875}, + {"label":"RC1", "x":11, "y":4.875}, + + {"label":"L50", "x":8, "y":5.875}, + {"label":"RC0", "x":10, "y":5.875}, + + {"label":"L52", "x":6, "y":5.875, "h":2}, + {"label":"L61", "x":7, "y":5.875, "h":2}, + {"label":"L60", "x":8, "y":6.875}, + {"label":"RD0", "x":10, "y":6.875}, + {"label":"RD1", "x":11, "y":5.875, "h":2}, + {"label":"RC2", "x":12, "y":5.875, "h":2} + ] } } } diff --git a/keyboards/momoka_ergo/keymaps/default/keymap.c b/keyboards/momoka_ergo/keymaps/default/keymap.c index ca1131ba2f0f..01c01ed01383 100644 --- a/keyboards/momoka_ergo/keymaps/default/keymap.c +++ b/keyboards/momoka_ergo/keymaps/default/keymap.c @@ -25,31 +25,34 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 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_LSFT, 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_GRV, KC_EQL, KC_LEFT, KC_RGHT, KC_LALT, KC_RGUI, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, MO(_FN1), - KC_BSPC, KC_LCTL, KC_HOME, KC_PGUP, KC_RCTL, KC_SPC, - KC_DEL, KC_END, KC_PGDN, KC_ENT + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 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_LSFT, 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_GRV, KC_EQL, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, MO(_FN1), + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENT, KC_SPC ), [_FN1] = LAYOUT( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - MO(_FN2), _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, RGB_TOG, MO(_FN2), - _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_VAD, RGB_SAI, RGB_SAD, _______, - _______, _______, _______, RGB_HUI, _______, _______, - _______, _______, RGB_HUD, _______ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MO(_FN2), _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_MOD, RGB_TOG, MO(_FN2), + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, RGB_VAD, RGB_SAI, RGB_SAD, _______, + _______, _______, _______, _______, + _______, RGB_HUI, + _______, _______, _______, RGB_HUD, _______, _______ ), [_FN2] = LAYOUT( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RESET, _______, _______, _______, _______, RESET, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______, - _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_VAD, RGB_SAI, RGB_SAD, _______, - _______, _______, _______, RGB_HUI, _______, _______, - _______, _______, RGB_HUD, _______ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RESET, _______, _______, _______, _______, RESET, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_MOD, RGB_TOG, _______, + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, RGB_VAD, RGB_SAI, RGB_SAD, _______, + _______, _______, _______, _______, + _______, RGB_HUI, + _______, _______, _______, RGB_HUD, _______, _______ ) - + }; diff --git a/keyboards/momoka_ergo/momoka_ergo.h b/keyboards/momoka_ergo/momoka_ergo.h index 93faad449088..1bbc1b242ac2 100644 --- a/keyboards/momoka_ergo/momoka_ergo.h +++ b/keyboards/momoka_ergo/momoka_ergo.h @@ -18,6 +18,8 @@ #include "quantum.h" +#define XXX KC_NO + /* This is a shortcut to help you visually see your layout. * * The first section contains all of the arguments representing the physical @@ -27,27 +29,28 @@ * represents the switch matrix. */ #define LAYOUT( \ - L05, L04, L03, L02, L01, L00, R05, R04, R03, R02, R01, R00, \ - L15, L14, L13, L12, L11, L10, R15, R14, R13, R12, R11, R10, \ - L25, L24, L23, L22, L21, L20, R25, R24, R23, R22, R21, R20, \ - L35, L34, L33, L32, L31, L30, R35, R34, R33, R32, R31, R30, \ - L45, L44, L43, L42, L41, L40, R45, R44, R43, R42, R41, R40, \ - L52, L51, L50, R55, R54, R53, \ - L61, L60, R65, R64 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05 }, \ - { L10, L11, L12, L13, L14, L15 }, \ - { L20, L21, L22, L23, L24, L25 }, \ - { L30, L31, L32, L33, L34, L35 }, \ - { L40, L41, L42, L43, L44, L45 },\ - { L50, L51, L52, KC_NO,KC_NO,KC_NO },\ - { L60, L61,KC_NO,KC_NO,KC_NO,KC_NO },\ - { R05, R04, R03, R02, R01, R00 }, \ - { R15, R14, R13, R12, R11, R10 }, \ - { R25, R24, R23, R22, R21, R20 }, \ - { R35, R34, R33, R32, R31, R30 }, \ - { R45, R44, R43, R42, R41, R40 },\ - { R55, R54, R53, KC_NO, KC_NO, KC_NO }, \ - { R65, R64, KC_NO, KC_NO, KC_NO, KC_NO } \ - } + L05, L04, L03, L02, L01, L00, R70, R71, R72, R73, R74, R75, \ + L15, L14, L13, L12, L11, L10, R80, R81, R82, R83, R84, R85, \ + L25, L24, L23, L22, L21, L20, R90, R91, R92, R93, R94, R95, \ + L35, L34, L33, L32, L31, L30, RA0, RA1, RA2, RA3, RA4, RA5, \ + L45, L44, L43, L42, L41, RB1, RB2, RB3, RB4, RB5, \ + L51, L40, RB0, RC1, \ + L50, RC0, \ + L52, L61, L60, RD0, RD1, RC2 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { L40, L41, L42, L43, L44, L45 }, \ + { L50, L51, L52, XXX, XXX, XXX }, \ + { L60, L61, XXX, XXX, XXX, XXX }, \ + { R70, R71, R72, R73, R74, R75 }, \ + { R80, R81, R82, R83, R84, R85 }, \ + { R90, R91, R92, R93, R94, R95 }, \ + { RA0, RA1, RA2, RA3, RA4, RA5 }, \ + { RB0, RB1, RB2, RB3, RB4, RB5 }, \ + { RC0, RC1, RC2, XXX, XXX, XXX }, \ + { RD0, RD1, XXX, XXX, XXX, XXX } \ + } From 851d995a7db7db6bfc366e3d43ce97f7fab17295 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 31 Jul 2021 12:17:55 -0700 Subject: [PATCH 140/328] Merro60 Layout Macro Refactor (#13827) --- keyboards/chlx/merro60/info.json | 158 +++++++++++++++++- keyboards/chlx/merro60/keymaps/ansi/keymap.c | 8 +- .../chlx/merro60/keymaps/default/keymap.c | 4 +- keyboards/chlx/merro60/keymaps/hhkb/keymap.c | 4 +- keyboards/chlx/merro60/keymaps/iso/keymap.c | 4 +- .../chlx/merro60/keymaps/tsangan/keymap.c | 4 +- keyboards/chlx/merro60/keymaps/via/keymap.c | 8 +- keyboards/chlx/merro60/merro60.h | 113 ++++++++----- keyboards/chlx/merro60/rules.mk | 2 + 9 files changed, 238 insertions(+), 67 deletions(-) diff --git a/keyboards/chlx/merro60/info.json b/keyboards/chlx/merro60/info.json index 8205d4d24cfe..00ae7cf177f4 100644 --- a/keyboards/chlx/merro60/info.json +++ b/keyboards/chlx/merro60/info.json @@ -4,8 +4,14 @@ "maintainer": "gaclee3b", "width": 15, "height": 5, + "layout_aliases": { + "LAYOUT_default": "LAYOUT_all", + "LAYOUT_hhkb": "LAYOUT_60_hhkb", + "LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift", + "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb" + }, "layouts": { - "LAYOUT_default": { + "LAYOUT_all": { "layout": [ {"x": 0, "y": 0}, {"x": 1, "y": 0}, @@ -78,7 +84,76 @@ {"x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_ansi": { + "LAYOUT_60_ansi": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ {"x": 0, "y": 0}, {"x": 1, "y": 0}, @@ -125,8 +200,7 @@ {"x": 11.75, "y": 2}, {"x": 12.75, "y": 2, "w": 2.25}, - {"x": 0, "y": 3, "w": 1.25}, - {"x": 1.25, "y": 3}, + {"x": 0, "y": 3, "w": 2.25}, {"x": 2.25, "y": 3}, {"x": 3.25, "y": 3}, {"x": 4.25, "y": 3}, @@ -150,7 +224,7 @@ {"x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_hhkb": { + "LAYOUT_60_hhkb": { "layout": [ {"x": 0, "y": 0}, {"x": 1, "y": 0}, @@ -218,7 +292,77 @@ {"x": 12.5, "y": 4} ] }, - "LAYOUT_iso": { + "LAYOUT_60_iso": { + "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": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 2.75}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { "layout": [ {"x": 0, "y": 0}, {"x": 1, "y": 0}, @@ -290,7 +434,7 @@ {"x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_tsangan": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"x": 0, "y": 0}, {"x": 1, "y": 0}, diff --git a/keyboards/chlx/merro60/keymaps/ansi/keymap.c b/keyboards/chlx/merro60/keymaps/ansi/keymap.c index 307f98866e09..eebc623cc857 100644 --- a/keyboards/chlx/merro60/keymaps/ansi/keymap.c +++ b/keyboards/chlx/merro60/keymaps/ansi/keymap.c @@ -19,17 +19,17 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_ansi( +[0] = LAYOUT_60_ansi_split_bs_rshift( 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, + 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_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), -[1] = LAYOUT_ansi( +[1] = LAYOUT_60_ansi_split_bs_rshift( 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_UP, _______, RESET, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/chlx/merro60/keymaps/default/keymap.c b/keyboards/chlx/merro60/keymaps/default/keymap.c index 98046d06496c..ee16d638002a 100644 --- a/keyboards/chlx/merro60/keymaps/default/keymap.c +++ b/keyboards/chlx/merro60/keymaps/default/keymap.c @@ -19,14 +19,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_default( +[0] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, KC_ENT, KC_LSFT, KC_LEFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL), -[1] = LAYOUT_default( +[1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/chlx/merro60/keymaps/hhkb/keymap.c b/keyboards/chlx/merro60/keymaps/hhkb/keymap.c index 3ea2901bd132..b7058cfc1b14 100644 --- a/keyboards/chlx/merro60/keymaps/hhkb/keymap.c +++ b/keyboards/chlx/merro60/keymaps/hhkb/keymap.c @@ -19,14 +19,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_hhkb( +[0] = LAYOUT_60_hhkb( 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_BSLS, KC_GRV, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI), -[1] = LAYOUT_hhkb( +[1] = LAYOUT_60_hhkb( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, RESET, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, diff --git a/keyboards/chlx/merro60/keymaps/iso/keymap.c b/keyboards/chlx/merro60/keymaps/iso/keymap.c index f96ad9adee26..fdfbeafce0d4 100644 --- a/keyboards/chlx/merro60/keymaps/iso/keymap.c +++ b/keyboards/chlx/merro60/keymaps/iso/keymap.c @@ -19,14 +19,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_iso( +[0] = LAYOUT_60_iso_split_bs_rshift( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), -[1] = LAYOUT_iso( +[1] = LAYOUT_60_iso_split_bs_rshift( 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/chlx/merro60/keymaps/tsangan/keymap.c b/keyboards/chlx/merro60/keymaps/tsangan/keymap.c index 2083bf9be1a0..560abd994743 100644 --- a/keyboards/chlx/merro60/keymaps/tsangan/keymap.c +++ b/keyboards/chlx/merro60/keymaps/tsangan/keymap.c @@ -19,14 +19,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_tsangan( +[0] = LAYOUT_60_tsangan_hhkb( 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_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), -[1] = LAYOUT_tsangan( +[1] = LAYOUT_60_tsangan_hhkb( 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/chlx/merro60/keymaps/via/keymap.c b/keyboards/chlx/merro60/keymaps/via/keymap.c index 8f756aefbdd9..1e44a9cfd6c8 100644 --- a/keyboards/chlx/merro60/keymaps/via/keymap.c +++ b/keyboards/chlx/merro60/keymaps/via/keymap.c @@ -19,28 +19,28 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_via( +[0] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, KC_ENT, KC_LSFT, KC_LEFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL), -[1] = LAYOUT_via( +[1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -[2] = LAYOUT_via( +[2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -[3] = LAYOUT_via( +[3] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/chlx/merro60/merro60.h b/keyboards/chlx/merro60/merro60.h index 22811299963f..dee6a5a96ab6 100644 --- a/keyboards/chlx/merro60/merro60.h +++ b/keyboards/chlx/merro60/merro60.h @@ -23,7 +23,7 @@ along with this program. If not, see . #define XXX KC_NO -/* //////////////////// LAYOUT_default //////////////////// +/* //////////////////// LAYOUT_all //////////////////// * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -37,7 +37,7 @@ along with this program. If not, see . * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ */ -#define LAYOUT_default( \ +#define LAYOUT_all( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ 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, \ @@ -51,34 +51,61 @@ along with this program. If not, see . { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ } -/* //////////////////// LAYOUT_ansi //////////////////// +/* //////////////////// LAYOUT_60_ansi //////////////////// + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │40 │41 │42 │45 │4a │4b │4c │4d │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +*/ +#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, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ +} + +/* //////////////////// LAYOUT_60_ansi_split_bs_rshift //////////////////// * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ - * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3e │ - * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ * │40 │41 │42 │45 │4a │4b │4d │4e │ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ */ -#define LAYOUT_ansi( \ +#define LAYOUT_60_ansi_split_bs_rshift( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ 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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ k40, k41, k42, k45, k4a, k4b, k4c, k4d \ ) { \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ + { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ } -/* //////////////////// LAYOUT_hhkb //////////////////// +/* //////////////////// LAYOUT_60_hhkb //////////////////// * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -91,7 +118,7 @@ along with this program. If not, see . * │▓▓▓▓▓│41 │42 │45 (7u) │4b │4c │▓▓▓▓▓│ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ */ -#define LAYOUT_hhkb( \ +#define LAYOUT_60_hhkb( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ 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, \ @@ -105,7 +132,34 @@ along with this program. If not, see . { XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, XXX, XXX } \ } -/* //////////////////// LAYOUT_iso //////////////////// +/* //////////////////// LAYOUT_60_iso //////////////////// + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2d │ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │40 │41 │42 │45 │4a │4b │4c │4d │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +*/ +#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, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ +} + +/* //////////////////// LAYOUT_60_iso_split_bs_rshift //////////////////// * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -118,7 +172,7 @@ along with this program. If not, see . * │40 │41 │42 │45 │4a │4b │4c │4d │ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ */ -#define LAYOUT_iso( \ +#define LAYOUT_60_iso_split_bs_rshift( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ 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, \ @@ -132,7 +186,7 @@ along with this program. If not, see . { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ } -/* //////////////////// LAYOUT_tsangan //////////////////// +/* //////////////////// LAYOUT_60_tsangan_hhkb //////////////////// * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -145,7 +199,7 @@ along with this program. If not, see . * │40 │41 │42 │45 (7u) │4b │4c │4d │ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ */ -#define LAYOUT_tsangan( \ +#define LAYOUT_60_tsangan_hhkb( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ 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, \ @@ -158,32 +212,3 @@ along with this program. If not, see . { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, k4d, XXX } \ } - -/* //////////////////// LAYOUT_via //////////////////// - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ - * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ - * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │ - * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ - * │40 │41 │42 │45 (6.25u) │4a │4b │4c │4d │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ -*/ - -#define LAYOUT_via( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ - 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, k45, k4a, k4b, k4c, k4d \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ - { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ -} - diff --git a/keyboards/chlx/merro60/rules.mk b/keyboards/chlx/merro60/rules.mk index 32981133b2eb..40b1e5fc9f5d 100644 --- a/keyboards/chlx/merro60/rules.mk +++ b/keyboards/chlx/merro60/rules.mk @@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_tsangan_hhkb From 4b630c46fed48f8a82641438029b628ec0dd5150 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 31 Jul 2021 13:12:49 -0700 Subject: [PATCH 141/328] Duck Eagle/Viper V2 Refactor (#13828) --- keyboards/duck/eagle_viper/info.json | 19 -- keyboards/duck/eagle_viper/readme.md | 7 - keyboards/duck/eagle_viper/rules.mk | 3 - keyboards/duck/eagle_viper/v2/info.json | 364 ++++++++++++++++++++++++ keyboards/duck/eagle_viper/v2/readme.md | 13 +- keyboards/duck/eagle_viper/v2/rules.mk | 22 +- keyboards/duck/eagle_viper/v2/v2.h | 21 +- 7 files changed, 393 insertions(+), 56 deletions(-) delete mode 100644 keyboards/duck/eagle_viper/info.json delete mode 100644 keyboards/duck/eagle_viper/readme.md delete mode 100644 keyboards/duck/eagle_viper/rules.mk create mode 100644 keyboards/duck/eagle_viper/v2/info.json diff --git a/keyboards/duck/eagle_viper/info.json b/keyboards/duck/eagle_viper/info.json deleted file mode 100644 index 1ab27a6d8dc9..000000000000 --- a/keyboards/duck/eagle_viper/info.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "keyboard_name": "Eagle/Viper", - "width": 15, - "height": 5, - "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}, {"label":"|", "x":13, "y":0}, {"label":"~", "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "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":"ISO#", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"ISO\\", "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":"GUI", "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"GUI", "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":"~", "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}, {"label":"Backspace", "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 Lock", "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":"GUI", "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"GUI", "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_eagle_splits": { - "layout": [{"label":"~", "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}, {"x":13, "y":0}, {"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 Lock", "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":1.25}, {"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}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"GUI", "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_viper": { - "layout": [{"label":"~", "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}, {"x":13, "y":0}, {"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 Lock", "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}, {"x":14, "y":3}, {"label":"GUI", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"GUI", "x":12.5, "y":4}] - } - } -} diff --git a/keyboards/duck/eagle_viper/readme.md b/keyboards/duck/eagle_viper/readme.md deleted file mode 100644 index 63623940bec8..000000000000 --- a/keyboards/duck/eagle_viper/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Duck Eagle/Viper - -Non official firmware for custom Korean keyboard with 60% key layout made by Duck. - -Newest version is the [Eagle/Viper V2](http://duck0113.tistory.com/127) - -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). diff --git a/keyboards/duck/eagle_viper/rules.mk b/keyboards/duck/eagle_viper/rules.mk deleted file mode 100644 index 263767d06490..000000000000 --- a/keyboards/duck/eagle_viper/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -DEFAULT_FOLDER = duck/eagle_viper/v2 - -LAYOUTS = 60_ansi \ No newline at end of file diff --git a/keyboards/duck/eagle_viper/v2/info.json b/keyboards/duck/eagle_viper/v2/info.json new file mode 100644 index 000000000000..a6d4b8d886bb --- /dev/null +++ b/keyboards/duck/eagle_viper/v2/info.json @@ -0,0 +1,364 @@ +{ + "keyboard_name": "Eagle/Viper V2", + "width": 15, + "height": 5, + "layout_aliases": { + "LAYOUT_eagle": "LAYOUT_60_ansi", + "LAYOUT_viper": "LAYOUT_60_hhkb", + "LAYOUT_eagle_splits": "LAYOUT_60_ansi_split_bs_lshift_rshift" + }, + "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}, + {"label":"|", "x":13, "y":0}, + {"label":"~", "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":"Backspace", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "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":"ISO#", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "w":1.25}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"ISO\\", "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":"GUI", "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":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"GUI", "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":"~", "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}, + {"label":"Backspace", "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 Lock", "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":"GUI", "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":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"GUI", "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":"~", "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}, + {"x":13, "y":0}, + {"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 Lock", "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}, + {"x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "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":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"GUI", "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_lshift_rshift": { + "layout": [ + {"label":"~", "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}, + {"x":13, "y":0}, + {"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 Lock", "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":1.25}, + {"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}, + {"x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "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":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"GUI", "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_hhkb": { + "layout": [ + {"label":"~", "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}, + {"x":13, "y":0}, + {"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 Lock", "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}, + {"x":14, "y":3}, + {"label":"GUI", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"GUI", "x":12.5, "y":4} + ] + } + } +} diff --git a/keyboards/duck/eagle_viper/v2/readme.md b/keyboards/duck/eagle_viper/v2/readme.md index 2dca0b5b76ad..0e9685e13769 100644 --- a/keyboards/duck/eagle_viper/v2/readme.md +++ b/keyboards/duck/eagle_viper/v2/readme.md @@ -1,17 +1,16 @@ # Duck Eagle/Viper V2 -Non official firmware for custom Korean keyboard with 60% key layout made by Duck. -Group buy was run November 2016 via [geekhack](https://geekhack.org/index.php?topic=86087.0) with 100 keyboards total. +Non-official firmware for custom Korean keyboard with 60% key layout made by Duck. Group buy was run November 2016 via [geekhack](https://geekhack.org/index.php?topic=86087.0) with 100 keyboards total. Newest version is the [Eagle/Viper V2](http://duck0113.tistory.com/127). -Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) -Hardware Supported: Duck Eagle/Viper PCB Ver 2.0, Atmega32u4 -Hardware Availability: Wait until GB of the next revision +* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +* Hardware Supported: Duck Eagle/Viper PCB Ver 2.0, Atmega32u4 +* Hardware Availability: Wait until GB of the next revision Make example for this keyboard (after setting up your build environment): - make eagle_viper/v2:default + make duck/eagle_viper/v2:default -**Reset Key:** To put the Eagle/Viper V2 into reset, hold caps lock key (`K2A`) while plugging in. +**Reset Key:** To put the Eagle/Viper V2 into reset, hold caps lock key (`K2A`) while plugging in. 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). diff --git a/keyboards/duck/eagle_viper/v2/rules.mk b/keyboards/duck/eagle_viper/v2/rules.mk index 2f1b12397f87..d934e77729f7 100644 --- a/keyboards/duck/eagle_viper/v2/rules.mk +++ b/keyboards/duck/eagle_viper/v2/rules.mk @@ -2,19 +2,12 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -25,12 +18,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality BACKLIGHT_DRIVER = custom -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -RGBLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_ansi 60_hhkb 60_ansi_split_bs_rshift CUSTOM_MATRIX = yes -SRC += indicator_leds.c \ - matrix.c duck_led/duck_led.c +SRC += indicator_leds.c matrix.c duck_led/duck_led.c diff --git a/keyboards/duck/eagle_viper/v2/v2.h b/keyboards/duck/eagle_viper/v2/v2.h index 7fefcf770cd2..78b6fe5ea168 100644 --- a/keyboards/duck/eagle_viper/v2/v2.h +++ b/keyboards/duck/eagle_viper/v2/v2.h @@ -47,7 +47,21 @@ { K0A, K0B, K0C, ___, ___, ___, ___, ___, K0I, ___, K0K, ___, K0M, K0N, K0O } \ } -#define LAYOUT_eagle_splits( \ +#define LAYOUT_60_ansi_split_bs_rshift( \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2O, \ + K1A, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1M, K1N, K1O, \ + K0A, K0B, K0C, K0I, K0K, K0M, K0N, K0O \ +) { \ + { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O }, \ + { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, ___, K3O }, \ + { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, ___, ___, K2O }, \ + { K1A, ___, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, ___, K1M, K1N, K1O }, \ + { K0A, K0B, K0C, ___, ___, ___, ___, ___, K0I, ___, K0K, ___, K0M, K0N, K0O } \ +} + +#define LAYOUT_60_ansi_split_bs_lshift_rshift( \ K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \ K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, \ K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2O, \ @@ -61,7 +75,7 @@ { K0A, K0B, K0C, ___, ___, ___, ___, ___, K0I, ___, K0K, ___, K0M, K0N, K0O } \ } -#define LAYOUT_viper( \ +#define LAYOUT_60_hhkb( \ K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \ K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, \ K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2O, \ @@ -74,6 +88,3 @@ { K1A, ___, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, ___, K1M, K1N, K1O }, \ { ___, K0B, K0C, ___, ___, ___, ___, ___, K0I, ___, ___, ___, K0M, K0N, ___ } \ } - -#define LAYOUT_eagle LAYOUT_60_ansi - From 720c676403660eacb880528f04a5c1d328b84650 Mon Sep 17 00:00:00 2001 From: xyzz <1065521+xyzz@users.noreply.github.com> Date: Mon, 2 Aug 2021 00:27:57 -0400 Subject: [PATCH 142/328] flash_stm32: don't unlock flash if already unlocked (#13841) On stm32f4 after reboot from DFU it was observed that the flash is already unlocked. In that case, attempting to unlock it again causes a data abort. --- tmk_core/common/chibios/flash_stm32.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tmk_core/common/chibios/flash_stm32.c b/tmk_core/common/chibios/flash_stm32.c index e8b3dc4bc98d..66f2b13768b4 100644 --- a/tmk_core/common/chibios/flash_stm32.c +++ b/tmk_core/common/chibios/flash_stm32.c @@ -161,9 +161,11 @@ FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) { * @retval None */ void FLASH_Unlock(void) { - /* Authorize the FPEC Access */ - FLASH->KEYR = FLASH_KEY1; - FLASH->KEYR = FLASH_KEY2; + if (FLASH->CR & FLASH_CR_LOCK) { + /* Authorize the FPEC Access */ + FLASH->KEYR = FLASH_KEY1; + FLASH->KEYR = FLASH_KEY2; + } } /** From c2f227d2a87d6258bca6d2f96b6fc475e2fe54f5 Mon Sep 17 00:00:00 2001 From: JTM <68515848+MatthieuLu@users.noreply.github.com> Date: Mon, 2 Aug 2021 01:24:25 -0700 Subject: [PATCH 143/328] Function96 V2: Fixed info.json file (#13322) Fixes the info.json data for the LAYOUT_default and LAYOUT_ansi_splitspace macros. --- keyboards/function96/v2/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/function96/v2/info.json b/keyboards/function96/v2/info.json index 50f2e836caf8..45382681fcdd 100644 --- a/keyboards/function96/v2/info.json +++ b/keyboards/function96/v2/info.json @@ -6,10 +6,10 @@ "height": 6, "layouts": { "LAYOUT_default": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":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":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "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":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}] + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "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":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"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":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}] }, "LAYOUT_ansi_splitspace": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":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":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "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":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "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":2.25}, {"label":"Layer", "x":6, "y":5, "w":1.25}, {"label":"Space", "x":7.25, "y":5, "w":2.75}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}] + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "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":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"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":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "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":2.25}, {"label":"Layer", "x":6, "y":5, "w":1.25}, {"label":"Space", "x":7.25, "y":5, "w":2.75}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}] }, "LAYOUT_iso": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":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":"~", "x":12.75, "y":3}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"|", "x":1.25, "y":4}, {"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":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}] From be9031d01d3195f75243ef3bd2b3fed369e2c85a Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 2 Aug 2021 17:52:46 -0700 Subject: [PATCH 144/328] 0xCB Static: fix `qmk info` and Configurator issues (#13856) --- keyboards/0xcb/static/info.json | 5 +- .../0xcb/static/keymaps/default/keymap.c | 8 +-- keyboards/0xcb/static/keymaps/via/keymap.c | 8 +-- keyboards/0xcb/static/static.h | 52 +++++++++++++------ 4 files changed, 47 insertions(+), 26 deletions(-) diff --git a/keyboards/0xcb/static/info.json b/keyboards/0xcb/static/info.json index d646471be9fe..e1ea7132b7a0 100644 --- a/keyboards/0xcb/static/info.json +++ b/keyboards/0xcb/static/info.json @@ -4,8 +4,11 @@ "maintainer": "Conor-Burns", "width": 12, "height": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"x":11, "y":0}, {"x":0, "y":1}, diff --git a/keyboards/0xcb/static/keymaps/default/keymap.c b/keyboards/0xcb/static/keymaps/default/keymap.c index 2e051d2700b3..e83d6c904dfe 100644 --- a/keyboards/0xcb/static/keymaps/default/keymap.c +++ b/keyboards/0xcb/static/keymaps/default/keymap.c @@ -23,28 +23,28 @@ enum layer_names { _FN4 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_HOME] = LAYOUT( +[_HOME] = LAYOUT_all( KC_MPLY, KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) ), -[_FN2] = LAYOUT( +[_FN2] = LAYOUT_all( RESET, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -[_FN3] = LAYOUT( +[_FN3] = LAYOUT_all( EEP_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -[_FN4] = LAYOUT( +[_FN4] = LAYOUT_all( _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, diff --git a/keyboards/0xcb/static/keymaps/via/keymap.c b/keyboards/0xcb/static/keymaps/via/keymap.c index c860c941d807..4b8bf3ae5d03 100644 --- a/keyboards/0xcb/static/keymaps/via/keymap.c +++ b/keyboards/0xcb/static/keymaps/via/keymap.c @@ -23,28 +23,28 @@ enum layer_names { _FN4 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_HOME] = LAYOUT( +[_HOME] = LAYOUT_all( KC_MPLY, KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) ), -[_FN2] = LAYOUT( +[_FN2] = LAYOUT_all( RESET, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -[_FN3] = LAYOUT( +[_FN3] = LAYOUT_all( EEP_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -[_FN4] = LAYOUT( +[_FN4] = LAYOUT_all( _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, diff --git a/keyboards/0xcb/static/static.h b/keyboards/0xcb/static/static.h index 81be5a2634df..19b698ef3f6b 100644 --- a/keyboards/0xcb/static/static.h +++ b/keyboards/0xcb/static/static.h @@ -28,21 +28,39 @@ along with this program. If not, see . */ // clang-format off - #define LAYOUT( \ - K15, \ - K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \ - K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \ - K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \ - K60, K70, K61, K71, K72, K64, K74, K65, K75 \ - ) \ - { \ - { K00, K01, K02, K03, K04, K05 }, \ - { K10, K11, K12, K13, K14, K15 }, \ - { K20, K21, K22, K23, K24, K25 }, \ - { K30, K31, K32, K33, K34, K35 }, \ - { K40, K41, K42, K43, K44, K45 }, \ - { KC_NO, K51, K52, K53, K54, K55 }, \ - { K60, K61, KC_NO, KC_NO, K64, K65 }, \ - { K70, K71, K72, KC_NO, K74, K75 }, \ - } +#define LAYOUT_all( \ + K15, \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \ + K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \ + K60, K70, K61, K71, K72, K64, K74, K65, K75 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05 }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K40, K41, K42, K43, K44, K45 }, \ + { KC_NO, K51, K52, K53, K54, K55 }, \ + { K60, K61, KC_NO, KC_NO, K64, K65 }, \ + { K70, K71, K72, KC_NO, K74, K75 }, \ +} + +#define LAYOUT_bigbar( \ + K15, \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \ + K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \ + K60, K70, K61, K72, K65, K75 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05 }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K40, K41, K42, K43, K44, K45 }, \ + { KC_NO, K51, K52, K53, K54, K55 }, \ + { K60, K61, KC_NO, KC_NO, KC_NO, K65 }, \ + { K70, KC_NO, K72, KC_NO, KC_NO, K75 }, \ +} // clang-format on From fd9d531bd9554ee3200b2bbb65f39a4833e02ab3 Mon Sep 17 00:00:00 2001 From: plarso Date: Mon, 2 Aug 2021 19:01:38 -0600 Subject: [PATCH 145/328] [Docs] Remove extra word it bootmagic page (#13855) --- docs/feature_bootmagic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_bootmagic.md b/docs/feature_bootmagic.md index f084052cc74c..4c655d8e1c72 100644 --- a/docs/feature_bootmagic.md +++ b/docs/feature_bootmagic.md @@ -146,7 +146,7 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard ## Split Keyboards -When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. This To do so, add these entries to your `config.h` file: +When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. To do so, add these entries to your `config.h` file: ```c #define BOOTMAGIC_LITE_ROW_RIGHT 4 From 2d78a43556b8d54657630663b8121dc2294732aa Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 2 Aug 2021 20:17:06 -0700 Subject: [PATCH 146/328] capsunlocked/cu7: fix missing key object (#13862) Adds a key object for the encoder keypress. --- keyboards/capsunlocked/cu7/info.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/keyboards/capsunlocked/cu7/info.json b/keyboards/capsunlocked/cu7/info.json index 1ce2a80a15da..f679f1ed2fd1 100644 --- a/keyboards/capsunlocked/cu7/info.json +++ b/keyboards/capsunlocked/cu7/info.json @@ -6,7 +6,17 @@ "height": 4.5, "layouts": { "LAYOUT": { - "layout": [{"x":0, "y":2.5}, {"x":1, "y":2.5}, {"x":2, "y":2.5}, {"x":0, "y":3.5}, {"x":1, "y":3.5}, {"x":2, "y":3.5}] + "layout": [ + {"x":0.5, "y":0, "w":2, "h":2}, + + {"x":0, "y":2.5}, + {"x":1, "y":2.5}, + {"x":2, "y":2.5}, + + {"x":0, "y":3.5}, + {"x":1, "y":3.5}, + {"x":2, "y":3.5} + ] } } } From 4d42fb203143340045bfe760bfbe2e427315cf5a Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 3 Aug 2021 00:04:07 -0700 Subject: [PATCH 147/328] 40percentclub/nori: fix matrix reference in LAYOUT_ortho_4x8 (#13866) * 40percentclub/nori: fix matrix reference in LAYOUT_ortho_4x8 * remove ortho_4x8 from Community Layouts rule ortho_4x8 isn't a valid option here. --- keyboards/40percentclub/nori/nori.h | 2 +- keyboards/40percentclub/nori/rules.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/40percentclub/nori/nori.h b/keyboards/40percentclub/nori/nori.h index ffcc3962182b..768598b7f807 100644 --- a/keyboards/40percentclub/nori/nori.h +++ b/keyboards/40percentclub/nori/nori.h @@ -40,7 +40,7 @@ { K00, K01, K02, K03, K04, K05, K06, K07, ___, ___, ___, ___ }, \ { K10, K11, K12, K13, K14, K15, K16, K17, ___, ___, ___, ___ }, \ { K20, K21, K22, K23, K24, K25, K26, K27, ___, ___, ___, ___ }, \ - { K30, K31, K32, K33, K34, K35, K35, K37, ___, ___, ___, ___ } \ + { K30, K31, K32, K33, K34, K35, K36, K37, ___, ___, ___, ___ } \ } #define LAYOUT_ortho_4x12( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ diff --git a/keyboards/40percentclub/nori/rules.mk b/keyboards/40percentclub/nori/rules.mk index 1b9766581a03..3056c606c8eb 100644 --- a/keyboards/40percentclub/nori/rules.mk +++ b/keyboards/40percentclub/nori/rules.mk @@ -30,7 +30,7 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 +LAYOUTS = ortho_4x4 ortho_4x12 # Disable unsupported hardware AUDIO_SUPPORTED = no From 853344235a1cc1329000af2887de50ed4ce964a2 Mon Sep 17 00:00:00 2001 From: Jonathan Rascher Date: Tue, 3 Aug 2021 11:39:43 -0500 Subject: [PATCH 148/328] [Keymap] Minor cleanup of bcat keymaps and userspace (#13224) --- keyboards/9key/keymaps/bcat/keymap.c | 21 +++++++++++-- keyboards/eco/keymaps/bcat/keymap.c | 9 ++---- keyboards/keebio/bdn9/keymaps/bcat/keymap.c | 30 ++++++++++++++----- .../keebio/quefrency/keymaps/bcat/config.h | 26 ++++++++++++---- .../keebio/quefrency/keymaps/bcat/keymap.c | 19 +++++++++++- keyboards/lily58/keymaps/bcat/config.h | 16 ++++++++++ keyboards/lily58/keymaps/bcat/keymap.c | 9 ++---- .../60_ansi_split_bs_rshift/bcat/keymap.c | 18 +++++++++++ .../community/60_tsangan_hhkb/bcat/keymap.c | 20 +++++++++++-- .../65_ansi_blocker_split_bs/bcat/keymap.c | 18 +++++++++++ layouts/community/split_3x6_3/bcat/keymap.c | 9 ++---- layouts/community/split_3x6_3/bcat/readme.md | 5 ++++ users/bcat/bcat.c | 16 ++++++++++ users/bcat/bcat.h | 18 ++++++++++- users/bcat/readme.md | 2 +- 15 files changed, 198 insertions(+), 38 deletions(-) diff --git a/keyboards/9key/keymaps/bcat/keymap.c b/keyboards/9key/keymaps/bcat/keymap.c index 5c30d6308dd0..5c08a42a56bf 100644 --- a/keyboards/9key/keymaps/bcat/keymap.c +++ b/keyboards/9key/keymaps/bcat/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 { @@ -6,18 +22,19 @@ enum layer { }; #define LY_FUNC MO(LAYER_FUNCTION) -#define KY_LOCK LCA(KC_L) /* Cinnamon lock screen */ +#define KY_LOCK LCA(KC_L) /* Cinnamon lock screen */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off [LAYER_DEFAULT] = LAYOUT( KC_MPLY, KC_VOLU, KC_MSTP, KC_MPRV, KC_VOLD, KC_MNXT, KY_LOCK, KC_MUTE, LY_FUNC ), - [LAYER_FUNCTION] = LAYOUT( EEP_RST, _______, RESET, _______, _______, _______, _______, _______, _______ ), + // clang-format on }; diff --git a/keyboards/eco/keymaps/bcat/keymap.c b/keyboards/eco/keymaps/bcat/keymap.c index 066acbe64906..d46a7d416b25 100644 --- a/keyboards/eco/keymaps/bcat/keymap.c +++ b/keyboards/eco/keymaps/bcat/keymap.c @@ -34,6 +34,7 @@ enum layer { #define KY_ZMRST LCTL(KC_0) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off /* Default layer: http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281 */ [LAYER_DEFAULT] = LAYOUT( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, @@ -41,7 +42,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, XXXXXXX, KC_LALT, KC_LCTL, LY_LWR, KC_SPC, XXXXXXX, XXXXXXX, KC_ENT, LY_RSE, KC_RALT, KC_RGUI, XXXXXXX, XXXXXXX ), - /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/11256970dc0552886a82382ee02fa415 */ [LAYER_LOWER] = LAYOUT( MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, @@ -49,7 +49,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/308a8be75e0b85902dc18db1b2546862 */ [LAYER_RAISE] = LAYOUT( KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, @@ -57,7 +56,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21 */ [LAYER_ADJUST] = LAYOUT( _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, @@ -65,8 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______ ), + // clang-format on }; -layer_state_t layer_state_set_keymap(layer_state_t state) { - return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); -} +layer_state_t layer_state_set_keymap(layer_state_t state) { return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } diff --git a/keyboards/keebio/bdn9/keymaps/bcat/keymap.c b/keyboards/keebio/bdn9/keymaps/bcat/keymap.c index 06ba9a559560..c64f702b2029 100644 --- a/keyboards/keebio/bdn9/keymaps/bcat/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/bcat/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 { @@ -8,17 +24,18 @@ enum layer { #define LY_SECND MO(LAYER_SECOND) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off [LAYER_FIRST] = LAYOUT( KC_MUTE, LY_SECND, BL_BRTG, KC_F4, KC_F5, KC_F6, KC_F1, KC_F2, KC_F3 ), - [LAYER_SECOND] = LAYOUT( EEP_RST, _______, RESET, KC_F10, KC_F11, KC_F12, KC_F7, KC_F8, KC_F9 ), + // clang-format on }; bool encoder_update_user(uint8_t index, bool clockwise) { @@ -26,20 +43,17 @@ bool encoder_update_user(uint8_t index, bool clockwise) { /* Top-left encoder (volume) */ case 0: tap_code(clockwise ? KC_VOLU : KC_VOLD); - break; - + return false; /* Top-right encoder (backlight brightness) */ case 1: +#if defined(BACKLIGHT_ENABLE) if (clockwise) { -#ifdef BACKLIGHT_ENABLE backlight_increase(); -#endif } else { -#ifdef BACKLIGHT_ENABLE backlight_decrease(); -#endif } - break; +#endif + return false; } return true; } diff --git a/keyboards/keebio/quefrency/keymaps/bcat/config.h b/keyboards/keebio/quefrency/keymaps/bcat/config.h index 34387f2dd044..69771d36baac 100644 --- a/keyboards/keebio/quefrency/keymaps/bcat/config.h +++ b/keyboards/keebio/quefrency/keymaps/bcat/config.h @@ -1,10 +1,25 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 -/* - * Quefrency lacks I2C resistors on the right PCB, so the right half doesn't +/* Quefrency lacks I2C resistors on the right PCB, so the right half doesn't * work independently. (Presumably the floating I2C lines cause a problem.) - * Using serial seems sufficiently fast in practice and allows both halves to - * be used independently. + * Using serial seems sufficiently fast in practice and allows both halves to be + * used independently. */ #define USE_SERIAL @@ -14,4 +29,5 @@ /* Set up RGB lighting so it works with either side as master. */ #undef RGBLED_SPLIT -#define RGBLED_SPLIT { 8, 9 } +#define RGBLED_SPLIT \ + { 8, 9 } diff --git a/keyboards/keebio/quefrency/keymaps/bcat/keymap.c b/keyboards/keebio/quefrency/keymaps/bcat/keymap.c index e73022d9b606..d28a5083ac80 100644 --- a/keyboards/keebio/quefrency/keymaps/bcat/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/bcat/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 { @@ -8,6 +24,7 @@ enum layer { #define LY_FN MO(LAYER_FUNCTION) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off /* Default layer: http://www.keyboard-layout-editor.com/#/gists/60a262432bb340b37d364a4424f3037b */ [LAYER_DEFAULT] = LAYOUT_65( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME, @@ -16,7 +33,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, LY_FN, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, LY_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - /* Function layer: http://www.keyboard-layout-editor.com/#/gists/59636898946da51f91fb290f8e078b4d */ [LAYER_FUNCTION] = LAYOUT_65( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, RGB_HUI, @@ -25,4 +41,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD ), + // clang-format on }; diff --git a/keyboards/lily58/keymaps/bcat/config.h b/keyboards/lily58/keymaps/bcat/config.h index 180926204492..dbe724d56b96 100644 --- a/keyboards/lily58/keymaps/bcat/config.h +++ b/keyboards/lily58/keymaps/bcat/config.h @@ -1,3 +1,19 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 EE_HANDS diff --git a/keyboards/lily58/keymaps/bcat/keymap.c b/keyboards/lily58/keymaps/bcat/keymap.c index 549363d03a12..69af2ca003c0 100644 --- a/keyboards/lily58/keymaps/bcat/keymap.c +++ b/keyboards/lily58/keymaps/bcat/keymap.c @@ -34,6 +34,7 @@ enum layer { #define KY_ZMRST LCTL(KC_0) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off /* Default layer: http://www.keyboard-layout-editor.com/#/gists/e0eb3af65961e9fd612dcff3ddd88e4f */ [LAYER_DEFAULT] = LAYOUT( KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, @@ -42,7 +43,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_WBAK, KC_WFWD, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LALT, KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT, KC_RGUI ), - /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/19ad0d3b5d745fbb2818db09740f5a11 */ [LAYER_LOWER] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -51,7 +51,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______ ), - /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/912be7955f781cdaf692cc4d4c0b5823 */ [LAYER_RAISE] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -60,7 +59,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______ ), - /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/8f6a3f08350a9bbe1d414b22bca4e6c7 */ [LAYER_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -69,8 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + // clang-format on }; -layer_state_t layer_state_set_keymap(layer_state_t state) { - return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); -} +layer_state_t layer_state_set_keymap(layer_state_t state) { return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c index adb31525a899..6bfafc332521 100644 --- a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c +++ b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 { @@ -10,6 +26,7 @@ enum layer { #define LY_FN2 MO(LAYER_FUNCTION_2) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off /* Default layer: http://www.keyboard-layout-editor.com/#/gists/327b41b5a933b3d44bf60ca9822e85dc */ [LAYER_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, @@ -36,4 +53,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_MUTE, _______, BL_DEC, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + // clang-format on }; diff --git a/layouts/community/60_tsangan_hhkb/bcat/keymap.c b/layouts/community/60_tsangan_hhkb/bcat/keymap.c index 2079adb93cb7..05e6462d9037 100644 --- a/layouts/community/60_tsangan_hhkb/bcat/keymap.c +++ b/layouts/community/60_tsangan_hhkb/bcat/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 { @@ -10,6 +26,7 @@ enum layer { #define LY_FN2 MO(LAYER_FUNCTION_2) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off /* Default layer: http://www.keyboard-layout-editor.com/#/gists/86b33d75aa6f56d8781ab3d8475f4e77 */ [LAYER_DEFAULT] = LAYOUT_60_tsangan_hhkb( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, @@ -18,7 +35,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LY_FN1, KC_LCTL, LY_FN2, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - /* Function 1 layer: http://www.keyboard-layout-editor.com/#/gists/f6311fd7e315de781143b80eb040a551 */ [LAYER_FUNCTION_1] = LAYOUT_60_tsangan_hhkb( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, @@ -27,7 +43,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_APP, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - /* Function 2 layer: http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4 */ [LAYER_FUNCTION_2] = LAYOUT_60_tsangan_hhkb( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, @@ -36,4 +51,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_MUTE, _______, BL_DEC, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + // clang-format on }; diff --git a/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c b/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c index 75b891cda0ce..c91a1b0eaddf 100644 --- a/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c +++ b/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 { @@ -8,6 +24,7 @@ enum layer { #define LY_FN MO(LAYER_FUNCTION) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off /* Default layer: http://www.keyboard-layout-editor.com/#/gists/dd675b40cc4df2c7bb78847ac29f5988 */ [LAYER_DEFAULT] = LAYOUT_65_ansi_blocker_split_bs( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME, @@ -25,4 +42,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + // clang-format on }; diff --git a/layouts/community/split_3x6_3/bcat/keymap.c b/layouts/community/split_3x6_3/bcat/keymap.c index 934a8e31f2d7..4f68c8f84315 100644 --- a/layouts/community/split_3x6_3/bcat/keymap.c +++ b/layouts/community/split_3x6_3/bcat/keymap.c @@ -34,6 +34,7 @@ enum layer { #define KY_ZMRST LCTL(KC_0) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off /* Default layer: http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5 */ [LAYER_DEFAULT] = LAYOUT_split_3x6_3( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, @@ -41,7 +42,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT ), - /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0 */ [LAYER_LOWER] = LAYOUT_split_3x6_3( MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, @@ -49,7 +49,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, _______, _______, _______, _______, _______, _______ ), - /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7 */ [LAYER_RAISE] = LAYOUT_split_3x6_3( KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, @@ -57,7 +56,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, _______, _______, _______, _______, _______, _______ ), - /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee */ [LAYER_ADJUST] = LAYOUT_split_3x6_3( _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, _______, _______, _______, _______, @@ -65,8 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_MUTE, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______, _______, _______, _______, RGB_TOG, _______, _______ ), + // clang-format on }; -layer_state_t layer_state_set_keymap(layer_state_t state) { - return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); -} +layer_state_t layer_state_set_keymap(layer_state_t state) { return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } diff --git a/layouts/community/split_3x6_3/bcat/readme.md b/layouts/community/split_3x6_3/bcat/readme.md index ed17b84186a1..c4bf891c40a5 100644 --- a/layouts/community/split_3x6_3/bcat/readme.md +++ b/layouts/community/split_3x6_3/bcat/readme.md @@ -1,5 +1,10 @@ # bcat's split 3x6 + 3 thumb keys layout +(See also the +[BlueMicro](https://github.com/jpconstantineau/BlueMicro_BLE/tree/master/firmware/keyboards/crkbd/keymaps/bcat) +and [ZMK](https://github.com/bcat/zmk-config/blob/master/config/corne.keymap) +versions of this keymap.) + This is my favorite split ergo layout for typing, featuring the traditional four ortho/ergo layers (Default, Lower, Raise, Adjust). It is loosely inspired by the default Planck (numbers on Lower, symbols on Raise) and Crkbd (Space on diff --git a/users/bcat/bcat.c b/users/bcat/bcat.c index 397d565da0cc..f21d282e43f6 100644 --- a/users/bcat/bcat.c +++ b/users/bcat/bcat.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 "bcat.h" #if defined(RGBLIGHT_ENABLE) diff --git a/users/bcat/bcat.h b/users/bcat/bcat.h index 1ea05e5fa8af..0dae774ec538 100644 --- a/users/bcat/bcat.h +++ b/users/bcat/bcat.h @@ -1,8 +1,24 @@ +/* Copyright 2021 Jonathan Rascher + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include "quantum.h" -enum user_keycodes { +enum user_keycode { MC_ALTT = SAFE_RANGE, KEYMAP_SAFE_RANGE, }; diff --git a/users/bcat/readme.md b/users/bcat/readme.md index 6d097d663df6..1922f95f4a18 100644 --- a/users/bcat/readme.md +++ b/users/bcat/readme.md @@ -15,7 +15,7 @@ Columnar-staggered split ergo layout, preferred for typing. Used on Crkbd. * [60% Tsangan HHKB](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_tsangan_hhkb/bcat): Row-staggered layout, preferred for gaming. Used on ai03 Polaris, CannonKeys -AN-C, CannonKeys Instant60. +AN-C, CannonKeys Instant60, DZ60. ## Other keymaps From e9a3e20813a2b13fc2fac9c90d999f8dfb1ce680 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 3 Aug 2021 10:03:25 -0700 Subject: [PATCH 149/328] 4pplet/eagle_viper_rep/rev_a: fix missing key object (#13867) Adds a key object for the KC_NUHS key to the info.json data. --- keyboards/4pplet/eagle_viper_rep/info.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/4pplet/eagle_viper_rep/info.json b/keyboards/4pplet/eagle_viper_rep/info.json index dced671bcad0..b69bcb87d9f2 100644 --- a/keyboards/4pplet/eagle_viper_rep/info.json +++ b/keyboards/4pplet/eagle_viper_rep/info.json @@ -48,7 +48,8 @@ { "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": "~", "x": 12.75, "y": 2}, + { "label": "Enter", "x": 13.75, "y": 2, "w": 1.25 }, { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, { "label": "|", "x": 1.25, "y": 3 }, { "label": "Z", "x": 2.25, "y": 3 }, From f2fc23d1b13045f991b0269c2853e3219b052b80 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 3 Aug 2021 10:20:53 -0700 Subject: [PATCH 150/328] aves65: complete layout data (#13868) add layout data for: - LAYOUT_all - LAYOUT_65_iso - LAYOUT_65_iso_split_bs - LAYOUT_65_iso_blocker_split_bs - LAYOUT_65_ansi - LAYOUT_65_ansi_split_bs - LAYOUT_65_ansi_blocker - LAYOUT_65_ansi_blocker_split_bs --- keyboards/aves65/info.json | 632 ++++++++++++++++++++++++++++++++++++- 1 file changed, 623 insertions(+), 9 deletions(-) diff --git a/keyboards/aves65/info.json b/keyboards/aves65/info.json index 9454f1183508..3c68b4fa60ed 100644 --- a/keyboards/aves65/info.json +++ b/keyboards/aves65/info.json @@ -1,10 +1,243 @@ { - "keyboard_name": "Aves65", - "url": "", - "maintainer": "Hund", - "width": 16, - "height": 5, + "keyboard_name": "Aves65", + "url": "", + "maintainer": "Hund", + "width": 16, + "height": 5, "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2c", "x":12.75, "y":2}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_split_bs": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2c", "x":12.75, "y":2}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, "LAYOUT_65_iso_blocker": { "layout": [ {"label":"k00", "x":0, "y":0}, @@ -22,7 +255,7 @@ {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k0e", "x":15, "y":0}, - + {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, @@ -37,7 +270,7 @@ {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1e", "x":15, "y":1}, - + {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, @@ -53,7 +286,7 @@ {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"k2e", "x":15, "y":2}, - + {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, @@ -69,7 +302,388 @@ {"label":"k3c", "x":12.25, "y":3, "w":1.75}, {"label":"k3d", "x":14, "y":3}, {"label":"k3e", "x":15, "y":3}, - + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2c", "x":12.75, "y":2}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_split_bs": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, From 2b097d670a9fa458b8d059f824a0cbbd5b6c6659 Mon Sep 17 00:00:00 2001 From: Joakim Tufvegren Date: Tue, 3 Aug 2021 23:40:08 +0200 Subject: [PATCH 151/328] Fix overflows in WPM calculations (#13128) * Fix overflow in WPM calculations. First, the "fresh" WPM calculation could end up being up to 12000 (with default `WPM_ESTIMATED_WORD_SIZE`) if keys were pressed more or less simultaneously. This value has now been clamped down to 255, in effect clamping WPM to its max value of 255. Second, with `WPM_ALLOW_COUNT_REGRESSION` enabled, it was possible to regress the WPM below 0 (i.e. to 255) by just repeatedly pressing backspace. * Fix WPM being limited to 235 due to float/int logic. --- quantum/wpm.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/quantum/wpm.c b/quantum/wpm.c index bec419a48e57..e711e9fe73e0 100644 --- a/quantum/wpm.c +++ b/quantum/wpm.c @@ -17,6 +17,8 @@ #include "wpm.h" +#include + // WPM Stuff static uint8_t current_wpm = 0; static uint16_t wpm_timer = 0; @@ -69,14 +71,22 @@ __attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) { void update_wpm(uint16_t keycode) { if (wpm_keycode(keycode)) { if (wpm_timer > 0) { - current_wpm += ((60000 / timer_elapsed(wpm_timer) / WPM_ESTIMATED_WORD_SIZE) - current_wpm) * wpm_smoothing; + uint16_t latest_wpm = 60000 / timer_elapsed(wpm_timer) / WPM_ESTIMATED_WORD_SIZE; + if (latest_wpm > UINT8_MAX) { + latest_wpm = UINT8_MAX; + } + current_wpm += ceilf((latest_wpm - current_wpm) * wpm_smoothing); } wpm_timer = timer_read(); } #ifdef WPM_ALLOW_COUNT_REGRESSION uint8_t regress = wpm_regress_count(keycode); if (regress) { - current_wpm -= regress; + if (current_wpm < regress) { + current_wpm = 0; + } else { + current_wpm -= regress; + } wpm_timer = timer_read(); } #endif From d1cbea685e5a47534d2823ff4c67af7e24bb9210 Mon Sep 17 00:00:00 2001 From: Ryan Baker <76887060+ryanbaekr@users.noreply.github.com> Date: Tue, 3 Aug 2021 18:54:12 -0400 Subject: [PATCH 152/328] rb86 (#13824) * rb86 * adjudicate comments --- keyboards/ryanbaekr/rb86/config.h | 150 ++++++++++++++++++ keyboards/ryanbaekr/rb86/info.json | 12 ++ .../ryanbaekr/rb86/keymaps/default/keymap.c | 36 +++++ .../ryanbaekr/rb86/keymaps/default/readme.md | 1 + keyboards/ryanbaekr/rb86/keymaps/via/keymap.c | 54 +++++++ keyboards/ryanbaekr/rb86/keymaps/via/rules.mk | 2 + keyboards/ryanbaekr/rb86/rb86.c | 17 ++ keyboards/ryanbaekr/rb86/rb86.h | 37 +++++ keyboards/ryanbaekr/rb86/readme.md | 15 ++ keyboards/ryanbaekr/rb86/rules.mk | 23 +++ 10 files changed, 347 insertions(+) create mode 100644 keyboards/ryanbaekr/rb86/config.h create mode 100644 keyboards/ryanbaekr/rb86/info.json create mode 100644 keyboards/ryanbaekr/rb86/keymaps/default/keymap.c create mode 100644 keyboards/ryanbaekr/rb86/keymaps/default/readme.md create mode 100644 keyboards/ryanbaekr/rb86/keymaps/via/keymap.c create mode 100644 keyboards/ryanbaekr/rb86/keymaps/via/rules.mk create mode 100644 keyboards/ryanbaekr/rb86/rb86.c create mode 100644 keyboards/ryanbaekr/rb86/rb86.h create mode 100644 keyboards/ryanbaekr/rb86/readme.md create mode 100644 keyboards/ryanbaekr/rb86/rules.mk diff --git a/keyboards/ryanbaekr/rb86/config.h b/keyboards/ryanbaekr/rb86/config.h new file mode 100644 index 000000000000..39955da1de72 --- /dev/null +++ b/keyboards/ryanbaekr/rb86/config.h @@ -0,0 +1,150 @@ +/* +Copyright 2021 ryanbaekr + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7262 +#define PRODUCT_ID 0x0086 +#define DEVICE_VER 0x0002 +#define MANUFACTURER ryanbaekr +#define PRODUCT rb86 + +/* 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 { B0, B1, B2, B3, B4, D7 } +#define MATRIX_COL_PINS { B6, B5, D5, C7, F1, F0, D3, D2, D1, D0, D4, E6, B7, C6, F4, F5, F6 } +#define UNUSED_PINS + +/* 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 + + + +/* 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 userful 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 + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/ryanbaekr/rb86/info.json b/keyboards/ryanbaekr/rb86/info.json new file mode 100644 index 000000000000..9a8f0c904120 --- /dev/null +++ b/keyboards/ryanbaekr/rb86/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "rb86", + "url": "", + "maintainer": "qmk", + "width": 17.25, + "height": 6.25, + "layouts": { + "LAYOUT_numpad_6x17": { + "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":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":15.25, "y":4.25}, {"x":0, "y":5.25}, {"x":1, "y":5.25}, {"x":2, "y":5.25}, {"x":3, "y":5.25}, {"x":4, "y":5.25, "w":6.25}, {"x":10.25, "y":5.25, "w":1.25}, {"x":11.5, "y":5.25, "w":1.25}, {"x":12.75, "y":5.25, "w":1.25}, {"x":14.25, "y":5.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}] + } + } +} diff --git a/keyboards/ryanbaekr/rb86/keymaps/default/keymap.c b/keyboards/ryanbaekr/rb86/keymaps/default/keymap.c new file mode 100644 index 000000000000..bc06b7952fd6 --- /dev/null +++ b/keyboards/ryanbaekr/rb86/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 ryanbaekr + * + * 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_numpad_6x17( + 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_HOME, KC_END, KC_PSCR, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, TG(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_F13, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_numpad_6x17( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLCK, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ryanbaekr/rb86/keymaps/default/readme.md b/keyboards/ryanbaekr/rb86/keymaps/default/readme.md new file mode 100644 index 000000000000..81c91e2296d7 --- /dev/null +++ b/keyboards/ryanbaekr/rb86/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for rb86 diff --git a/keyboards/ryanbaekr/rb86/keymaps/via/keymap.c b/keyboards/ryanbaekr/rb86/keymaps/via/keymap.c new file mode 100644 index 000000000000..1d22af857e1b --- /dev/null +++ b/keyboards/ryanbaekr/rb86/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2021 ryanbaekr + * + * 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_numpad_6x17( + 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_HOME, KC_END, KC_PSCR, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, TG(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_F13, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_numpad_6x17( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLCK, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_numpad_6x17( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_numpad_6x17( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ryanbaekr/rb86/keymaps/via/rules.mk b/keyboards/ryanbaekr/rb86/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/ryanbaekr/rb86/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/ryanbaekr/rb86/rb86.c b/keyboards/ryanbaekr/rb86/rb86.c new file mode 100644 index 000000000000..b3375cb4fcff --- /dev/null +++ b/keyboards/ryanbaekr/rb86/rb86.c @@ -0,0 +1,17 @@ +/* Copyright 2021 ryanbaekr + * + * 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 "rb86.h" diff --git a/keyboards/ryanbaekr/rb86/rb86.h b/keyboards/ryanbaekr/rb86/rb86.h new file mode 100644 index 000000000000..71a89525f7c0 --- /dev/null +++ b/keyboards/ryanbaekr/rb86/rb86.h @@ -0,0 +1,37 @@ +/* Copyright 2021 ryanbaekr + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_numpad_6x17( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k114, k115, k116, \ + k200, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k413, k415, \ + k500, k501, k502, k503, k507, k510, k512, k513, k514, k515, k516 \ +){ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____, k114, k115, k116 }, \ + { k200, ____, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216 }, \ + { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____, ____ }, \ + { ____, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, ____, k413, ____, k415, ____ }, \ + { k500, k501, k502, k503, ____, ____, ____, k507, ____, ____, k510, ____, k512, k513, k514, k515, k516 } \ +} diff --git a/keyboards/ryanbaekr/rb86/readme.md b/keyboards/ryanbaekr/rb86/readme.md new file mode 100644 index 000000000000..36a8c6318341 --- /dev/null +++ b/keyboards/ryanbaekr/rb86/readme.md @@ -0,0 +1,15 @@ +# rb86 + +A diy sandwich compact TKL keyboard. + +* Keyboard Maintainer: [ryanbaekr](https://github.com/ryanbaekr) +* Hardware Supported: rb86 with Elite-C +* Hardware Availability: 2021/05/15 + +Make example for this keyboard (after setting up your build environment): + + make ryanbaekr/rb86:default + +To boot into the bootloader, hold the reset button on the Elite-C on plug in + +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). diff --git a/keyboards/ryanbaekr/rb86/rules.mk b/keyboards/ryanbaekr/rb86/rules.mk new file mode 100644 index 000000000000..22b811dcd4be --- /dev/null +++ b/keyboards/ryanbaekr/rb86/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth support +AUDIO_ENABLE = no # Audio output From 8802d28aade4c403c69daa45f9ff0dba790116c8 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 3 Aug 2021 16:29:41 -0700 Subject: [PATCH 153/328] boardsource/holiday/spooky: update info.json layout macro reference (#13875) - change LAYOUT to LAYOUT_ortho_2x3 --- keyboards/boardsource/holiday/spooky/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/boardsource/holiday/spooky/info.json b/keyboards/boardsource/holiday/spooky/info.json index a39b45b72688..e792607fef15 100644 --- a/keyboards/boardsource/holiday/spooky/info.json +++ b/keyboards/boardsource/holiday/spooky/info.json @@ -5,7 +5,7 @@ "width": 3, "height": 2, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_2x3": { "layout": [ { "label": "k00", "x": 0, "y": 0 }, { "label": "k01", "x": 1, "y": 0 }, From 9c69db47000c84671abd9e567c124b6f1893cba5 Mon Sep 17 00:00:00 2001 From: Changsu Park <19ds10718@dshs.kr> Date: Wed, 4 Aug 2021 09:22:40 +0900 Subject: [PATCH 154/328] Updated settings.json file to fit VSC's docs (#13829) This change fixes the warning caused by deprecated way of configuring terminal profiles. The warning caused by old settings.json is the following: This is deprecated, the new recommended way to configure your default shell is by creating a terminal profile in `#terminal.integrated.profiles.windows#` and setting its profile name as the default in `#terminal.integrated.defaultProfile.windows#`. This will currently take priority over the new profiles settings but that will change in the future. Refer to the link below for more information: https://code.visualstudio.com/docs/editor/integrated-terminal#_configuration --- docs/other_vscode.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/other_vscode.md b/docs/other_vscode.md index 823f8b498210..2de3c8cb453d 100644 --- a/docs/other_vscode.md +++ b/docs/other_vscode.md @@ -65,14 +65,17 @@ Now, we will set up the MSYS2 window to show up in VSCode as the integrated term ```json { - "terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe", - "terminal.integrated.env.windows": { - "MSYSTEM": "MINGW64", - "CHERE_INVOKING": "1" + "terminal.integrated.profiles.windows": { + "QMK_MSYS": { + "path": "C:/QMK_MSYS/usr/bin/bash.exe", + "env": { + "MSYSTEM": "MINGW64", + "CHERE_INVOKING": "1" + }, + "args": ["--login"] + } }, - "terminal.integrated.shellArgs.windows": [ - "--login" - ], + "terminal.integrated.cursorStyle": "line" } ``` From a0f2be18a40b157fc22720d127da9b312b1232bf Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 3 Aug 2021 17:23:18 -0700 Subject: [PATCH 155/328] Add bootloader section to keyboard template (#13774) * Add bootloader section to keyboard template * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan --- quantum/template/avr/readme.md | 8 ++++++++ quantum/template/ps2avrgb/readme.md | 11 +++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/quantum/template/avr/readme.md b/quantum/template/avr/readme.md index fd145584202e..b099ed726d26 100644 --- a/quantum/template/avr/readme.md +++ b/quantum/template/avr/readme.md @@ -17,3 +17,11 @@ Flashing example for this keyboard: make %KEYBOARD%:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/quantum/template/ps2avrgb/readme.md b/quantum/template/ps2avrgb/readme.md index f19743a16371..94063f9ebc4b 100644 --- a/quantum/template/ps2avrgb/readme.md +++ b/quantum/template/ps2avrgb/readme.md @@ -16,6 +16,13 @@ Flashing example for this keyboard ([after setting up the bootloadHID flashing e make %KEYBOARD%:default:flash -**Reset Key**: Hold down the key located at *LOCATION*, commonly programmed as *KEY* while plugging in the keyboard. - 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 +* **BootloadHID reset**: Hold down the key connected to the `A0` and `B0` pins on the MCU if it is known (often top left or bottom left) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available From ae20574f84e11c1c9ef3c8dfdb1bd4d3274e9bff Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 3 Aug 2021 19:09:25 -0700 Subject: [PATCH 156/328] barracuda: update info.json layout macro reference (#13874) * barracuda: update info.json layout macro reference - change LAYOUT to LAYOUT_ortho_3x11 * remove Community Layouts rule ortho_3x11 isn't a valid Community Layout. --- keyboards/barracuda/info.json | 2 +- keyboards/barracuda/rules.mk | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/keyboards/barracuda/info.json b/keyboards/barracuda/info.json index ac43850dae83..41b98151142a 100644 --- a/keyboards/barracuda/info.json +++ b/keyboards/barracuda/info.json @@ -5,7 +5,7 @@ "width": 14, "height": 3, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_3x11": { "layout": [ {"x": 0, "y": 0}, {"x": 1, "y": 0}, diff --git a/keyboards/barracuda/rules.mk b/keyboards/barracuda/rules.mk index 7233e7c00f0f..09a21e9e0bbf 100644 --- a/keyboards/barracuda/rules.mk +++ b/keyboards/barracuda/rules.mk @@ -20,5 +20,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output - -LAYOUTS = ortho_3x11 From 8e8803459f1a6ab0ceebca6ef93cb33b57e827b3 Mon Sep 17 00:00:00 2001 From: Reza Jelveh Date: Wed, 4 Aug 2021 18:35:17 +0800 Subject: [PATCH 157/328] Updated Ducky 2 one mini support (#11112) * Initial Ducky One 2 Mini keyboard and keymap * Keymap macro issue, together with general polish suggestions * Separate default keymap into proper default, iso and ansi versions * info.json updates (Configurator support). DEBOUNCE define adjust. * Unused keymap defines removed. * update requested ducky one mini2 board changes * ducky: don't trigger app key with left shift * ducky: make default mouse key behavior more linear * ducky: add GRAVE_ESC_GUI_OVERRIDE to allow for win+esc to work * ducky: playpause on fn space * ducky: disable RGB_MATRIX until driver is merged * ducky: clang-format matrix and one2mini.c * ducky: update requested changes Remove WFI_IDLE since it's already in the rules.mk CORTEX_ENABLE_WFI_IDLE=TRUE * ducky: update requested changes * ducky: move winkey grave esc to default keymap * ducky: remove dipswitch from keymap and use DIP_SWITCH_MATRIX_GRID instead * ducky: info.json lint * ducky: enable DIP_SWITCH_ENABLE rule * ducky: update readme * ducky: fix backslash on default keymap * ducky: remove unused USB_LED_CAPSLOCK_INDEX 28 * ducky: move mbi5042 led driver to ducky keyboard * ducky: cosmetics * ducky: requested changes * ducky: refactor matrix.c again so we can better compare it to other boards * ducky: remove bootmagic_lite as the boards bootloader trigger is actually handled in its own bootloader * ducky: remove custom matrix * ducky: update for chibios-contrib changes * ducky: debug new USB driver * ducky: debug usb issues * ducky: update chibios version * ducky: remove halconf.h * ducky: update rules.mk * ducky: update chconf.h * Matching submodules. * Restructure to explicitly define which board is in use, remove RGB driver pending followup PR. * Revert "Matching submodules." This reverts commit 2fbb34e0c63ea67ee09d2e2d525723c01431d1cd. Co-authored-by: GitWellBack <48095880+GitWellBack@users.noreply.github.com> Co-authored-by: Nick Brassel --- keyboards/ducky/one2mini/1861st/1861st.h | 68 ++ .../1861st/boards/NUC123SD4AN0/board.c | 57 ++ .../1861st/boards/NUC123SD4AN0/board.h | 961 ++++++++++++++++++ .../1861st/boards/NUC123SD4AN0/board.mk | 5 + keyboards/ducky/one2mini/1861st/chconf.h | 23 + keyboards/ducky/one2mini/1861st/config.h | 56 + keyboards/ducky/one2mini/1861st/info.json | 208 ++++ keyboards/ducky/one2mini/1861st/mcuconf.h | 51 + keyboards/ducky/one2mini/1861st/readme.md | 29 + keyboards/ducky/one2mini/1861st/rules.mk | 35 + .../ducky/one2mini/keymaps/ansi/keymap.c | 56 + .../ducky/one2mini/keymaps/ansi/readme.md | 1 + .../ducky/one2mini/keymaps/default/config.h | 25 + .../ducky/one2mini/keymaps/default/keymap.c | 56 + .../ducky/one2mini/keymaps/default/readme.md | 1 + keyboards/ducky/one2mini/keymaps/iso/keymap.c | 56 + .../ducky/one2mini/keymaps/iso/readme.md | 1 + keyboards/ducky/one2mini/readme.md | 7 + keyboards/ducky/one2mini/rules.mk | 1 + 19 files changed, 1697 insertions(+) create mode 100644 keyboards/ducky/one2mini/1861st/1861st.h create mode 100644 keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.c create mode 100644 keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.h create mode 100644 keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.mk create mode 100644 keyboards/ducky/one2mini/1861st/chconf.h create mode 100644 keyboards/ducky/one2mini/1861st/config.h create mode 100644 keyboards/ducky/one2mini/1861st/info.json create mode 100644 keyboards/ducky/one2mini/1861st/mcuconf.h create mode 100644 keyboards/ducky/one2mini/1861st/readme.md create mode 100644 keyboards/ducky/one2mini/1861st/rules.mk create mode 100644 keyboards/ducky/one2mini/keymaps/ansi/keymap.c create mode 100644 keyboards/ducky/one2mini/keymaps/ansi/readme.md create mode 100644 keyboards/ducky/one2mini/keymaps/default/config.h create mode 100644 keyboards/ducky/one2mini/keymaps/default/keymap.c create mode 100644 keyboards/ducky/one2mini/keymaps/default/readme.md create mode 100644 keyboards/ducky/one2mini/keymaps/iso/keymap.c create mode 100644 keyboards/ducky/one2mini/keymaps/iso/readme.md create mode 100644 keyboards/ducky/one2mini/readme.md create mode 100644 keyboards/ducky/one2mini/rules.mk diff --git a/keyboards/ducky/one2mini/1861st/1861st.h b/keyboards/ducky/one2mini/1861st/1861st.h new file mode 100644 index 000000000000..2f6f7eee7650 --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/1861st.h @@ -0,0 +1,68 @@ +/* Copyright 2019 /u/KeepItUnder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, 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, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO }, \ + { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d } \ +} + +#define LAYOUT_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, k2c, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \ + { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO }, \ + { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d } \ +} + +#define LAYOUT_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, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO, }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, KC_NO, }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO, }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO, }, \ + { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d } \ +} diff --git a/keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.c b/keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.c new file mode 100644 index 000000000000..a10223603ef9 --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.c @@ -0,0 +1,57 @@ +/* + ChibiOS Driver element - Copyright (C) 2019 /u/KeepItUnder + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include "hal.h" + +#if HAL_USE_PAL || defined(__DOXYGEN__) +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +const PALConfig pal_default_config = { +# if NUC123_HAS_GPIOA + {VAL_GPIOA_PMD, VAL_GPIOA_OFFD, VAL_GPIOA_DMASK, VAL_GPIOA_DBEN, VAL_GPIOA_IMD, VAL_GPIOA_IEN, VAL_GPIOA_ISRC, VAL_GPIOA_DOUT}, +# endif +# if NUC123_HAS_GPIOB + {VAL_GPIOB_PMD, VAL_GPIOB_OFFD, VAL_GPIOB_DMASK, VAL_GPIOB_DBEN, VAL_GPIOB_IMD, VAL_GPIOB_IEN, VAL_GPIOB_ISRC, VAL_GPIOB_DOUT}, +# endif +# if NUC123_HAS_GPIOC + {VAL_GPIOC_PMD, VAL_GPIOC_OFFD, VAL_GPIOC_DMASK, VAL_GPIOC_DBEN, VAL_GPIOC_IMD, VAL_GPIOC_IEN, VAL_GPIOC_ISRC, VAL_GPIOC_DOUT}, +# endif +# if NUC123_HAS_GPIOD + {VAL_GPIOD_PMD, VAL_GPIOD_OFFD, VAL_GPIOD_DMASK, VAL_GPIOD_DBEN, VAL_GPIOD_IMD, VAL_GPIOD_IEN, VAL_GPIOD_ISRC, VAL_GPIOD_DOUT}, +# endif +# if NUC123_HAS_GPIOF + {VAL_GPIOF_PMD, VAL_GPIOF_OFFD, VAL_GPIOF_DMASK, VAL_GPIOF_DBEN, VAL_GPIOF_IMD, VAL_GPIOF_IEN, VAL_GPIOF_ISRC, VAL_GPIOF_DOUT}, +# endif +}; +#endif + +/** + * @brief Early initialization code. + * @details This initialization must be performed just after stack setup + * and before any other initialization. + */ +void __early_init(void) { + NUC123_clock_init(); +} + +/** + * @brief Board-specific initialization code. + * @todo Add your board-specific code, if any. + */ +void boardInit(void) {} diff --git a/keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.h b/keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.h new file mode 100644 index 000000000000..c43b2ce422ea --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.h @@ -0,0 +1,961 @@ +/* + ChibiOS Driver element - Copyright (C) 2019 /u/KeepItUnder + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef BOARD_H +#define BOARD_H + +/* + * Setup for Generic NUC123 board. + */ + +/* + * Board identifier. + */ +#define BOARD_NUC123SD4AN0 +#define BOARD_NAME "Nuvoton NUC123SD4AN0 MCU" + +/* + * Board oscillators-related settings. + * NOTE: LSE not fitted. + * NOTE: HSE is fitted. + */ +#if !defined(NUC123_LSECLK) +#define NUC123_LSECLK 0U +#endif + +#define NUC123_LSEDRV (3U << 3U) + +#if !defined(NUC123_HSECLK) +#define NUC123_HSECLK 12000000U +#endif + +//#define NUC123_HSE_BYPASS + +/* + * MCU type as defined in the NUC123 header. + */ +#define NUC123SD4AN0 + +/* + * GPIO Multi Function Pin USB Setup + * Requires Some GPIO pins to be disabled/set to USB + */ + +/* + * IO pins assignments. + */ +#define GPIOA_PIN0 0U +#define GPIOA_PIN1 1U +#define GPIOA_PIN2 2U +#define GPIOA_PIN3 3U +#define GPIOA_PIN4 4U +#define GPIOA_PIN5 5U +#define GPIOA_PIN6 6U +#define GPIOA_PIN7 7U +#define GPIOA_PIN8 8U +#define GPIOA_PIN9 9U +#define GPIOA_SPI1_MISO0 10U +#define GPIOA_SPI1_CLK 11U +#define GPIOA_PWM0 12U +#define GPIOA_PWM1 13U +#define GPIOA_PWM2 14U +#define GPIOA_PWM3 15U + +#define GPIOB_UART0_RXD 0U +#define GPIOB_UART0_TXD 1U +#define GPIOB_UART0_RTS 2U +#define GPIOB_UART0_CTS 3U +#define GPIOB_UART1_RXD 4U +#define GPIOB_UART1_TXD 5U +#define GPIOB_UART1_RTS 6U +#define GPIOB_UART1_CTS 7U +#define GPIOB_TM0 8U +#define GPIOB_TM1 9U +#define GPIOB_TM2 10U +#define GPIOB_PIN11 11U +#define GPIOB_CLK0 12U +#define GPIOB_PIN13 13U +#define GPIOB_INT0 14U +#define GPIOB_INT1 15U + +#define GPIOC_PIN0 0U +#define GPIOC_PIN1 1U +#define GPIOC_PIN2 2U +#define GPIOC_PIN3 3U +#define GPIOC_PIN4 4U +#define GPIOC_PIN5 5U +#define GPIOC_PIN6 6U +#define GPIOC_PIN7 7U +#define GPIOC_PIN8 8U +#define GPIOC_PIN9 9U +#define GPIOC_PIN10 10U +#define GPIOC_PIN11 11U +#define GPIOC_PIN12 12U +#define GPIOC_PIN13 13U +#define GPIOC_PIN14 14U +#define GPIOC_PIN15 15U + +#define GPIOD_ADC0 0U +#define GPIOD_ADC1 1U +#define GPIOD_ADC2 2U +#define GPIOD_ADC3 3U +#define GPIOD_ADC4 4U +#define GPIOD_ADC5 5U +#define GPIOD_PIN6 6U +#define GPIOD_PIN7 7U +#define GPIOD_PIN8 8U +#define GPIOD_PIN9 9U +#define GPIOD_PIN10 10U +#define GPIOD_PIN11 11U +#define GPIOD_PIN12 12U +#define GPIOD_PIN13 13U +#define GPIOD_PIN14 14U +#define GPIOD_PIN15 15U + +#define GPIOE_PIN0 0U +#define GPIOE_PIN1 1U +#define GPIOE_PIN2 2U +#define GPIOE_PIN3 3U +#define GPIOE_PIN4 4U +#define GPIOE_PIN5 5U +#define GPIOE_PIN6 6U +#define GPIOE_PIN7 7U +#define GPIOE_PIN8 8U +#define GPIOE_PIN9 9U +#define GPIOE_PIN10 10U +#define GPIOE_PIN11 11U +#define GPIOE_PIN12 12U +#define GPIOE_PIN13 13U +#define GPIOE_PIN14 14U +#define GPIOE_PIN15 15U + +#define GPIOF_OSC_OUT 0U +#define GPIOF_OSC_IN 1U +#define GPIOF_I2C0_SDA 2U +#define GPIOF_I2C0_SCL 3U +#define GPIOF_PIN4 4U +#define GPIOF_PIN5 5U +#define GPIOF_PIN6 6U +#define GPIOF_PIN7 7U +#define GPIOF_PIN8 8U +#define GPIOF_PIN9 9U +#define GPIOF_PIN10 10U +#define GPIOF_PIN11 11U +#define GPIOF_PIN12 12U +#define GPIOF_PIN13 13U +#define GPIOF_PIN14 14U +#define GPIOF_PIN15 15U + +/* + * IO lines assignments. + */ +#define LINE_USB_DM PAL_LINE(GPIOA, 11U) +#define LINE_USB_DP PAL_LINE(GPIOA, 12U) +#define LINE_SWDIO PAL_LINE(GPIOA, 13U) +#define LINE_SWCLK PAL_LINE(GPIOA, 14U) + +// #define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U) +// #define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U) +// #define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U) + +#define LINE_OSC_IN PAL_LINE(GPIOF, 0U) +#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U) + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * Please refer to the NUC123 Reference Manual for details. + */ +#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) +#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) +#define PIN_MODE_OPENDRAIN(n) (2U << ((n) * 2U)) +#define PIN_MODE_QUASI(n) (3U << ((n) * 2U)) +#define PIN_DIGITAL_EN(n) (0U << (n)) +#define PIN_DIGITAL_DIS(n) (1U << (n)) +#define PIN_DMASK_DIS(n) (0U << (n)) +#define PIN_DMASK_EN(n) (1U << (n)) +#define PIN_DBNCE_DIS(n) (0U << (n)) +#define PIN_DBNCE_EN(n) (1U << (n)) +#define PIN_IMD_EDGE(n) (0U << (n)) +#define PIN_IMD_LVL(n) (1U << (n)) +#define PIN_IEN_FELL_DIS(n) (0U << (n)) +#define PIN_IEN_FELL_EN(n) (1U << (n)) +#define PIN_IEN_REHL_DIS(n) ((0U << (n)) << 16) +#define PIN_IEN_REHL_EN(n) ((1U << (n)) << 16) +#define PIN_ISRC_EN(n) (1U << (n)) +#define PIN_ISRC_DIS(n) (0U << (n)) +#define PIN_ISRC_CLR(n) (1U << (n)) +#define PIN_DATA_LOW(n) (0U << (n)) +#define PIN_DATA_HIGH(n) (1U << (n)) + +/* + * GPIOA setup: + * + * PA0 - PIN0 (input pullup). + * PA1 - PIN1 (input pullup). + * PA2 - PIN2 (input pullup). + * PA3 - PIN3 (input pullup). + * PA4 - PIN4 (input pullup). + * PA5 - PIN5 (input pullup). + * PA6 - PIN6 (input pullup). + * PA7 - PIN7 (input pullup). + * PA8 - PIN8 (input pullup). + * PA9 - PIN9 (input pullup). + * PA10 - SPI1_MISO0 (input pullup). + * PA11 - SPI1_CLK (input floating). + * PA12 - PWM0 (input floating). + * PA13 - PWM1 (input pullup). + * PA14 - PWM2 (input pullup). + * PA15 - PWM3 (input pullup). + */ + +#define VAL_GPIOA_PMD (PIN_MODE_INPUT(GPIOA_PIN0) | \ + PIN_MODE_INPUT(GPIOA_PIN1) | \ + PIN_MODE_INPUT(GPIOA_PIN2) | \ + PIN_MODE_INPUT(GPIOA_PIN3) | \ + PIN_MODE_INPUT(GPIOA_PIN4) | \ + PIN_MODE_INPUT(GPIOA_PIN5) | \ + PIN_MODE_INPUT(GPIOA_PIN6) | \ + PIN_MODE_INPUT(GPIOA_PIN7) | \ + PIN_MODE_INPUT(GPIOA_PIN8) | \ + PIN_MODE_INPUT(GPIOA_PIN9) | \ + PIN_MODE_INPUT(GPIOA_SPI1_MISO0) | \ + PIN_MODE_INPUT(GPIOA_SPI1_CLK) | \ + PIN_MODE_INPUT(GPIOA_PWM0) | \ + PIN_MODE_INPUT(GPIOA_PWM1) | \ + PIN_MODE_INPUT(GPIOA_PWM2) | \ + PIN_MODE_INPUT(GPIOA_PWM3)) +#define VAL_GPIOA_OFFD (PIN_DIGITAL_EN(GPIOA_PIN0) | \ + PIN_DIGITAL_EN(GPIOA_PIN1) | \ + PIN_DIGITAL_EN(GPIOA_PIN2) | \ + PIN_DIGITAL_EN(GPIOA_PIN3) | \ + PIN_DIGITAL_EN(GPIOA_PIN4) | \ + PIN_DIGITAL_EN(GPIOA_PIN5) | \ + PIN_DIGITAL_EN(GPIOA_PIN6) | \ + PIN_DIGITAL_EN(GPIOA_PIN7) | \ + PIN_DIGITAL_EN(GPIOA_PIN8) | \ + PIN_DIGITAL_EN(GPIOA_PIN9) | \ + PIN_DIGITAL_EN(GPIOA_SPI1_MISO0) | \ + PIN_DIGITAL_EN(GPIOA_SPI1_CLK) | \ + PIN_DIGITAL_EN(GPIOA_PWM0) | \ + PIN_DIGITAL_EN(GPIOA_PWM1) | \ + PIN_DIGITAL_EN(GPIOA_PWM2) | \ + PIN_DIGITAL_EN(GPIOA_PWM3)) +#define VAL_GPIOA_DMASK (PIN_DMASK_EN(GPIOA_PIN0) | \ + PIN_DMASK_EN(GPIOA_PIN1) | \ + PIN_DMASK_EN(GPIOA_PIN2) | \ + PIN_DMASK_EN(GPIOA_PIN3) | \ + PIN_DMASK_EN(GPIOA_PIN4) | \ + PIN_DMASK_EN(GPIOA_PIN5) | \ + PIN_DMASK_EN(GPIOA_PIN6) | \ + PIN_DMASK_EN(GPIOA_PIN7) | \ + PIN_DMASK_EN(GPIOA_PIN8) | \ + PIN_DMASK_EN(GPIOA_PIN9) | \ + PIN_DMASK_EN(GPIOA_SPI1_MISO0) | \ + PIN_DMASK_EN(GPIOA_SPI1_CLK) | \ + PIN_DMASK_EN(GPIOA_PWM0) | \ + PIN_DMASK_EN(GPIOA_PWM1) | \ + PIN_DMASK_EN(GPIOA_PWM2) | \ + PIN_DMASK_EN(GPIOA_PWM3)) +#define VAL_GPIOA_DBEN (PIN_DBNCE_EN(GPIOA_PIN0) | \ + PIN_DBNCE_EN(GPIOA_PIN1) | \ + PIN_DBNCE_EN(GPIOA_PIN2) | \ + PIN_DBNCE_EN(GPIOA_PIN3) | \ + PIN_DBNCE_EN(GPIOA_PIN4) | \ + PIN_DBNCE_EN(GPIOA_PIN5) | \ + PIN_DBNCE_EN(GPIOA_PIN6) | \ + PIN_DBNCE_EN(GPIOA_PIN7) | \ + PIN_DBNCE_EN(GPIOA_PIN8) | \ + PIN_DBNCE_EN(GPIOA_PIN9) | \ + PIN_DBNCE_EN(GPIOA_SPI1_MISO0) | \ + PIN_DBNCE_EN(GPIOA_SPI1_CLK) | \ + PIN_DBNCE_EN(GPIOA_PWM0) | \ + PIN_DBNCE_EN(GPIOA_PWM1) | \ + PIN_DBNCE_EN(GPIOA_PWM2) | \ + PIN_DBNCE_EN(GPIOA_PWM3)) +#define VAL_GPIOA_IMD (PIN_IMD_EDGE(GPIOA_PIN0) | \ + PIN_IMD_EDGE(GPIOA_PIN1) | \ + PIN_IMD_EDGE(GPIOA_PIN2) | \ + PIN_IMD_EDGE(GPIOA_PIN3) | \ + PIN_IMD_EDGE(GPIOA_PIN4) | \ + PIN_IMD_EDGE(GPIOA_PIN5) | \ + PIN_IMD_EDGE(GPIOA_PIN6) | \ + PIN_IMD_EDGE(GPIOA_PIN7) | \ + PIN_IMD_EDGE(GPIOA_PIN8) | \ + PIN_IMD_EDGE(GPIOA_PIN9) | \ + PIN_IMD_EDGE(GPIOA_SPI1_MISO0) | \ + PIN_IMD_EDGE(GPIOA_SPI1_CLK) | \ + PIN_IMD_EDGE(GPIOA_PWM0) | \ + PIN_IMD_EDGE(GPIOA_PWM1) | \ + PIN_IMD_EDGE(GPIOA_PWM2) | \ + PIN_IMD_EDGE(GPIOA_PWM3)) +#define VAL_GPIOA_IEN (PIN_IEN_FELL_DIS(GPIOA_PIN0) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN1) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN2) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN3) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN4) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN5) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN6) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN7) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN8) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN9) | \ + PIN_IEN_FELL_DIS(GPIOA_SPI1_MISO0) | \ + PIN_IEN_FELL_DIS(GPIOA_SPI1_CLK) | \ + PIN_IEN_FELL_DIS(GPIOA_PWM0) | \ + PIN_IEN_FELL_DIS(GPIOA_PWM1) | \ + PIN_IEN_FELL_DIS(GPIOA_PWM2) | \ + PIN_IEN_FELL_DIS(GPIOA_PWM3)) +#define VAL_GPIOA_ISRC (PIN_ISRC_DIS(GPIOA_PIN0) | \ + PIN_ISRC_DIS(GPIOA_PIN1) | \ + PIN_ISRC_DIS(GPIOA_PIN2) | \ + PIN_ISRC_DIS(GPIOA_PIN3) | \ + PIN_ISRC_DIS(GPIOA_PIN4) | \ + PIN_ISRC_DIS(GPIOA_PIN5) | \ + PIN_ISRC_DIS(GPIOA_PIN6) | \ + PIN_ISRC_DIS(GPIOA_PIN7) | \ + PIN_ISRC_DIS(GPIOA_PIN8) | \ + PIN_ISRC_DIS(GPIOA_PIN9) | \ + PIN_ISRC_DIS(GPIOA_SPI1_MISO0) | \ + PIN_ISRC_DIS(GPIOA_SPI1_CLK) | \ + PIN_ISRC_DIS(GPIOA_PWM0) | \ + PIN_ISRC_DIS(GPIOA_PWM1) | \ + PIN_ISRC_DIS(GPIOA_PWM2) | \ + PIN_ISRC_DIS(GPIOA_PWM3)) +#define VAL_GPIOA_DOUT (PIN_DATA_LOW(GPIOA_PIN0) | \ + PIN_DATA_LOW(GPIOA_PIN1) | \ + PIN_DATA_LOW(GPIOA_PIN2) | \ + PIN_DATA_LOW(GPIOA_PIN3) | \ + PIN_DATA_LOW(GPIOA_PIN4) | \ + PIN_DATA_LOW(GPIOA_PIN5) | \ + PIN_DATA_LOW(GPIOA_PIN6) | \ + PIN_DATA_LOW(GPIOA_PIN7) | \ + PIN_DATA_LOW(GPIOA_PIN8) | \ + PIN_DATA_LOW(GPIOA_PIN9) | \ + PIN_DATA_LOW(GPIOA_SPI1_MISO0) | \ + PIN_DATA_LOW(GPIOA_SPI1_CLK) | \ + PIN_DATA_LOW(GPIOA_PWM0) | \ + PIN_DATA_LOW(GPIOA_PWM1) | \ + PIN_DATA_LOW(GPIOA_PWM2) | \ + PIN_DATA_LOW(GPIOA_PWM3)) + +/* + * GPIOB setup: + * + * PB0 - UART0_RXD (input pullup). + * PB1 - UART0_TXD (output). + * PB2 - UART0_RTS (output). + * PB3 - UART0_CTS (output). + * PB4 - UART1_RXD (output). + * PB5 - UART1_TXD (output). + * PB6 - UART1_RTS (output). + * PB7 - UART1_CTS (output). + * PB8 - TM0 (input pullup). + * PB9 - TM1 (input pullup). + * PB10 - TM2 (input pullup). + * PB11 - PIN11 (input pullup). + * PB12 - CLK0 (output). + * PB13 - PIN13 (output). + * PB14 - INT0 (debug output). + * PB15 - INT1 (input pullup). + */ +#define VAL_GPIOB_PMD (PIN_MODE_INPUT(GPIOB_UART0_RXD) | \ + PIN_MODE_OUTPUT(GPIOB_UART0_TXD) | \ + PIN_MODE_OUTPUT(GPIOB_UART0_RTS) | \ + PIN_MODE_OUTPUT(GPIOB_UART0_CTS) | \ + PIN_MODE_OUTPUT(GPIOB_UART1_RXD) | \ + PIN_MODE_OUTPUT(GPIOB_UART1_TXD) | \ + PIN_MODE_OUTPUT(GPIOB_UART1_RTS) | \ + PIN_MODE_OUTPUT(GPIOB_UART1_CTS) | \ + PIN_MODE_INPUT(GPIOB_TM0) | \ + PIN_MODE_INPUT(GPIOB_TM1) | \ + PIN_MODE_INPUT(GPIOB_TM2) | \ + PIN_MODE_INPUT(GPIOB_PIN11) | \ + PIN_MODE_OUTPUT(GPIOB_CLK0) | \ + PIN_MODE_OUTPUT(GPIOB_PIN13) | \ + PIN_MODE_OUTPUT(GPIOB_INT0) | \ + PIN_MODE_INPUT(GPIOB_INT1)) +#define VAL_GPIOB_OFFD (PIN_DIGITAL_EN(GPIOB_UART0_RXD) | \ + PIN_DIGITAL_DIS(GPIOB_UART0_TXD) | \ + PIN_DIGITAL_DIS(GPIOB_UART0_RTS) | \ + PIN_DIGITAL_DIS(GPIOB_UART0_CTS) | \ + PIN_DIGITAL_DIS(GPIOB_UART1_RXD) | \ + PIN_DIGITAL_DIS(GPIOB_UART1_TXD) | \ + PIN_DIGITAL_DIS(GPIOB_UART1_RTS) | \ + PIN_DIGITAL_DIS(GPIOB_UART1_CTS) | \ + PIN_DIGITAL_DIS(GPIOB_TM0) | \ + PIN_DIGITAL_EN(GPIOB_TM1) | \ + PIN_DIGITAL_EN(GPIOB_TM2) | \ + PIN_DIGITAL_EN(GPIOB_PIN11) | \ + PIN_DIGITAL_DIS(GPIOB_CLK0) | \ + PIN_DIGITAL_DIS(GPIOB_PIN13) | \ + PIN_DIGITAL_DIS(GPIOB_INT0) | \ + PIN_DIGITAL_EN(GPIOB_INT1)) +#define VAL_GPIOB_DMASK (PIN_DMASK_EN(GPIOB_UART0_RXD) | \ + PIN_DMASK_DIS(GPIOB_UART0_TXD) | \ + PIN_DMASK_DIS(GPIOB_UART0_RTS) | \ + PIN_DMASK_DIS(GPIOB_UART0_CTS) | \ + PIN_DMASK_DIS(GPIOB_UART1_RXD) | \ + PIN_DMASK_DIS(GPIOB_UART1_TXD) | \ + PIN_DMASK_DIS(GPIOB_UART1_RTS) | \ + PIN_DMASK_DIS(GPIOB_UART1_CTS) | \ + PIN_DMASK_EN(GPIOB_TM0) | \ + PIN_DMASK_EN(GPIOB_TM1) | \ + PIN_DMASK_EN(GPIOB_TM2) | \ + PIN_DMASK_EN(GPIOB_PIN11) | \ + PIN_DMASK_DIS(GPIOB_CLK0) | \ + PIN_DMASK_DIS(GPIOB_PIN13) | \ + PIN_DMASK_DIS(GPIOB_INT0) | \ + PIN_DMASK_EN(GPIOB_INT1)) +#define VAL_GPIOB_DBEN (PIN_DBNCE_EN(GPIOB_UART0_RXD) | \ + PIN_DBNCE_DIS(GPIOB_UART0_TXD) | \ + PIN_DBNCE_DIS(GPIOB_UART0_RTS) | \ + PIN_DBNCE_DIS(GPIOB_UART0_CTS) | \ + PIN_DBNCE_DIS(GPIOB_UART1_RXD) | \ + PIN_DBNCE_DIS(GPIOB_UART1_TXD) | \ + PIN_DBNCE_DIS(GPIOB_UART1_RTS) | \ + PIN_DBNCE_DIS(GPIOB_UART1_CTS) | \ + PIN_DBNCE_EN(GPIOB_TM0) | \ + PIN_DBNCE_EN(GPIOB_TM1) | \ + PIN_DBNCE_EN(GPIOB_TM2) | \ + PIN_DBNCE_EN(GPIOB_PIN11) | \ + PIN_DBNCE_DIS(GPIOB_CLK0) | \ + PIN_DBNCE_DIS(GPIOB_PIN13) | \ + PIN_DBNCE_DIS(GPIOB_INT0) | \ + PIN_DBNCE_EN(GPIOB_INT1)) +#define VAL_GPIOB_IMD (PIN_IMD_EDGE(GPIOB_UART0_RXD) | \ + PIN_IMD_EDGE(GPIOB_UART0_TXD) | \ + PIN_IMD_EDGE(GPIOB_UART0_RTS) | \ + PIN_IMD_EDGE(GPIOB_UART0_CTS) | \ + PIN_IMD_EDGE(GPIOB_UART1_RXD) | \ + PIN_IMD_EDGE(GPIOB_UART1_TXD) | \ + PIN_IMD_EDGE(GPIOB_UART1_RTS) | \ + PIN_IMD_EDGE(GPIOB_UART1_CTS) | \ + PIN_IMD_EDGE(GPIOB_TM0) | \ + PIN_IMD_EDGE(GPIOB_TM1) | \ + PIN_IMD_EDGE(GPIOB_TM2) | \ + PIN_IMD_EDGE(GPIOB_PIN11) | \ + PIN_IMD_EDGE(GPIOB_CLK0) | \ + PIN_IMD_EDGE(GPIOB_PIN13) | \ + PIN_IMD_EDGE(GPIOB_INT0) | \ + PIN_IMD_EDGE(GPIOB_INT1)) +#define VAL_GPIOB_IEN (PIN_IEN_FELL_DIS(GPIOB_UART0_RXD) | \ + PIN_IEN_FELL_DIS(GPIOB_UART0_TXD) | \ + PIN_IEN_FELL_DIS(GPIOB_UART0_RTS) | \ + PIN_IEN_FELL_DIS(GPIOB_UART0_CTS) | \ + PIN_IEN_FELL_DIS(GPIOB_UART1_RXD) | \ + PIN_IEN_FELL_DIS(GPIOB_UART1_TXD) | \ + PIN_IEN_FELL_DIS(GPIOB_UART1_RTS) | \ + PIN_IEN_FELL_DIS(GPIOB_UART1_CTS) | \ + PIN_IEN_FELL_DIS(GPIOB_TM0) | \ + PIN_IEN_FELL_DIS(GPIOB_TM1) | \ + PIN_IEN_FELL_DIS(GPIOB_TM2) | \ + PIN_IEN_FELL_DIS(GPIOB_PIN11) | \ + PIN_IEN_FELL_DIS(GPIOB_CLK0) | \ + PIN_IEN_FELL_DIS(GPIOB_PIN13) | \ + PIN_IEN_FELL_DIS(GPIOB_INT0) | \ + PIN_IEN_FELL_DIS(GPIOB_INT1)) +#define VAL_GPIOB_ISRC (PIN_ISRC_DIS(GPIOB_UART0_RXD) | \ + PIN_ISRC_DIS(GPIOB_UART0_TXD) | \ + PIN_ISRC_DIS(GPIOB_UART0_RTS) | \ + PIN_ISRC_DIS(GPIOB_UART0_CTS) | \ + PIN_ISRC_DIS(GPIOB_UART1_RXD) | \ + PIN_ISRC_DIS(GPIOB_UART1_TXD) | \ + PIN_ISRC_DIS(GPIOB_UART1_RTS) | \ + PIN_ISRC_DIS(GPIOB_UART1_CTS) | \ + PIN_ISRC_DIS(GPIOB_TM0) | \ + PIN_ISRC_DIS(GPIOB_TM1) | \ + PIN_ISRC_DIS(GPIOB_TM2) | \ + PIN_ISRC_DIS(GPIOB_PIN11) | \ + PIN_ISRC_DIS(GPIOB_CLK0) | \ + PIN_ISRC_DIS(GPIOB_PIN13) | \ + PIN_ISRC_DIS(GPIOB_INT0) | \ + PIN_ISRC_DIS(GPIOB_INT1)) +#define VAL_GPIOB_DOUT (PIN_DATA_LOW(GPIOB_UART0_RXD) | \ + PIN_DATA_LOW(GPIOB_UART0_TXD) | \ + PIN_DATA_LOW(GPIOB_UART0_RTS) | \ + PIN_DATA_LOW(GPIOB_UART0_CTS) | \ + PIN_DATA_LOW(GPIOB_UART1_RXD) | \ + PIN_DATA_LOW(GPIOB_UART1_TXD) | \ + PIN_DATA_LOW(GPIOB_UART1_RTS) | \ + PIN_DATA_LOW(GPIOB_UART1_CTS) | \ + PIN_DATA_LOW(GPIOB_TM0) | \ + PIN_DATA_LOW(GPIOB_TM1) | \ + PIN_DATA_LOW(GPIOB_TM2) | \ + PIN_DATA_LOW(GPIOB_PIN11) | \ + PIN_DATA_LOW(GPIOB_CLK0) | \ + PIN_DATA_LOW(GPIOB_PIN13) | \ + PIN_DATA_LOW(GPIOB_INT0) | \ + PIN_DATA_LOW(GPIOB_INT1)) + +/* + * GPIOC setup: + * + * PC0 - PIN0 (input pullup). + * PC1 - PIN1 (input pullup). + * PC2 - PIN2 (input pullup). + * PC3 - PIN3 (input pullup). + * PC4 - PIN4 (output). + * PC5 - PIN5 (output). + * PC6 - PIN6 (input pullup). + * PC7 - PIN7 (input pullup). + * PC8 - PIN8 (input pullup). + * PC9 - PIN9 (input pullup). + * PC10 - PIN10 (input pullup). + * PC11 - PIN11 (input pullup). + * PC12 - PIN12 (input pullup). + * PC13 - PIN13 (input pullup). + * PC14 - PIN14 (input pullup). + * PC15 - PIN15 (input pullup). + */ +#define VAL_GPIOC_PMD (PIN_MODE_INPUT(GPIOC_PIN0) | \ + PIN_MODE_INPUT(GPIOC_PIN1) | \ + PIN_MODE_INPUT(GPIOC_PIN2) | \ + PIN_MODE_INPUT(GPIOC_PIN3) | \ + PIN_MODE_OUTPUT(GPIOC_PIN4) | \ + PIN_MODE_OUTPUT(GPIOC_PIN5) | \ + PIN_MODE_INPUT(GPIOC_PIN6) | \ + PIN_MODE_INPUT(GPIOC_PIN7) | \ + PIN_MODE_INPUT(GPIOC_PIN8) | \ + PIN_MODE_INPUT(GPIOC_PIN9) | \ + PIN_MODE_INPUT(GPIOC_PIN10) | \ + PIN_MODE_INPUT(GPIOC_PIN11) | \ + PIN_MODE_INPUT(GPIOC_PIN12) | \ + PIN_MODE_INPUT(GPIOC_PIN13) | \ + PIN_MODE_INPUT(GPIOC_PIN14) | \ + PIN_MODE_INPUT(GPIOC_PIN15)) +#define VAL_GPIOC_OFFD (PIN_DIGITAL_EN(GPIOC_PIN0) | \ + PIN_DIGITAL_EN(GPIOC_PIN1) | \ + PIN_DIGITAL_EN(GPIOC_PIN2) | \ + PIN_DIGITAL_EN(GPIOC_PIN3) | \ + PIN_DIGITAL_DIS(GPIOC_PIN4) | \ + PIN_DIGITAL_DIS(GPIOC_PIN5) | \ + PIN_DIGITAL_EN(GPIOC_PIN6) | \ + PIN_DIGITAL_EN(GPIOC_PIN7) | \ + PIN_DIGITAL_EN(GPIOC_PIN8) | \ + PIN_DIGITAL_EN(GPIOC_PIN9) | \ + PIN_DIGITAL_EN(GPIOC_PIN10) | \ + PIN_DIGITAL_EN(GPIOC_PIN11) | \ + PIN_DIGITAL_EN(GPIOC_PIN12) | \ + PIN_DIGITAL_EN(GPIOC_PIN13) | \ + PIN_DIGITAL_EN(GPIOC_PIN14) | \ + PIN_DIGITAL_EN(GPIOC_PIN15)) +#define VAL_GPIOC_DMASK (PIN_DMASK_EN(GPIOC_PIN0) | \ + PIN_DMASK_EN(GPIOC_PIN1) | \ + PIN_DMASK_EN(GPIOC_PIN2) | \ + PIN_DMASK_EN(GPIOC_PIN3) | \ + PIN_DMASK_DIS(GPIOC_PIN4) | \ + PIN_DMASK_DIS(GPIOC_PIN5) | \ + PIN_DMASK_EN(GPIOC_PIN6) | \ + PIN_DMASK_EN(GPIOC_PIN7) | \ + PIN_DMASK_EN(GPIOC_PIN8) | \ + PIN_DMASK_EN(GPIOC_PIN9) | \ + PIN_DMASK_EN(GPIOC_PIN10) | \ + PIN_DMASK_EN(GPIOC_PIN11) | \ + PIN_DMASK_EN(GPIOC_PIN12) | \ + PIN_DMASK_EN(GPIOC_PIN13) | \ + PIN_DMASK_EN(GPIOC_PIN14) | \ + PIN_DMASK_EN(GPIOC_PIN15)) +#define VAL_GPIOC_DBEN (PIN_DBNCE_EN(GPIOC_PIN0) | \ + PIN_DBNCE_EN(GPIOC_PIN1) | \ + PIN_DBNCE_EN(GPIOC_PIN2) | \ + PIN_DBNCE_EN(GPIOC_PIN3) | \ + PIN_DBNCE_DIS(GPIOC_PIN4) | \ + PIN_DBNCE_DIS(GPIOC_PIN5) | \ + PIN_DBNCE_EN(GPIOC_PIN6) | \ + PIN_DBNCE_EN(GPIOC_PIN7) | \ + PIN_DBNCE_EN(GPIOC_PIN8) | \ + PIN_DBNCE_EN(GPIOC_PIN9) | \ + PIN_DBNCE_EN(GPIOC_PIN10) | \ + PIN_DBNCE_EN(GPIOC_PIN11) | \ + PIN_DBNCE_EN(GPIOC_PIN12) | \ + PIN_DBNCE_EN(GPIOC_PIN13) | \ + PIN_DBNCE_EN(GPIOC_PIN14) | \ + PIN_DBNCE_EN(GPIOC_PIN15)) +#define VAL_GPIOC_IMD (PIN_IMD_EDGE(GPIOC_PIN0) | \ + PIN_IMD_EDGE(GPIOC_PIN1) | \ + PIN_IMD_EDGE(GPIOC_PIN2) | \ + PIN_IMD_EDGE(GPIOC_PIN3) | \ + PIN_IMD_EDGE(GPIOC_PIN4) | \ + PIN_IMD_EDGE(GPIOC_PIN5) | \ + PIN_IMD_EDGE(GPIOC_PIN6) | \ + PIN_IMD_EDGE(GPIOC_PIN7) | \ + PIN_IMD_EDGE(GPIOC_PIN8) | \ + PIN_IMD_EDGE(GPIOC_PIN9) | \ + PIN_IMD_EDGE(GPIOC_PIN10) | \ + PIN_IMD_EDGE(GPIOC_PIN11) | \ + PIN_IMD_EDGE(GPIOC_PIN12) | \ + PIN_IMD_EDGE(GPIOC_PIN13) | \ + PIN_IMD_EDGE(GPIOC_PIN14) | \ + PIN_IMD_EDGE(GPIOC_PIN15)) +#define VAL_GPIOC_IEN (PIN_IEN_FELL_DIS(GPIOC_PIN0) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN1) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN2) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN3) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN4) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN5) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN6) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN7) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN8) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN9) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN10) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN11) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN12) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN13) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN14) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN15)) +#define VAL_GPIOC_ISRC (PIN_ISRC_DIS(GPIOC_PIN0) | \ + PIN_ISRC_DIS(GPIOC_PIN1) | \ + PIN_ISRC_DIS(GPIOC_PIN2) | \ + PIN_ISRC_DIS(GPIOC_PIN3) | \ + PIN_ISRC_DIS(GPIOC_PIN4) | \ + PIN_ISRC_DIS(GPIOC_PIN5) | \ + PIN_ISRC_DIS(GPIOC_PIN6) | \ + PIN_ISRC_DIS(GPIOC_PIN7) | \ + PIN_ISRC_DIS(GPIOC_PIN8) | \ + PIN_ISRC_DIS(GPIOC_PIN9) | \ + PIN_ISRC_DIS(GPIOC_PIN10) | \ + PIN_ISRC_DIS(GPIOC_PIN11) | \ + PIN_ISRC_DIS(GPIOC_PIN12) | \ + PIN_ISRC_DIS(GPIOC_PIN13) | \ + PIN_ISRC_DIS(GPIOC_PIN14) | \ + PIN_ISRC_DIS(GPIOC_PIN15)) +#define VAL_GPIOC_DOUT (PIN_DATA_LOW(GPIOC_PIN0) | \ + PIN_DATA_LOW(GPIOC_PIN1) | \ + PIN_DATA_LOW(GPIOC_PIN2) | \ + PIN_DATA_LOW(GPIOC_PIN3) | \ + PIN_DATA_LOW(GPIOC_PIN4) | \ + PIN_DATA_LOW(GPIOC_PIN5) | \ + PIN_DATA_LOW(GPIOC_PIN6) | \ + PIN_DATA_LOW(GPIOC_PIN7) | \ + PIN_DATA_LOW(GPIOC_PIN8) | \ + PIN_DATA_LOW(GPIOC_PIN9) | \ + PIN_DATA_LOW(GPIOC_PIN10) | \ + PIN_DATA_LOW(GPIOC_PIN11) | \ + PIN_DATA_LOW(GPIOC_PIN12) | \ + PIN_DATA_LOW(GPIOC_PIN13) | \ + PIN_DATA_LOW(GPIOC_PIN14) | \ + PIN_DATA_LOW(GPIOC_PIN15)) + +/* + * GPIOD setup: + * + * PD0 - ADC0 (input pullup). + * PD1 - ADC1 (input pullup). + * PD2 - ADC2 (input pullup). + * PD3 - ADC3 (output). + * PD4 - ADC4 (output). + * PD5 - ADC5 (output). + * PD6 - PIN6 (input pullup). + * PD7 - PIN7 (input pullup). + * PD8 - PIN8 (input pullup). + * PD9 - PIN9 (output). + * PD10 - PIN10 (debug output). + * PD11 - PIN11 (output). + * PD12 - PIN12 (input pullup). + * PD13 - PIN13 (input pullup). + * PD14 - PIN14 (input pullup). + * PD15 - PIN15 (input pullup). + */ +#define VAL_GPIOD_PMD (PIN_MODE_INPUT(GPIOD_ADC0) | \ + PIN_MODE_INPUT(GPIOD_ADC1) | \ + PIN_MODE_INPUT(GPIOD_ADC2) | \ + PIN_MODE_OUTPUT(GPIOD_ADC3) | \ + PIN_MODE_OUTPUT(GPIOD_ADC4) | \ + PIN_MODE_OUTPUT(GPIOD_ADC5) | \ + PIN_MODE_INPUT(GPIOD_PIN6) | \ + PIN_MODE_INPUT(GPIOD_PIN7) | \ + PIN_MODE_INPUT(GPIOD_PIN8) | \ + PIN_MODE_OUTPUT(GPIOD_PIN9) | \ + PIN_MODE_OUTPUT(GPIOD_PIN10) | \ + PIN_MODE_OUTPUT(GPIOD_PIN11) | \ + PIN_MODE_INPUT(GPIOD_PIN12) | \ + PIN_MODE_INPUT(GPIOD_PIN13) | \ + PIN_MODE_INPUT(GPIOD_PIN14) | \ + PIN_MODE_INPUT(GPIOD_PIN15)) +#define VAL_GPIOD_OFFD (PIN_DIGITAL_EN(GPIOD_ADC0) | \ + PIN_DIGITAL_EN(GPIOD_ADC1) | \ + PIN_DIGITAL_EN(GPIOD_ADC2) | \ + PIN_DIGITAL_DIS(GPIOD_ADC3) | \ + PIN_DIGITAL_DIS(GPIOD_ADC4) | \ + PIN_DIGITAL_DIS(GPIOD_ADC5) | \ + PIN_DIGITAL_EN(GPIOD_PIN6) | \ + PIN_DIGITAL_EN(GPIOD_PIN7) | \ + PIN_DIGITAL_EN(GPIOD_PIN8) | \ + PIN_DIGITAL_DIS(GPIOD_PIN9) | \ + PIN_DIGITAL_DIS(GPIOD_PIN10) | \ + PIN_DIGITAL_DIS(GPIOD_PIN11) | \ + PIN_DIGITAL_EN(GPIOD_PIN12) | \ + PIN_DIGITAL_EN(GPIOD_PIN13) | \ + PIN_DIGITAL_EN(GPIOD_PIN14) | \ + PIN_DIGITAL_EN(GPIOD_PIN15)) +#define VAL_GPIOD_DMASK (PIN_DMASK_EN(GPIOD_ADC0) | \ + PIN_DMASK_EN(GPIOD_ADC1) | \ + PIN_DMASK_EN(GPIOD_ADC2) | \ + PIN_DMASK_DIS(GPIOD_ADC3) | \ + PIN_DMASK_DIS(GPIOD_ADC4) | \ + PIN_DMASK_DIS(GPIOD_ADC5) | \ + PIN_DMASK_EN(GPIOD_PIN6) | \ + PIN_DMASK_EN(GPIOD_PIN7) | \ + PIN_DMASK_EN(GPIOD_PIN8) | \ + PIN_DMASK_DIS(GPIOD_PIN9) | \ + PIN_DMASK_DIS(GPIOD_PIN10) | \ + PIN_DMASK_DIS(GPIOD_PIN11) | \ + PIN_DMASK_EN(GPIOD_PIN12) | \ + PIN_DMASK_EN(GPIOD_PIN13) | \ + PIN_DMASK_EN(GPIOD_PIN14) | \ + PIN_DMASK_EN(GPIOD_PIN15)) +#define VAL_GPIOD_DBEN (PIN_DBNCE_EN(GPIOD_ADC0) | \ + PIN_DBNCE_EN(GPIOD_ADC1) | \ + PIN_DBNCE_EN(GPIOD_ADC2) | \ + PIN_DBNCE_DIS(GPIOD_ADC3) | \ + PIN_DBNCE_DIS(GPIOD_ADC4) | \ + PIN_DBNCE_DIS(GPIOD_ADC5) | \ + PIN_DBNCE_EN(GPIOD_PIN6) | \ + PIN_DBNCE_EN(GPIOD_PIN7) | \ + PIN_DBNCE_EN(GPIOD_PIN8) | \ + PIN_DBNCE_DIS(GPIOD_PIN9) | \ + PIN_DBNCE_DIS(GPIOD_PIN10) | \ + PIN_DBNCE_DIS(GPIOD_PIN11) | \ + PIN_DBNCE_EN(GPIOD_PIN12) | \ + PIN_DBNCE_EN(GPIOD_PIN13) | \ + PIN_DBNCE_EN(GPIOD_PIN14) | \ + PIN_DBNCE_EN(GPIOD_PIN15)) +#define VAL_GPIOD_IMD (PIN_IMD_EDGE(GPIOD_ADC0) | \ + PIN_IMD_EDGE(GPIOD_ADC1) | \ + PIN_IMD_EDGE(GPIOD_ADC2) | \ + PIN_IMD_EDGE(GPIOD_ADC3) | \ + PIN_IMD_EDGE(GPIOD_ADC4) | \ + PIN_IMD_EDGE(GPIOD_ADC5) | \ + PIN_IMD_EDGE(GPIOD_PIN6) | \ + PIN_IMD_EDGE(GPIOD_PIN7) | \ + PIN_IMD_EDGE(GPIOD_PIN8) | \ + PIN_IMD_EDGE(GPIOD_PIN9) | \ + PIN_IMD_EDGE(GPIOD_PIN10) | \ + PIN_IMD_EDGE(GPIOD_PIN11) | \ + PIN_IMD_EDGE(GPIOD_PIN12) | \ + PIN_IMD_EDGE(GPIOD_PIN13) | \ + PIN_IMD_EDGE(GPIOD_PIN14) | \ + PIN_IMD_EDGE(GPIOD_PIN15)) +#define VAL_GPIOD_IEN (PIN_IEN_FELL_DIS(GPIOD_ADC0) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC1) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC2) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC3) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC4) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC5) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN6) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN7) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN8) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN9) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN10) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN11) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN12) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN13) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN14) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN15)) +#define VAL_GPIOD_ISRC (PIN_ISRC_DIS(GPIOD_ADC0) | \ + PIN_ISRC_DIS(GPIOD_ADC1) | \ + PIN_ISRC_DIS(GPIOD_ADC2) | \ + PIN_ISRC_DIS(GPIOD_ADC3) | \ + PIN_ISRC_DIS(GPIOD_ADC4) | \ + PIN_ISRC_DIS(GPIOD_ADC5) | \ + PIN_ISRC_DIS(GPIOD_PIN6) | \ + PIN_ISRC_DIS(GPIOD_PIN7) | \ + PIN_ISRC_DIS(GPIOD_PIN8) | \ + PIN_ISRC_DIS(GPIOD_PIN9) | \ + PIN_ISRC_DIS(GPIOD_PIN10) | \ + PIN_ISRC_DIS(GPIOD_PIN11) | \ + PIN_ISRC_DIS(GPIOD_PIN12) | \ + PIN_ISRC_DIS(GPIOD_PIN13) | \ + PIN_ISRC_DIS(GPIOD_PIN14) | \ + PIN_ISRC_DIS(GPIOD_PIN15)) +#define VAL_GPIOD_DOUT (PIN_DATA_LOW(GPIOD_ADC0) | \ + PIN_DATA_LOW(GPIOD_ADC1) | \ + PIN_DATA_LOW(GPIOD_ADC2) | \ + PIN_DATA_LOW(GPIOD_ADC3) | \ + PIN_DATA_LOW(GPIOD_ADC4) | \ + PIN_DATA_LOW(GPIOD_ADC5) | \ + PIN_DATA_LOW(GPIOD_PIN6) | \ + PIN_DATA_LOW(GPIOD_PIN7) | \ + PIN_DATA_LOW(GPIOD_PIN8) | \ + PIN_DATA_LOW(GPIOD_PIN9) | \ + PIN_DATA_LOW(GPIOD_PIN10) | \ + PIN_DATA_LOW(GPIOD_PIN11) | \ + PIN_DATA_LOW(GPIOD_PIN12) | \ + PIN_DATA_LOW(GPIOD_PIN13) | \ + PIN_DATA_LOW(GPIOD_PIN14) | \ + PIN_DATA_LOW(GPIOD_PIN15)) + +/* + * GPIOF setup: + * + * PF0 - OSC_IN (input floating). + * PF1 - OSC_OUT (input floating). + * PF2 - I2C0_SDA (input pullup). + * PF3 - I2C0_SCL (input pullup). + * PF4 - PIN4 (input pullup). + * PF5 - PIN5 (input pullup). + * PF6 - PIN6 (input pullup). + * PF7 - PIN7 (input pullup). + * PF8 - PIN8 (input pullup). + * PF9 - PIN9 (input pullup). + * PF10 - PIN10 (input pullup). + * PF11 - PIN11 (input pullup). + * PF12 - PIN12 (input pullup). + * PF13 - PIN13 (input pullup). + * PF14 - PIN14 (input pullup). + * PF15 - PIN15 (input pullup). + */ +#define VAL_GPIOF_PMD (PIN_MODE_QUASI(GPIOF_OSC_IN) | \ + PIN_MODE_QUASI(GPIOF_OSC_OUT) | \ + PIN_MODE_INPUT(GPIOF_I2C0_SDA) | \ + PIN_MODE_INPUT(GPIOF_I2C0_SCL) | \ + PIN_MODE_INPUT(GPIOF_PIN4) | \ + PIN_MODE_INPUT(GPIOF_PIN5) | \ + PIN_MODE_INPUT(GPIOF_PIN6) | \ + PIN_MODE_INPUT(GPIOF_PIN7) | \ + PIN_MODE_INPUT(GPIOF_PIN8) | \ + PIN_MODE_INPUT(GPIOF_PIN9) | \ + PIN_MODE_INPUT(GPIOF_PIN10) | \ + PIN_MODE_INPUT(GPIOF_PIN11) | \ + PIN_MODE_INPUT(GPIOF_PIN12) | \ + PIN_MODE_INPUT(GPIOF_PIN13) | \ + PIN_MODE_INPUT(GPIOF_PIN14) | \ + PIN_MODE_INPUT(GPIOF_PIN15)) +#define VAL_GPIOF_OFFD (PIN_DIGITAL_DIS(GPIOF_OSC_IN) | \ + PIN_DIGITAL_DIS(GPIOF_OSC_OUT) | \ + PIN_DIGITAL_EN(GPIOF_I2C0_SDA) | \ + PIN_DIGITAL_EN(GPIOF_I2C0_SCL) | \ + PIN_DIGITAL_EN(GPIOF_PIN4) | \ + PIN_DIGITAL_EN(GPIOF_PIN5) | \ + PIN_DIGITAL_EN(GPIOF_PIN6) | \ + PIN_DIGITAL_EN(GPIOF_PIN7) | \ + PIN_DIGITAL_EN(GPIOF_PIN8) | \ + PIN_DIGITAL_EN(GPIOF_PIN9) | \ + PIN_DIGITAL_EN(GPIOF_PIN10) | \ + PIN_DIGITAL_EN(GPIOF_PIN11) | \ + PIN_DIGITAL_EN(GPIOF_PIN12) | \ + PIN_DIGITAL_EN(GPIOF_PIN13) | \ + PIN_DIGITAL_EN(GPIOF_PIN14) | \ + PIN_DIGITAL_EN(GPIOF_PIN15)) +#define VAL_GPIOF_DMASK (PIN_DMASK_DIS(GPIOF_OSC_IN) | \ + PIN_DMASK_DIS(GPIOF_OSC_OUT) | \ + PIN_DMASK_EN(GPIOF_I2C0_SDA) | \ + PIN_DMASK_EN(GPIOF_I2C0_SCL) | \ + PIN_DMASK_EN(GPIOF_PIN4) | \ + PIN_DMASK_EN(GPIOF_PIN5) | \ + PIN_DMASK_EN(GPIOF_PIN6) | \ + PIN_DMASK_EN(GPIOF_PIN7) | \ + PIN_DMASK_EN(GPIOF_PIN8) | \ + PIN_DMASK_EN(GPIOF_PIN9) | \ + PIN_DMASK_EN(GPIOF_PIN10) | \ + PIN_DMASK_EN(GPIOF_PIN11) | \ + PIN_DMASK_EN(GPIOF_PIN12) | \ + PIN_DMASK_EN(GPIOF_PIN13) | \ + PIN_DMASK_EN(GPIOF_PIN14) | \ + PIN_DMASK_EN(GPIOF_PIN15)) +#define VAL_GPIOF_DBEN (PIN_DBNCE_DIS(GPIOF_OSC_IN) | \ + PIN_DBNCE_DIS(GPIOF_OSC_OUT) | \ + PIN_DBNCE_EN(GPIOF_I2C0_SDA) | \ + PIN_DBNCE_EN(GPIOF_I2C0_SCL) | \ + PIN_DBNCE_EN(GPIOF_PIN4) | \ + PIN_DBNCE_EN(GPIOF_PIN5) | \ + PIN_DBNCE_EN(GPIOF_PIN6) | \ + PIN_DBNCE_EN(GPIOF_PIN7) | \ + PIN_DBNCE_EN(GPIOF_PIN8) | \ + PIN_DBNCE_EN(GPIOF_PIN9) | \ + PIN_DBNCE_EN(GPIOF_PIN10) | \ + PIN_DBNCE_EN(GPIOF_PIN11) | \ + PIN_DBNCE_EN(GPIOF_PIN12) | \ + PIN_DBNCE_EN(GPIOF_PIN13) | \ + PIN_DBNCE_EN(GPIOF_PIN14) | \ + PIN_DBNCE_EN(GPIOF_PIN15)) +#define VAL_GPIOF_IMD (PIN_IMD_LVL(GPIOF_OSC_IN) | \ + PIN_IMD_LVL(GPIOF_OSC_OUT) | \ + PIN_IMD_EDGE(GPIOF_I2C0_SDA) | \ + PIN_IMD_EDGE(GPIOF_I2C0_SCL) | \ + PIN_IMD_EDGE(GPIOF_PIN4) | \ + PIN_IMD_EDGE(GPIOF_PIN5) | \ + PIN_IMD_EDGE(GPIOF_PIN6) | \ + PIN_IMD_EDGE(GPIOF_PIN7) | \ + PIN_IMD_EDGE(GPIOF_PIN8) | \ + PIN_IMD_EDGE(GPIOF_PIN9) | \ + PIN_IMD_EDGE(GPIOF_PIN10) | \ + PIN_IMD_EDGE(GPIOF_PIN11) | \ + PIN_IMD_EDGE(GPIOF_PIN12) | \ + PIN_IMD_EDGE(GPIOF_PIN13) | \ + PIN_IMD_EDGE(GPIOF_PIN14) | \ + PIN_IMD_EDGE(GPIOF_PIN15)) +#define VAL_GPIOF_IEN (PIN_IEN_FELL_DIS(GPIOF_OSC_IN) | \ + PIN_IEN_FELL_DIS(GPIOF_OSC_OUT) | \ + PIN_IEN_FELL_DIS(GPIOF_I2C0_SDA) | \ + PIN_IEN_FELL_DIS(GPIOF_I2C0_SCL) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN4) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN5) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN6) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN7) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN8) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN9) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN10) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN11) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN12) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN13) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN14) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN15)) +#define VAL_GPIOF_ISRC (PIN_ISRC_DIS(GPIOF_OSC_IN) | \ + PIN_ISRC_DIS(GPIOF_OSC_OUT) | \ + PIN_ISRC_DIS(GPIOF_I2C0_SDA) | \ + PIN_ISRC_DIS(GPIOF_I2C0_SCL) | \ + PIN_ISRC_DIS(GPIOF_PIN4) | \ + PIN_ISRC_DIS(GPIOF_PIN5) | \ + PIN_ISRC_DIS(GPIOF_PIN6) | \ + PIN_ISRC_DIS(GPIOF_PIN7) | \ + PIN_ISRC_DIS(GPIOF_PIN8) | \ + PIN_ISRC_DIS(GPIOF_PIN9) | \ + PIN_ISRC_DIS(GPIOF_PIN10) | \ + PIN_ISRC_DIS(GPIOF_PIN11) | \ + PIN_ISRC_DIS(GPIOF_PIN12) | \ + PIN_ISRC_DIS(GPIOF_PIN13) | \ + PIN_ISRC_DIS(GPIOF_PIN14) | \ + PIN_ISRC_DIS(GPIOF_PIN15)) +#define VAL_GPIOF_DOUT (PIN_DATA_LOW(GPIOF_OSC_IN) | \ + PIN_DATA_LOW(GPIOF_OSC_OUT) | \ + PIN_DATA_LOW(GPIOF_I2C0_SDA) | \ + PIN_DATA_LOW(GPIOF_I2C0_SCL) | \ + PIN_DATA_LOW(GPIOF_PIN4) | \ + PIN_DATA_LOW(GPIOF_PIN5) | \ + PIN_DATA_LOW(GPIOF_PIN6) | \ + PIN_DATA_LOW(GPIOF_PIN7) | \ + PIN_DATA_LOW(GPIOF_PIN8) | \ + PIN_DATA_LOW(GPIOF_PIN9) | \ + PIN_DATA_LOW(GPIOF_PIN10) | \ + PIN_DATA_LOW(GPIOF_PIN11) | \ + PIN_DATA_LOW(GPIOF_PIN12) | \ + PIN_DATA_LOW(GPIOF_PIN13) | \ + PIN_DATA_LOW(GPIOF_PIN14) | \ + PIN_DATA_LOW(GPIOF_PIN15)) + + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* BOARD_H */ diff --git a/keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.mk b/keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.mk new file mode 100644 index 000000000000..dd9917fc6adc --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = $(BOARD_PATH)/boards/NUC123SD4AN0/board.c + +# Required include directories +BOARDINC = $(BOARD_PATH)/boards/NUC123SD4AN0 diff --git a/keyboards/ducky/one2mini/1861st/chconf.h b/keyboards/ducky/one2mini/1861st/chconf.h new file mode 100644 index 000000000000..617be40dd90c --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/chconf.h @@ -0,0 +1,23 @@ +/* Copyright 2020 QMK + * + * 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 CH_CFG_ST_FREQUENCY 10000 +#define CH_CFG_ST_TIMEDELTA 0 +#define CH_CFG_USE_WAITEXIT TRUE + +#include_next diff --git a/keyboards/ducky/one2mini/1861st/config.h b/keyboards/ducky/one2mini/1861st/config.h new file mode 100644 index 000000000000..3f5676280c18 --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/config.h @@ -0,0 +1,56 @@ +/* +Copyright 2019 /u/KeepItUnder + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x0416 +#define PRODUCT_ID 0x0123 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ducky +#define PRODUCT One2mini + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * 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 { D11, B4, B5, B6, B7 } +#define MATRIX_COL_PINS { B10, B9, C13, C12, C11, C10, C9, C8, A15, A14, A13, D0, D1, D2, B8 } +#define DIP_SWITCH_MATRIX_GRID { {0,14}, {1,14}, {2,14}, {3,14} } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define FORCE_NKRO + +#define GPIO_INPUT_PIN_DELAY (NUC123_HCLK / 6 / 1000000L) diff --git a/keyboards/ducky/one2mini/1861st/info.json b/keyboards/ducky/one2mini/1861st/info.json new file mode 100644 index 000000000000..f0abe81ed86d --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/info.json @@ -0,0 +1,208 @@ +{ + "keyboard_name": "Ducky One 2 Mini", + "width": 14, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "x": 0, "y": 0, "w": 1, "label": "ESC" }, + { "x": 1, "y": 0, "w": 1, "label": "1" }, + { "x": 2, "y": 0, "w": 1, "label": "2" }, + { "x": 3, "y": 0, "w": 1, "label": "3" }, + { "x": 4, "y": 0, "w": 1, "label": "4" }, + { "x": 5, "y": 0, "w": 1, "label": "5" }, + { "x": 6, "y": 0, "w": 1, "label": "6" }, + { "x": 7, "y": 0, "w": 1, "label": "7" }, + { "x": 8, "y": 0, "w": 1, "label": "8" }, + { "x": 9, "y": 0, "w": 1, "label": "9" }, + { "x": 10, "y": 0, "w": 1, "label": "0" }, + { "x": 11, "y": 0, "w": 1, "label": "DASH" }, + { "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" }, + { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" }, + { "x": 0, "y": 1, "w": 1.5, "label": "TAB" }, + { "x": 1.5, "y": 1, "w": 1, "label": "Q" }, + { "x": 2.5, "y": 1, "w": 1, "label": "W" }, + { "x": 3.5, "y": 1, "w": 1, "label": "E" }, + { "x": 4.5, "y": 1, "w": 1, "label": "R" }, + { "x": 5.5, "y": 1, "w": 1, "label": "T" }, + { "x": 6.5, "y": 1, "w": 1, "label": "Y" }, + { "x": 7.5, "y": 1, "w": 1, "label": "U" }, + { "x": 8.5, "y": 1, "w": 1, "label": "I" }, + { "x": 9.5, "y": 1, "w": 1, "label": "O" }, + { "x": 10.5, "y": 1, "w": 1, "label": "P" }, + { "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" }, + { "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" }, + { "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" }, + { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" }, + { "x": 1.75, "y": 2, "w": 1, "label": "A" }, + { "x": 2.75, "y": 2, "w": 1, "label": "S" }, + { "x": 3.75, "y": 2, "w": 1, "label": "D" }, + { "x": 4.75, "y": 2, "w": 1, "label": "F" }, + { "x": 5.75, "y": 2, "w": 1, "label": "G" }, + { "x": 6.75, "y": 2, "w": 1, "label": "H" }, + { "x": 7.75, "y": 2, "w": 1, "label": "J" }, + { "x": 8.75, "y": 2, "w": 1, "label": "K" }, + { "x": 9.75, "y": 2, "w": 1, "label": "L" }, + { "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" }, + { "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" }, + { "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" }, + { "x": 13.75, "y": 2, "w": 1.25, "label": "ENTER" }, + { "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" }, + { "x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH" }, + { "x": 2.25, "y": 3, "w": 1, "label": "Z" }, + { "x": 3.25, "y": 3, "w": 1, "label": "X" }, + { "x": 4.25, "y": 3, "w": 1, "label": "C" }, + { "x": 5.25, "y": 3, "w": 1, "label": "V" }, + { "x": 6.25, "y": 3, "w": 1, "label": "B" }, + { "x": 7.25, "y": 3, "w": 1, "label": "N" }, + { "x": 8.25, "y": 3, "w": 1, "label": "M" }, + { "x": 9.25, "y": 3, "w": 1, "label": "COMMA" }, + { "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" }, + { "x": 11.25, "y": 3, "w": 1, "label": "SLASH" }, + { "x": 12.25, "y": 3, "w": 2.25, "label": "RSHIFT" }, + { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" }, + { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" }, + { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" }, + { "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" }, + { "x": 10, "y": 4, "w": 1.25, "label": "RALT" }, + { "x": 11.25, "y": 4, "w": 1.25, "label": "RCMD" }, + { "x": 12.5, "y": 4, "w": 1.25, "label": "FN" }, + { "x": 13.75, "y": 4, "w": 1.25, "label": "RCTRL" } + ] + }, + + "LAYOUT_ansi": { + "layout": [ + { "x": 0, "y": 0, "w": 1, "label": "ESC" }, + { "x": 1, "y": 0, "w": 1, "label": "1" }, + { "x": 2, "y": 0, "w": 1, "label": "2" }, + { "x": 3, "y": 0, "w": 1, "label": "3" }, + { "x": 4, "y": 0, "w": 1, "label": "4" }, + { "x": 5, "y": 0, "w": 1, "label": "5" }, + { "x": 6, "y": 0, "w": 1, "label": "6" }, + { "x": 7, "y": 0, "w": 1, "label": "7" }, + { "x": 8, "y": 0, "w": 1, "label": "8" }, + { "x": 9, "y": 0, "w": 1, "label": "9" }, + { "x": 10, "y": 0, "w": 1, "label": "0" }, + { "x": 11, "y": 0, "w": 1, "label": "DASH" }, + { "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" }, + { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" }, + { "x": 0, "y": 1, "w": 1.5, "label": "TAB" }, + { "x": 1.5, "y": 1, "w": 1, "label": "Q" }, + { "x": 2.5, "y": 1, "w": 1, "label": "W" }, + { "x": 3.5, "y": 1, "w": 1, "label": "E" }, + { "x": 4.5, "y": 1, "w": 1, "label": "R" }, + { "x": 5.5, "y": 1, "w": 1, "label": "T" }, + { "x": 6.5, "y": 1, "w": 1, "label": "Y" }, + { "x": 7.5, "y": 1, "w": 1, "label": "U" }, + { "x": 8.5, "y": 1, "w": 1, "label": "I" }, + { "x": 9.5, "y": 1, "w": 1, "label": "O" }, + { "x": 10.5, "y": 1, "w": 1, "label": "P" }, + { "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" }, + { "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" }, + { "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" }, + { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" }, + { "x": 1.75, "y": 2, "w": 1, "label": "A" }, + { "x": 2.75, "y": 2, "w": 1, "label": "S" }, + { "x": 3.75, "y": 2, "w": 1, "label": "D" }, + { "x": 4.75, "y": 2, "w": 1, "label": "F" }, + { "x": 5.75, "y": 2, "w": 1, "label": "G" }, + { "x": 6.75, "y": 2, "w": 1, "label": "H" }, + { "x": 7.75, "y": 2, "w": 1, "label": "J" }, + { "x": 8.75, "y": 2, "w": 1, "label": "K" }, + { "x": 9.75, "y": 2, "w": 1, "label": "L" }, + { "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" }, + { "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" }, + { "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" }, + { "x": 12.75, "y": 2, "w": 2.25, "label": "ENTER" }, + { "x": 0, "y": 3, "w": 2.25, "label": "LSHIFT" }, + { "x": 2.25, "y": 3, "w": 1, "label": "Z" }, + { "x": 3.25, "y": 3, "w": 1, "label": "X" }, + { "x": 4.25, "y": 3, "w": 1, "label": "C" }, + { "x": 5.25, "y": 3, "w": 1, "label": "V" }, + { "x": 6.25, "y": 3, "w": 1, "label": "B" }, + { "x": 7.25, "y": 3, "w": 1, "label": "N" }, + { "x": 8.25, "y": 3, "w": 1, "label": "M" }, + { "x": 9.25, "y": 3, "w": 1, "label": "COMMA" }, + { "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" }, + { "x": 11.25, "y": 3, "w": 1, "label": "SLASH" }, + { "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" }, + { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" }, + { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" }, + { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" }, + { "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" }, + { "x": 10, "y": 4, "w": 1.25, "label": "RALT" }, + { "x": 11.25, "y": 4, "w": 1.25, "label": "RCMD" }, + { "x": 12.5, "y": 4, "w": 1.25, "label": "FN" }, + { "x": 13.75, "y": 4, "w": 1.25, "label": "RCTRL" } + ] + }, + + "LAYOUT_iso": { + "layout": [ + { "x": 0, "y": 0, "w": 1, "label": "ESC" }, + { "x": 1, "y": 0, "w": 1, "label": "1" }, + { "x": 2, "y": 0, "w": 1, "label": "2" }, + { "x": 3, "y": 0, "w": 1, "label": "3" }, + { "x": 4, "y": 0, "w": 1, "label": "4" }, + { "x": 5, "y": 0, "w": 1, "label": "5" }, + { "x": 6, "y": 0, "w": 1, "label": "6" }, + { "x": 7, "y": 0, "w": 1, "label": "7" }, + { "x": 8, "y": 0, "w": 1, "label": "8" }, + { "x": 9, "y": 0, "w": 1, "label": "9" }, + { "x": 10, "y": 0, "w": 1, "label": "0" }, + { "x": 11, "y": 0, "w": 1, "label": "DASH" }, + { "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" }, + { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" }, + { "x": 0, "y": 1, "w": 1.5, "label": "TAB" }, + { "x": 1.5, "y": 1, "w": 1, "label": "Q" }, + { "x": 2.5, "y": 1, "w": 1, "label": "W" }, + { "x": 3.5, "y": 1, "w": 1, "label": "E" }, + { "x": 4.5, "y": 1, "w": 1, "label": "R" }, + { "x": 5.5, "y": 1, "w": 1, "label": "T" }, + { "x": 6.5, "y": 1, "w": 1, "label": "Y" }, + { "x": 7.5, "y": 1, "w": 1, "label": "U" }, + { "x": 8.5, "y": 1, "w": 1, "label": "I" }, + { "x": 9.5, "y": 1, "w": 1, "label": "O" }, + { "x": 10.5, "y": 1, "w": 1, "label": "P" }, + { "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" }, + { "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" }, + { "x": 13.75, "y": 1, "w": 1.25, "h": 2, "label": "ENTER" }, + { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" }, + { "x": 1.75, "y": 2, "w": 1, "label": "A" }, + { "x": 2.75, "y": 2, "w": 1, "label": "S" }, + { "x": 3.75, "y": 2, "w": 1, "label": "D" }, + { "x": 4.75, "y": 2, "w": 1, "label": "F" }, + { "x": 5.75, "y": 2, "w": 1, "label": "G" }, + { "x": 6.75, "y": 2, "w": 1, "label": "H" }, + { "x": 7.75, "y": 2, "w": 1, "label": "J" }, + { "x": 8.75, "y": 2, "w": 1, "label": "K" }, + { "x": 9.75, "y": 2, "w": 1, "label": "L" }, + { "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" }, + { "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" }, + { "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" }, + { "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" }, + { "x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH" }, + { "x": 2.25, "y": 3, "w": 1, "label": "Z" }, + { "x": 3.25, "y": 3, "w": 1, "label": "X" }, + { "x": 4.25, "y": 3, "w": 1, "label": "C" }, + { "x": 5.25, "y": 3, "w": 1, "label": "V" }, + { "x": 6.25, "y": 3, "w": 1, "label": "B" }, + { "x": 7.25, "y": 3, "w": 1, "label": "N" }, + { "x": 8.25, "y": 3, "w": 1, "label": "M" }, + { "x": 9.25, "y": 3, "w": 1, "label": "COMMA" }, + { "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" }, + { "x": 11.25, "y": 3, "w": 1, "label": "SLASH" }, + { "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" }, + { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" }, + { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" }, + { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" }, + { "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" }, + { "x": 10, "y": 4, "w": 1.25, "label": "RALT" }, + { "x": 11.25, "y": 4, "w": 1.25, "label": "RCMD" }, + { "x": 12.5, "y": 4, "w": 1.25, "label": "FN" }, + { "x": 13.75, "y": 4, "w": 1.25, "label": "RCTRL" } + ] + } + } +} diff --git a/keyboards/ducky/one2mini/1861st/mcuconf.h b/keyboards/ducky/one2mini/1861st/mcuconf.h new file mode 100644 index 000000000000..12e9d2a82dc3 --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/mcuconf.h @@ -0,0 +1,51 @@ +/* + ChibiOS - Copyright (C) 2020 Alex Lewontin + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * Board setting + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 5...0 Lowest...Highest. + */ + +/* + * HAL driver system settings. + */ +#define NUC123_HSE_ENABLED TRUE +#define NUC123_PLL_ENABLED TRUE +#define NUC123_PLLSRC NUC123_PLLSRC_HSE +#define NUC123_HCLKSRC NUC123_HCLKSRC_PLL +#define NUC123_HCLKDIV 2 +#define NUC123_PLL_NF 144 +#define NUC123_USB_USE_USB0 TRUE +#define NUC123_USB_USE_USB1 TRUE + +#define NUC123_SERIAL_USE_UART0 TRUE +#define NUC123_SERIAL_CLKSRC NUC123_SERIAL_CLKSRC_HSI + +#define NUC123_MCUCONF + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/ducky/one2mini/1861st/readme.md b/keyboards/ducky/one2mini/1861st/readme.md new file mode 100644 index 000000000000..bf6b3974a364 --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/readme.md @@ -0,0 +1,29 @@ +# one2mini + +![one2mini](http://www.duckychannel.com.tw/page-en/One_2_Mini_RGB/images/One2_Mini_01_02.jpg) + +A 60% keyboard featuring per-key RGB LEDs. + +* Keyboard Maintainer: [Reza Jelveh](https://github.com/fishman) +* Hardware Supported: Ducky One 2 Mini RGB / NUC123SD4AN0 / MBI5042GP +* Hardware Availability: [Ducky Channel](http://www.duckychannel.com.tw/page-en/One_2_Mini_RGB/) + +Make example for this keyboard (after setting up your build environment): + + make ducky/one2mini:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +RGB LEDs are currently disabled until the driver is merged. + +This firmware was tested on the duckyon2mini 1861ST version. To enter the 1861ST bootloader to flash you can boot the keyboard while holding D+L. + +There are then two ways to flash the keyboard: + + pip install --user nuvoton-isp + nuvoisp -f ducky_one2mini_default.bin + +Alternatively you can use elfmimi's [nu-isp-cli](https://lib.rs/crates/nu-isp-cli) which is more complete than nuvoisp and allows flashing .hex files as well. + + cargo install nu-isp-cli + nu-isp-cli flash ducky_one2mini_default.bin diff --git a/keyboards/ducky/one2mini/1861st/rules.mk b/keyboards/ducky/one2mini/1861st/rules.mk new file mode 100644 index 000000000000..401d38d668b1 --- /dev/null +++ b/keyboards/ducky/one2mini/1861st/rules.mk @@ -0,0 +1,35 @@ +MCU_FAMILY = NUMICRO +MCU_SERIES = NUC123 + +# linker script to use +MCU_LDSCRIPT = NUC123xD4xx0 + +# startup code to use +MCU_STARTUP = NUC123 +BOARD = NUC123SD4AN0 + +# NUC123 series is Cortex M0 +MCU = cortex-m0 +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +ARMV = 6 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ducky/one2mini/keymaps/ansi/keymap.c b/keyboards/ducky/one2mini/keymaps/ansi/keymap.c new file mode 100644 index 000000000000..c6d597f72c91 --- /dev/null +++ b/keyboards/ducky/one2mini/keymaps/ansi/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2019 /u/KeepItUnder + * + * 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 + +// LAYERS +enum Layer { + _QWERTY = 0, // Standard QWERTY layer + _FUNCTION, // Function key layer + _COLOUR // RGB key layer +}; +#define _QW _QWERTY +#define _FN _FUNCTION +#define _CLR _COLOUR + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT_ansi( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + 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_NUBS, + 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL + ), + + [_FUNCTION] = LAYOUT_ansi( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + 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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, + _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______ + ), + + [_COLOUR] = LAYOUT_ansi( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ducky/one2mini/keymaps/ansi/readme.md b/keyboards/ducky/one2mini/keymaps/ansi/readme.md new file mode 100644 index 000000000000..e4eb351aea9a --- /dev/null +++ b/keyboards/ducky/one2mini/keymaps/ansi/readme.md @@ -0,0 +1 @@ +# The default ANSI keymap for one2mini \ No newline at end of file diff --git a/keyboards/ducky/one2mini/keymaps/default/config.h b/keyboards/ducky/one2mini/keymaps/default/config.h new file mode 100644 index 000000000000..b052c604f5a9 --- /dev/null +++ b/keyboards/ducky/one2mini/keymaps/default/config.h @@ -0,0 +1,25 @@ +/* Copyright 2019 /u/KeepItUnder + * + * 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 + +// place overrides here +#define GRAVE_ESC_GUI_OVERRIDE +#define MK_3_SPEED +#define MK_C_OFFSET_UNMOD 400 /* Cursor offset per movement (unmodified) */ +#define MK_C_INTERVAL_UNMOD 5 /* Time between cursor movements (unmodified) */ +#define MK_W_OFFSET_UNMOD 100 /* Scroll steps per scroll action (unmodified) */ +#define MK_W_INTERVAL_UNMOD 10 /* Time between scroll steps (unmodified) */ diff --git a/keyboards/ducky/one2mini/keymaps/default/keymap.c b/keyboards/ducky/one2mini/keymaps/default/keymap.c new file mode 100644 index 000000000000..573353a769de --- /dev/null +++ b/keyboards/ducky/one2mini/keymaps/default/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2019 /u/KeepItUnder + * + * 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 + +// LAYERS +enum Layer { + _QWERTY = 0, // Standard QWERTY layer + _FUNCTION, // Function key layer + _COLOUR // RGB key layer +}; +#define _QW _QWERTY +#define _FN _FUNCTION +#define _CLR _COLOUR + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT_all( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + 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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL + ), + + [_FUNCTION] = LAYOUT_all( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + 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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, + _______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, MO(_CLR), KC_MPLY, _______, KC_APP, _______, _______ + ), + + [_COLOUR] = LAYOUT_all( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ducky/one2mini/keymaps/default/readme.md b/keyboards/ducky/one2mini/keymaps/default/readme.md new file mode 100644 index 000000000000..c83b30eeffc0 --- /dev/null +++ b/keyboards/ducky/one2mini/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for one2mini (ISO & ANSI combined) \ No newline at end of file diff --git a/keyboards/ducky/one2mini/keymaps/iso/keymap.c b/keyboards/ducky/one2mini/keymaps/iso/keymap.c new file mode 100644 index 000000000000..758f45931fcd --- /dev/null +++ b/keyboards/ducky/one2mini/keymaps/iso/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2019 /u/KeepItUnder + * + * 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 + +// LAYERS +enum Layer { + _QWERTY = 0, // Standard QWERTY layer + _FUNCTION, // Function key layer + _COLOUR // RGB key layer +}; +#define _QW _QWERTY +#define _FN _FUNCTION +#define _CLR _COLOUR + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT_iso( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + 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_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL + ), + + [_FUNCTION] = LAYOUT_iso( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + 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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, + _______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______ + ), + + [_COLOUR] = LAYOUT_iso( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ducky/one2mini/keymaps/iso/readme.md b/keyboards/ducky/one2mini/keymaps/iso/readme.md new file mode 100644 index 000000000000..218e0dff0f10 --- /dev/null +++ b/keyboards/ducky/one2mini/keymaps/iso/readme.md @@ -0,0 +1 @@ +# The default ISO keymap for one2mini \ No newline at end of file diff --git a/keyboards/ducky/one2mini/readme.md b/keyboards/ducky/one2mini/readme.md new file mode 100644 index 000000000000..d03cb5d7b2da --- /dev/null +++ b/keyboards/ducky/one2mini/readme.md @@ -0,0 +1,7 @@ +# one2mini + +![one2mini](http://www.duckychannel.com.tw/page-en/One_2_Mini_RGB/images/One2_Mini_01_02.jpg) + +A 60% keyboard featuring per-key RGB LEDs. + +See child directories for compatible boards. diff --git a/keyboards/ducky/one2mini/rules.mk b/keyboards/ducky/one2mini/rules.mk new file mode 100644 index 000000000000..628be832eeb6 --- /dev/null +++ b/keyboards/ducky/one2mini/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ducky/one2mini/1861st From 4445455c1fbbdc960e7b8ae5cfc6559712d0323a Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 4 Aug 2021 05:24:54 -0700 Subject: [PATCH 158/328] BM65ISO: refactor layout macro (#13860) --- keyboards/bm65iso/bm65iso.h | 22 +++--- keyboards/bm65iso/info.json | 15 ++-- keyboards/bm65iso/keymaps/deadolus/keymap.c | 85 ++++++++++----------- keyboards/bm65iso/keymaps/default/keymap.c | 27 +++---- keyboards/bm65iso/keymaps/via/keymap.c | 48 ++++++------ keyboards/bm65iso/rules.mk | 2 + 6 files changed, 101 insertions(+), 98 deletions(-) diff --git a/keyboards/bm65iso/bm65iso.h b/keyboards/bm65iso/bm65iso.h index 27a1c1c07fbf..7f39c6f61bf6 100644 --- a/keyboards/bm65iso/bm65iso.h +++ b/keyboards/bm65iso/bm65iso.h @@ -17,20 +17,18 @@ #include "quantum.h" -#define LAYOUT( \ +#define XXX KC_NO + +#define LAYOUT_65_iso_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K1D, K2E, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ - { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ - { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, K49, K4A, XXX, K4C, K4D, K4E }, \ } - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ - diff --git a/keyboards/bm65iso/info.json b/keyboards/bm65iso/info.json index 1f474eb105cb..b88f7df2b05b 100644 --- a/keyboards/bm65iso/info.json +++ b/keyboards/bm65iso/info.json @@ -5,7 +5,7 @@ "width": 16, "height": 5, "layouts": { - "LAYOUT": { + "LAYOUT_65_iso_blocker": { "layout": [ {"label":"K00 (B0,D0)", "x":0, "y":0}, {"label":"K01 (B0,D1)", "x":1, "y":0}, @@ -22,6 +22,7 @@ {"label":"K0C (B0,C7)", "x":12, "y":0}, {"label":"K0D (B0,F7)", "x":13, "y":0, "w":2}, {"label":"K0E (B0,F6)", "x":15, "y":0}, + {"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5}, {"label":"K11 (B1,D1)", "x":1.5, "y":1}, {"label":"K12 (B1,D2)", "x":2.5, "y":1}, @@ -35,8 +36,8 @@ {"label":"K1A (B1,B6)", "x":10.5, "y":1}, {"label":"K1B (B1,C6)", "x":11.5, "y":1}, {"label":"K1C (B1,C7)", "x":12.5, "y":1}, - {"label":"K1D (B1,F7)", "x":13.5, "y":1, "w":1.5}, {"label":"K1E (B1,F6)", "x":15, "y":1}, + {"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75}, {"label":"K22 (B2,D2)", "x":1.75, "y":2}, {"label":"K23 (B2,D3)", "x":2.75, "y":2}, @@ -49,10 +50,12 @@ {"label":"K2A (B2,B6)", "x":9.75, "y":2}, {"label":"K2B (B2,C6)", "x":10.75, "y":2}, {"label":"K2C (B2,C7)", "x":11.75, "y":2}, - {"label":"K2D (B2,F7)", "x":12.75, "y":2, "w":2.25}, + {"label":"K2D (B2,F7)", "x":12.75, "y":2}, + {"label":"K1D (B1,F7)", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"K2E (B2,F6)", "x":15, "y":2}, - {"label":"K30 (B2,D1)", "x":0, "y":3, "w":1.25}, - {"label":"K31 (B3,D1)", "x":1.25, "y":3, "w":1}, + + {"label":"K30 (B3,D0)", "x":0, "y":3, "w":1.25}, + {"label":"K31 (B3,D1)", "x":1.25, "y":3}, {"label":"K32 (B3,D2)", "x":2.25, "y":3}, {"label":"K33 (B3,D3)", "x":3.25, "y":3}, {"label":"K34 (B3,D5)", "x":4.25, "y":3}, @@ -66,6 +69,7 @@ {"label":"K3C (B3,C7)", "x":12.25, "y":3, "w":1.75}, {"label":"K3D (B3,F7)", "x":14, "y":3}, {"label":"K3E (B3,F6)", "x":15, "y":3}, + {"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25}, {"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25}, {"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25}, @@ -78,5 +82,4 @@ ] } } - ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" } diff --git a/keyboards/bm65iso/keymaps/deadolus/keymap.c b/keyboards/bm65iso/keymaps/deadolus/keymap.c index f37a1a8c15ef..46de987a689a 100644 --- a/keyboards/bm65iso/keymaps/deadolus/keymap.c +++ b/keyboards/bm65iso/keymaps/deadolus/keymap.c @@ -58,82 +58,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ #ifdef TAP_DANCE_ENABLE /* 0: ISO qwerty */ - [_BL] = LAYOUT( - KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, TD(TD_HOME_END), - 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_NUHS, KC_PGUP, - KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT + [_BL] = LAYOUT_65_iso_blocker( + KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, TD(TD_HOME_END), + 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_NUHS, KC_ENT, KC_PGUP, + KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT ), #else - [_BL] = LAYOUT( - KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_HOME, - 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_NUHS, KC_PGUP, - KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT + [_BL] = LAYOUT_65_iso_blocker( + KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_HOME, + 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_NUHS, KC_ENT, KC_PGUP, + KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT ), #endif - [_RED_] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, LGUI(KC_END), - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, TO(0), LGUI(KC_PAUSE), - _______, TO(_GREEN_), TO(_BLUE_), TO(_CYAN_), TO(_MAGENTA_), TO(_YELLOW_), _______, _______, _______, _______, _______, _______, _______, _______, - _______,_______ ,_______ ,_______ , _______, _______, _______, _______, _______, _______, _______, _______,_______ , KC_VOLU, _______, - RESET, _______, _______, KC_LEAD, _______, _______, KC_MPLY, KC_VOLD, KC_MUTE + [_RED_] = LAYOUT_65_iso_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, LGUI(KC_END), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PAUSE), + _______, TO(_GREEN_), TO(_BLUE_), TO(_CYAN_), TO(_MAGENTA_), TO(_YELLOW_), _______, _______, _______, _______, _______, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, + RESET, _______, _______, KC_LEAD, _______, _______, KC_MPLY, KC_VOLD, KC_MUTE ), - [_GREEN_] = LAYOUT( + [_GREEN_] = LAYOUT_65_iso_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______,_______ , _______, _______, _______, KC_PGDN, KC_PGUP, KC_PSCR,_______, _______, _______, TO(0), _______, - _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, KC_MS_BTN1, KC_MS_BTN2, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_PGUP, KC_PSCR, _______, _______, _______, _______, + _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, KC_BTN2, _______, TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_BLUE_] = LAYOUT( - _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, KC_NUMLOCK, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, - _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______, _______,KC_P7, KC_P8, KC_P9, KC_PMNS, TO(0), _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, - _______, _______, _______, _______, KC_0, KC_PCMM, _______, _______, _______ + [_BLUE_] = LAYOUT_65_iso_blocker( + _______, DM_PLY1, DM_PLY2, _______, _______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, + _______, DM_REC1, DM_REC2, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, + _______, _______, _______, _______, KC_0, KC_PCMM, _______, _______, _______ ), - [_CYAN_] = LAYOUT( + [_CYAN_] = LAYOUT_65_iso_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_MAGENTA_] = LAYOUT( + [_MAGENTA_] = LAYOUT_65_iso_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_YELLOW_] = LAYOUT( + [_YELLOW_] = LAYOUT_65_iso_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /*template - [_UL] = LAYOUT( + [_UL] = LAYOUT_65_iso_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/bm65iso/keymaps/default/keymap.c b/keyboards/bm65iso/keymaps/default/keymap.c index 9885893763f2..bed12e0f72fb 100644 --- a/keyboards/bm65iso/keymaps/default/keymap.c +++ b/keyboards/bm65iso/keymaps/default/keymap.c @@ -16,20 +16,21 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_HOME, - 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_NUHS, KC_PGUP, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ + [0] = LAYOUT_65_iso_blocker( + 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_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_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_iso_blocker( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/bm65iso/keymaps/via/keymap.c b/keyboards/bm65iso/keymaps/via/keymap.c index 76c8aaa3ea41..ae36e6b1f53e 100644 --- a/keyboards/bm65iso/keymaps/via/keymap.c +++ b/keyboards/bm65iso/keymaps/via/keymap.c @@ -16,33 +16,37 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - 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_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_ENT, KC_HOME, - 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_BSLS, KC_PGUP, - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + + [0] = LAYOUT_65_iso_blocker( + 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_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_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ + + [1] = LAYOUT_65_iso_blocker( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + + [2] = LAYOUT_65_iso_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + + [3] = LAYOUT_65_iso_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/bm65iso/rules.mk b/keyboards/bm65iso/rules.mk index d837d1ec6cef..a3376d2db6e2 100644 --- a/keyboards/bm65iso/rules.mk +++ b/keyboards/bm65iso/rules.mk @@ -23,3 +23,5 @@ AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 LTO_ENABLE = yes + +LAYOUTS = 65_iso_blocker From f4c55db8dde8fb1590bff7661dae8718a29208b4 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 4 Aug 2021 14:32:27 -0700 Subject: [PATCH 159/328] cKeys Handwire 101 Refactor (#13879) * update info.json - use human-friendly formatting - remove `key_count` key * rename LAYOUT to LAYOUT_ortho_4x4 * refactor default keymap - add license header - qmk cformat pass - keycode grid alignment * remove empty config.h file from default keymap * update Manufacturer and Product strings * tidy up handwire_101.c - add license header - remove boilerplate functions * tidy up handwire_101.h - add license header - remove instructive comment * minor rules.mk tidy-up - remove Bootloader selection sample comments * rewrite SEND_STRING() statements per fauxpark Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/ckeys/handwire_101/config.h | 4 +- keyboards/ckeys/handwire_101/handwire_101.c | 43 +-- keyboards/ckeys/handwire_101/handwire_101.h | 23 +- keyboards/ckeys/handwire_101/info.json | 42 ++- .../handwire_101/keymaps/default/config.h | 3 - .../handwire_101/keymaps/default/keymap.c | 326 +++++++++--------- keyboards/ckeys/handwire_101/rules.mk | 7 - 7 files changed, 237 insertions(+), 211 deletions(-) delete mode 100755 keyboards/ckeys/handwire_101/keymaps/default/config.h diff --git a/keyboards/ckeys/handwire_101/config.h b/keyboards/ckeys/handwire_101/config.h index f1e784fd245d..663f5e343d85 100755 --- a/keyboards/ckeys/handwire_101/config.h +++ b/keyboards/ckeys/handwire_101/config.h @@ -23,8 +23,8 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -#define MANUFACTURER ckeys_handwire -#define PRODUCT ckeys_handwire +#define MANUFACTURER cKeys +#define PRODUCT Handwire 101 /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/ckeys/handwire_101/handwire_101.c b/keyboards/ckeys/handwire_101/handwire_101.c index a6ff8f0e3d0f..7d251ddce6c5 100755 --- a/keyboards/ckeys/handwire_101/handwire_101.c +++ b/keyboards/ckeys/handwire_101/handwire_101.c @@ -1,28 +1,17 @@ -#include "handwire_101.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - // Turn status LED on - //DDRD |= (1<<6); - //PORTD |= (1<<6); - - matrix_init_user(); -} +/* Copyright 2019 Branden Byers + * + * 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 . + */ -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - led_set_user(usb_led); -} +#include "handwire_101.h" diff --git a/keyboards/ckeys/handwire_101/handwire_101.h b/keyboards/ckeys/handwire_101/handwire_101.h index 0f0309c3245c..5d6ef6ff09f7 100755 --- a/keyboards/ckeys/handwire_101/handwire_101.h +++ b/keyboards/ckeys/handwire_101/handwire_101.h @@ -1,12 +1,24 @@ +/* Copyright 2019 Branden Byers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include "quantum.h" -// This a shortcut to help you visually see your layout. -// The following is an example using the Planck MIT layout -// The first section contains all of the arguements -// The second converts the arguments into a two-dimensional array -#define LAYOUT( \ +#define LAYOUT_ortho_4x4( \ k00, k01, k02, k03, \ k10, k11, k12, k13, \ k20, k21, k22, k23, \ @@ -18,4 +30,3 @@ { k20, k21, k22, k23 }, \ { k30, k31, k32, k33 } \ } - diff --git a/keyboards/ckeys/handwire_101/info.json b/keyboards/ckeys/handwire_101/info.json index dfe6c4830462..8113e391dbec 100644 --- a/keyboards/ckeys/handwire_101/info.json +++ b/keyboards/ckeys/handwire_101/info.json @@ -1,13 +1,35 @@ { - "keyboard_name": "cKeys Handwire 101", - "url": "https://ckeys.org/slides/handwire/", - "maintainer": "brandenbyers", - "width": 4, - "height": 4, - "layouts": { - "LAYOUT_ortho_4x4": { - "key_count": 16, - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}] + "keyboard_name": "cKeys Handwire 101", + "url": "https://ckeys.org/slides/handwire/", + "maintainer": "brandenbyers", + "width": 4, + "height": 4, + "layout_aliases": { + "LAYOUT": "LAYOUT_ortho_4x4" + }, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3} + ] + } } - } } diff --git a/keyboards/ckeys/handwire_101/keymaps/default/config.h b/keyboards/ckeys/handwire_101/keymaps/default/config.h deleted file mode 100755 index 9935accb02dd..000000000000 --- a/keyboards/ckeys/handwire_101/keymaps/default/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -// Add overrides here diff --git a/keyboards/ckeys/handwire_101/keymaps/default/keymap.c b/keyboards/ckeys/handwire_101/keymaps/default/keymap.c index 8c65406ddb7f..fdca99fd0726 100755 --- a/keyboards/ckeys/handwire_101/keymaps/default/keymap.c +++ b/keyboards/ckeys/handwire_101/keymaps/default/keymap.c @@ -1,177 +1,191 @@ +/* Copyright 2019 Branden Byers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include QMK_KEYBOARD_H enum layers { - _BASE, // base layer - _LAYERS, // layer of all layers - _MUSIC, // music mode - _MUSIC_4_LIFE, // music mode until unplugged - _MOUSE, // mousekeys - _TERMINAL, // terminal - _ADMIN // admin duties + _BASE, // base layer + _LAYERS, // layer of all layers + _MUSIC, // music mode + _MUSIC_4_LIFE, // music mode until unplugged + _MOUSE, // mousekeys + _TERMINAL, // terminal + _ADMIN // admin duties }; enum custom_keycodes { - TERM_ABOUT = SAFE_RANGE, - TERM_PRINT, - TERM_FLUSH, - TERM_HELP, - CKEYS_ABOUT, + TERM_ABOUT = SAFE_RANGE, + TERM_PRINT, + TERM_FLUSH, + TERM_HELP, + CKEYS_ABOUT, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* BASE (numpad) - * ,-----------------------. - * | 7 | 8 | 9 | / | <-- Hold for LAYERS - * |-----+-----+-----+-----| - * | 4 | 5 | 6 | * | - * |-----+-----+-----+-----| - * | 1 | 2 | 3 | - | - * |-----+-----+-----+-----| - * | 0 | . | = | + | - * `---------------------- ' - */ - [_BASE] = LAYOUT( - KC_KP_7, KC_KP_8, KC_KP_9, LT(MO(_LAYERS), KC_PSLS), \ - KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST, \ - KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS, \ - KC_KP_0, KC_KP_DOT, KC_KP_EQUAL, KC_PPLS \ - ), + * ,-----------------------. + * | 7 | 8 | 9 | / | <-- Hold for LAYERS + * |-----+-----+-----+-----| + * | 4 | 5 | 6 | * | + * |-----+-----+-----+-----| + * | 1 | 2 | 3 | - | + * |-----+-----+-----+-----| + * | 0 | . | = | + | + * `-----------------------' + */ + [_BASE] = LAYOUT_ortho_4x4( + KC_P7, KC_P8, KC_P9, LT(_LAYERS, KC_PSLS), + KC_P4, KC_P5, KC_P6, KC_PAST, + KC_P1, KC_P2, KC_P3, KC_PMNS, + KC_P0, KC_PDOT, KC_PEQL, KC_PPLS + ), /* LAYERS - * ,---------------------------. - * | MUSIC | | | X | - * |---------+-----+-----+-----| - * | MOUSE | | | | - * |---------+-----+-----+-----| - * |TERMINAL | | | | - * |---------+-----+-----+-----| - * | ADMIN | | | | - * `---------------------------' - */ - [_LAYERS] = LAYOUT( - TG(_MUSIC), _______, _______, _______, \ - TG(_MOUSE), _______, _______, _______, \ - TG(_TERMINAL), _______, _______, _______, \ - TG(_ADMIN), _______, _______, _______\ - ), + * ,---------------------------. + * | MUSIC | | | X | + * |---------+-----+-----+-----| + * | MOUSE | | | | + * |---------+-----+-----+-----| + * |TERMINAL | | | | + * |---------+-----+-----+-----| + * | ADMIN | | | | + * `---------------------------' + */ + [_LAYERS] = LAYOUT_ortho_4x4( + TG(_MUSIC), _______, _______, _______, + TG(_MOUSE), _______, _______, _______, + TG(_TERMINAL), _______, _______, _______, + TG(_ADMIN), _______, _______, _______ + ), /* MUSIC - * ,-----------------------. - * | X | | | X | - * |-----+-----+-----+-----| - * | | | |4EVER| - * |-----+-----+-----+-----| - * | OFF | | | | - * |-----+-----+-----+-----| - * | ON | | |MODES| - * `---------------------- ' - */ - // TODO: Make this music layer the one to jump to other music layers (different octaves) - [_MUSIC] = LAYOUT( - _______, _______, _______, _______, \ - _______, _______, _______, TG(_MUSIC_4_LIFE), \ - MU_OFF, _______, _______, _______, \ - MU_ON, _______, _______, MU_MOD \ - ), + * ,-----------------------. + * | X | | | X | + * |-----+-----+-----+-----| + * | | | |4EVER| + * |-----+-----+-----+-----| + * | OFF | | | | + * |-----+-----+-----+-----| + * | ON | | |MODES| + * `-----------------------' + */ + // TODO: Make this music layer the one to jump to other music layers (different octaves) + [_MUSIC] = LAYOUT_ortho_4x4( + _______, _______, _______, _______, + _______, _______, _______, TG(_MUSIC_4_LIFE), + MU_OFF, _______, _______, _______, + MU_ON, _______, _______, MU_MOD + ), /* MUSIC_4_LIFE - * ,-----------------------. - * | ♫ | ♫ | ♫ | ♫ | - * |-----+-----+-----+-----| - * | ♫ | ♫ | ♫ | ♫ | - * |-----+-----+-----+-----| - * | ♫ | ♫ | ♫ | ♫ | - * |-----+-----+-----+-----| - * | ♫ | ♫ | ♫ | ♫ | - * `---------------------- ' - */ - [_MUSIC_4_LIFE] = LAYOUT( - KC_M, KC_M, KC_M, KC_M, \ - KC_M, KC_M, KC_M, KC_M, \ - KC_M, KC_M, KC_M, KC_M, \ - KC_M, KC_M, KC_M, KC_M \ - ), + * ,-----------------------. + * | ♫ | ♫ | ♫ | ♫ | + * |-----+-----+-----+-----| + * | ♫ | ♫ | ♫ | ♫ | + * |-----+-----+-----+-----| + * | ♫ | ♫ | ♫ | ♫ | + * |-----+-----+-----+-----| + * | ♫ | ♫ | ♫ | ♫ | + * `-----------------------' + */ + [_MUSIC_4_LIFE] = LAYOUT_ortho_4x4( + KC_M, KC_M, KC_M, KC_M, + KC_M, KC_M, KC_M, KC_M, + KC_M, KC_M, KC_M, KC_M, + KC_M, KC_M, KC_M, KC_M + ), /* MOUSE - * ,-------------------------------------------------. - * | BUTTON 5 | | SCROLL UP | X | - * |-----------+-----------+------------+------------| - * | X |LEFT CLICK | UP |RIGHT CLICK | - * |-----------+-----------+------------+------------| - * | BUTTON 4 | LEFT | DOWN | RIGHT | - * |-----------+-----------+------------+------=-----| - * | BUTTON 3 |SCROLL LEFT|SCROLL DOWN |SCROLL RIGHT| - * `-------------------------------------------------' - */ - [_MOUSE] = LAYOUT( - KC_MS_BTN5, _______, KC_MS_WH_UP, _______, \ - _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, \ - KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, \ - KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT \ - ), + * ,-------------------------------------------------. + * | BUTTON 5 | | SCROLL UP | X | + * |-----------+-----------+------------+------------| + * | X |LEFT CLICK | UP |RIGHT CLICK | + * |-----------+-----------+------------+------------| + * | BUTTON 4 | LEFT | DOWN | RIGHT | + * |-----------+-----------+------------+------=-----| + * | BUTTON 3 |SCROLL LEFT|SCROLL DOWN |SCROLL RIGHT| + * `-------------------------------------------------' + */ + [_MOUSE] = LAYOUT_ortho_4x4( + KC_BTN5, _______, KC_WH_U, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, + KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, + KC_BTN3, KC_WH_L, KC_WH_D, KC_WH_R + ), /* TERMINAL - * ,---------------------------------------. - * | |ABOUT| | X | - * |------------+-----+----------+---------| - * |TERMINAL OFF|PRINT| | | - * |------------+-----+----------+---------| - * | X |FLUSH| | | - * |------------+-----+----------+---------| - * |TERMINAL ON |HELP | | | - * `--------=======------------------------' - */ - [_TERMINAL] = LAYOUT( - _______, TERM_ABOUT, _______, _______, \ - TERM_OFF, TERM_PRINT, _______, _______, \ - _______, TERM_FLUSH, _______, _______, \ - TERM_ON, TERM_HELP , _______, _______\ - ), + * ,---------------------------------------. + * | |ABOUT| | X | + * |------------+-----+----------+---------| + * |TERMINAL OFF|PRINT| | | + * |------------+-----+----------+---------| + * | X |FLUSH| | | + * |------------+-----+----------+---------| + * |TERMINAL ON |HELP | | | + * `--------=======------------------------' + */ + [_TERMINAL] = LAYOUT_ortho_4x4( + _______, TERM_ABOUT, _______, _______, + TERM_OFF, TERM_PRINT, _______, _______, + _______, TERM_FLUSH, _______, _______, + TERM_ON, TERM_HELP , _______, _______ + ), /* ADMIN - * ,-----------------------------------------. - * | RESET | | | X | - * |------------+-----+-----------+----------| - * |ABOUT CKEYS | | | | - * |------------+-----+-----------+----------| - * | | |CLICKY UP |CLICKY OFF| - * |------------+-----+-----------+----------| - * | X | |CLICKY DOWN|CLICKY ON | - * `-----------------------------------------' - */ - [_ADMIN] = LAYOUT( - RESET, _______, _______, _______, \ - CKEYS_ABOUT, _______, _______, _______, \ - _______, _______, _______, CK_OFF, \ - _______, _______, _______, CK_ON \ - ), + * ,-----------------------------------------. + * | RESET | | | X | + * |------------+-----+-----------+----------| + * |ABOUT CKEYS | | | | + * |------------+-----+-----------+----------| + * | | |CLICKY UP |CLICKY OFF| + * |------------+-----+-----------+----------| + * | X | |CLICKY DOWN|CLICKY ON | + * `-----------------------------------------' + */ + [_ADMIN] = LAYOUT_ortho_4x4( + RESET, _______, _______, _______, + CKEYS_ABOUT, _______, _______, _______, + _______, _______, _______, CK_OFF, + _______, _______, _______, CK_ON + ), }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TERM_ABOUT: - if (record->event.pressed) { - // when keycode TERM_ABOUT is pressed - SEND_STRING("about"SS_TAP(X_ENTER)); - } else { - // when keycode TERM_ABOUT is released - } - break; - case TERM_PRINT: - if (record->event.pressed) { - SEND_STRING("print"SS_TAP(X_ENTER)); - } else { } - break; - case TERM_FLUSH: - if (record->event.pressed) { - SEND_STRING("flush"SS_TAP(X_ENTER)); - } else { } - break; - case TERM_HELP: - if (record->event.pressed) { - SEND_STRING("help"SS_TAP(X_ENTER)); - } else { } - break; - case CKEYS_ABOUT: - if (record->event.pressed) { - SEND_STRING("https://cKeys.org"SS_TAP(X_ENTER)"Making people smile one keyboard at a time."SS_TAP(X_ENTER)"cKeys is a volunteer-run 501(c)(3) nonprofit organization."SS_TAP(X_ENTER)); - } else { } - break; - } - return true; + switch (keycode) { + case TERM_ABOUT: + if (record->event.pressed) { + // when keycode TERM_ABOUT is pressed + SEND_STRING("about\n"); + } + break; + case TERM_PRINT: + if (record->event.pressed) { + SEND_STRING("print\n"); + } + break; + case TERM_FLUSH: + if (record->event.pressed) { + SEND_STRING("flush\n"); + } + break; + case TERM_HELP: + if (record->event.pressed) { + SEND_STRING("help\n"); + } + break; + case CKEYS_ABOUT: + if (record->event.pressed) { + SEND_STRING("https://cKeys.org\nMaking people smile one keyboard at a time.\ncKeys is a volunteer-run 501(c)(3) nonprofit organization.\n"); + } + break; + } + return true; }; diff --git a/keyboards/ckeys/handwire_101/rules.mk b/keyboards/ckeys/handwire_101/rules.mk index 715738a0cd48..3d475133069a 100755 --- a/keyboards/ckeys/handwire_101/rules.mk +++ b/keyboards/ckeys/handwire_101/rules.mk @@ -2,13 +2,6 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = caterina # Build Options From 28b59c30d2aa73ea56b3f16cf341bdc2883f11d8 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 5 Aug 2021 21:28:26 -0700 Subject: [PATCH 160/328] MetaMechs Timber Wolf Configurator Fixes (#13895) * info.json: use human-friendly formatting * info.json: fix key sequences for ISO layouts All the ISO layouts had the Enter key out-of-sequence, causing key-assignment mismatches in QMK Configurator. --- keyboards/metamechs/timberwolf/info.json | 767 +++++++++++++++++++++-- 1 file changed, 718 insertions(+), 49 deletions(-) diff --git a/keyboards/metamechs/timberwolf/info.json b/keyboards/metamechs/timberwolf/info.json index 4c099e50394d..279e9014ef4b 100644 --- a/keyboards/metamechs/timberwolf/info.json +++ b/keyboards/metamechs/timberwolf/info.json @@ -1,72 +1,741 @@ { - "keyboard_name": "Timber Wolf", - "url": "https://geekhack.org/index.php?topic=102520.0", - "maintainer": "Croktopus", - "width": 18.75, - "height": 6.5, + "keyboard_name": "Timber Wolf", + "url": "https://geekhack.org/index.php?topic=102520.0", + "maintainer": "Croktopus", + "width": 18.75, + "height": 6.5, "layouts": { "LAYOUT_all": { "layout": [ - {"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, - {"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, - {"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"PrtSc", "x":17.75, "y":2.25}, - {"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Enter", "x":15, "y":3.25, "w":1.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"Enter", "x":17.75, "y":3.25}, - {"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.25}, {"label":"Fn", "x":14.75, "y":4.25}, {"label":"Up", "x":15.75, "y":4.5}, {"label":"Up", "x":16.75, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, - {"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":5.5}, {"label":"Alt", "x":10.75, "y":5.25, "w":1}, {"label":"Win", "x":11.75, "y":5.25}, {"label":"Ctrl", "x":12.75, "y":5.25, "w":1}, {"label":"Left", "x":13.75, "y":5.5}, {"label":"Left", "x":14.75, "y":5.5}, {"label":"Down", "x":15.75, "y":5.5}, {"label":"Right", "x":16.75, "y":5.5}, {"label":"Enter", "x":17.75, "y":5.25}] + {"label":"Mute", "x":0, "y":0}, + {"label":"Esc", "x":1.25, "y":0}, + {"label":"F1", "x":2.5, "y":0}, + {"label":"F2", "x":3.5, "y":0}, + {"label":"F3", "x":4.5, "y":0}, + {"label":"F4", "x":5.5, "y":0}, + {"label":"F5", "x":7, "y":0}, + {"label":"F6", "x":8, "y":0}, + {"label":"F7", "x":9, "y":0}, + {"label":"F8", "x":10, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":12.5, "y":0}, + {"label":"F11", "x":13.5, "y":0}, + {"label":"F12", "x":14.5, "y":0}, + {"label":"Insert", "x":15.75, "y":0}, + {"label":"Home", "x":16.75, "y":0}, + {"label":"PgUp", "x":17.75, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.25, "y":1.25}, + {"label":"!", "x":2.25, "y":1.25}, + {"label":"@", "x":3.25, "y":1.25}, + {"label":"#", "x":4.25, "y":1.25}, + {"label":"$", "x":5.25, "y":1.25}, + {"label":"%", "x":6.25, "y":1.25}, + {"label":"^", "x":7.25, "y":1.25}, + {"label":"&", "x":8.25, "y":1.25}, + {"label":"*", "x":9.25, "y":1.25}, + {"label":"(", "x":10.25, "y":1.25}, + {"label":")", "x":11.25, "y":1.25}, + {"label":"_", "x":12.25, "y":1.25}, + {"label":"+", "x":13.25, "y":1.25}, + {"x":14.25, "y":1.25}, + {"label":"Backspace", "x":15.25, "y":1.25}, + {"label":"End", "x":16.75, "y":1}, + {"label":"PgDn", "x":17.75, "y":1}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, + {"label":"Q", "x":2.75, "y":2.25}, + {"label":"W", "x":3.75, "y":2.25}, + {"label":"E", "x":4.75, "y":2.25}, + {"label":"R", "x":5.75, "y":2.25}, + {"label":"T", "x":6.75, "y":2.25}, + {"label":"Y", "x":7.75, "y":2.25}, + {"label":"U", "x":8.75, "y":2.25}, + {"label":"I", "x":9.75, "y":2.25}, + {"label":"O", "x":10.75, "y":2.25}, + {"label":"P", "x":11.75, "y":2.25}, + {"label":"{", "x":12.75, "y":2.25}, + {"label":"}", "x":13.75, "y":2.25}, + {"label":"|", "x":14.75, "y":2.25, "w":1.5}, + {"label":"Insert", "x":16.5, "y":2.25}, + {"label":"PrtSc", "x":17.75, "y":2.25}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, + {"label":"A", "x":3, "y":3.25}, + {"label":"S", "x":4, "y":3.25}, + {"label":"D", "x":5, "y":3.25}, + {"label":"F", "x":6, "y":3.25}, + {"label":"G", "x":7, "y":3.25}, + {"label":"H", "x":8, "y":3.25}, + {"label":"J", "x":9, "y":3.25}, + {"label":"K", "x":10, "y":3.25}, + {"label":"L", "x":11, "y":3.25}, + {"label":":", "x":12, "y":3.25}, + {"label":"\"", "x":13, "y":3.25}, + {"x":14, "y":3.25}, + {"label":"Enter", "x":15, "y":3.25, "w":1.25}, + {"label":"Delete", "x":16.5, "y":3.25}, + {"label":"Enter", "x":17.75, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, + {"x":2.5, "y":4.25}, + {"label":"Z", "x":3.5, "y":4.25}, + {"label":"X", "x":4.5, "y":4.25}, + {"label":"C", "x":5.5, "y":4.25}, + {"label":"V", "x":6.5, "y":4.25}, + {"label":"B", "x":7.5, "y":4.25}, + {"label":"N", "x":8.5, "y":4.25}, + {"label":"M", "x":9.5, "y":4.25}, + {"label":"<", "x":10.5, "y":4.25}, + {"label":">", "x":11.5, "y":4.25}, + {"label":"?", "x":12.5, "y":4.25}, + {"label":"Shift", "x":13.5, "y":4.25, "w":1.25}, + {"label":"Fn", "x":14.75, "y":4.25}, + {"label":"Up", "x":15.75, "y":4.5}, + {"label":"Up", "x":16.75, "y":4.5}, + {"label":"Enter", "x":17.75, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, + {"label":"Win", "x":2.75, "y":5.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, + {"x":5.25, "y":5.25, "w":5.5}, + {"label":"Alt", "x":10.75, "y":5.25, "w":1}, + {"label":"Win", "x":11.75, "y":5.25}, + {"label":"Ctrl", "x":12.75, "y":5.25, "w":1}, + {"label":"Left", "x":13.75, "y":5.5}, + {"label":"Left", "x":14.75, "y":5.5}, + {"label":"Down", "x":15.75, "y":5.5}, + {"label":"Right", "x":16.75, "y":5.5}, + {"label":"Enter", "x":17.75, "y":5.25} + ] }, "LAYOUT_prime_ansi": { "layout": [ - {"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, - {"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, - {"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"PrtSc", "x":17.75, "y":2.25}, - {"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"label":"Enter", "x":14, "y":3.25, "w":2.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"Enter", "x":17.75, "y":3.25}, - {"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Up", "x":16.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, - {"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"Left", "x":15.5, "y":5.5}, {"label":"Down", "x":16.5, "y":5.5}, {"label":"Right", "x":17.5, "y":5.5}] + {"label":"Mute", "x":0, "y":0}, + {"label":"Esc", "x":1.25, "y":0}, + {"label":"F1", "x":2.5, "y":0}, + {"label":"F2", "x":3.5, "y":0}, + {"label":"F3", "x":4.5, "y":0}, + {"label":"F4", "x":5.5, "y":0}, + {"label":"F5", "x":7, "y":0}, + {"label":"F6", "x":8, "y":0}, + {"label":"F7", "x":9, "y":0}, + {"label":"F8", "x":10, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":12.5, "y":0}, + {"label":"F11", "x":13.5, "y":0}, + {"label":"F12", "x":14.5, "y":0}, + {"label":"Insert", "x":15.75, "y":0}, + {"label":"Home", "x":16.75, "y":0}, + {"label":"PgUp", "x":17.75, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.25, "y":1.25}, + {"label":"!", "x":2.25, "y":1.25}, + {"label":"@", "x":3.25, "y":1.25}, + {"label":"#", "x":4.25, "y":1.25}, + {"label":"$", "x":5.25, "y":1.25}, + {"label":"%", "x":6.25, "y":1.25}, + {"label":"^", "x":7.25, "y":1.25}, + {"label":"&", "x":8.25, "y":1.25}, + {"label":"*", "x":9.25, "y":1.25}, + {"label":"(", "x":10.25, "y":1.25}, + {"label":")", "x":11.25, "y":1.25}, + {"label":"_", "x":12.25, "y":1.25}, + {"label":"+", "x":13.25, "y":1.25}, + {"x":14.25, "y":1.25}, + {"label":"Backspace", "x":15.25, "y":1.25}, + {"label":"End", "x":16.75, "y":1}, + {"label":"PgDn", "x":17.75, "y":1}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, + {"label":"Q", "x":2.75, "y":2.25}, + {"label":"W", "x":3.75, "y":2.25}, + {"label":"E", "x":4.75, "y":2.25}, + {"label":"R", "x":5.75, "y":2.25}, + {"label":"T", "x":6.75, "y":2.25}, + {"label":"Y", "x":7.75, "y":2.25}, + {"label":"U", "x":8.75, "y":2.25}, + {"label":"I", "x":9.75, "y":2.25}, + {"label":"O", "x":10.75, "y":2.25}, + {"label":"P", "x":11.75, "y":2.25}, + {"label":"{", "x":12.75, "y":2.25}, + {"label":"}", "x":13.75, "y":2.25}, + {"label":"|", "x":14.75, "y":2.25, "w":1.5}, + {"label":"Insert", "x":16.5, "y":2.25}, + {"label":"PrtSc", "x":17.75, "y":2.25}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, + {"label":"A", "x":3, "y":3.25}, + {"label":"S", "x":4, "y":3.25}, + {"label":"D", "x":5, "y":3.25}, + {"label":"F", "x":6, "y":3.25}, + {"label":"G", "x":7, "y":3.25}, + {"label":"H", "x":8, "y":3.25}, + {"label":"J", "x":9, "y":3.25}, + {"label":"K", "x":10, "y":3.25}, + {"label":"L", "x":11, "y":3.25}, + {"label":":", "x":12, "y":3.25}, + {"label":"\"", "x":13, "y":3.25}, + {"label":"Enter", "x":14, "y":3.25, "w":2.25}, + {"label":"Delete", "x":16.5, "y":3.25}, + {"label":"Enter", "x":17.75, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, + {"label":"Z", "x":3.5, "y":4.25}, + {"label":"X", "x":4.5, "y":4.25}, + {"label":"C", "x":5.5, "y":4.25}, + {"label":"V", "x":6.5, "y":4.25}, + {"label":"B", "x":7.5, "y":4.25}, + {"label":"N", "x":8.5, "y":4.25}, + {"label":"M", "x":9.5, "y":4.25}, + {"label":"<", "x":10.5, "y":4.25}, + {"label":">", "x":11.5, "y":4.25}, + {"label":"?", "x":12.5, "y":4.25}, + {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, + {"label":"Fn", "x":15.25, "y":4.25}, + {"label":"Up", "x":16.5, "y":4.5}, + {"label":"Enter", "x":17.75, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, + {"label":"Win", "x":2.75, "y":5.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, + {"x":5.25, "y":5.25, "w":6}, + {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.75, "y":5.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, + {"label":"Left", "x":15.5, "y":5.5}, + {"label":"Down", "x":16.5, "y":5.5}, + {"label":"Right", "x":17.5, "y":5.5} + ] }, "LAYOUT_prime_iso": { "layout": [ - {"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, - {"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, - {"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"PrtSc", "x":17.75, "y":2.25}, - {"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"Enter", "x":17.75, "y":3.25}, - {"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Up", "x":16.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, - {"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"Left", "x":15.5, "y":5.5}, {"label":"Down", "x":16.5, "y":5.5}, {"label":"Right", "x":17.5, "y":5.5}] + {"label":"Mute", "x":0, "y":0}, + {"label":"Esc", "x":1.25, "y":0}, + {"label":"F1", "x":2.5, "y":0}, + {"label":"F2", "x":3.5, "y":0}, + {"label":"F3", "x":4.5, "y":0}, + {"label":"F4", "x":5.5, "y":0}, + {"label":"F5", "x":7, "y":0}, + {"label":"F6", "x":8, "y":0}, + {"label":"F7", "x":9, "y":0}, + {"label":"F8", "x":10, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":12.5, "y":0}, + {"label":"F11", "x":13.5, "y":0}, + {"label":"F12", "x":14.5, "y":0}, + {"label":"Insert", "x":15.75, "y":0}, + {"label":"Home", "x":16.75, "y":0}, + {"label":"PgUp", "x":17.75, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.25, "y":1.25}, + {"label":"!", "x":2.25, "y":1.25}, + {"label":"@", "x":3.25, "y":1.25}, + {"label":"#", "x":4.25, "y":1.25}, + {"label":"$", "x":5.25, "y":1.25}, + {"label":"%", "x":6.25, "y":1.25}, + {"label":"^", "x":7.25, "y":1.25}, + {"label":"&", "x":8.25, "y":1.25}, + {"label":"*", "x":9.25, "y":1.25}, + {"label":"(", "x":10.25, "y":1.25}, + {"label":")", "x":11.25, "y":1.25}, + {"label":"_", "x":12.25, "y":1.25}, + {"label":"+", "x":13.25, "y":1.25}, + {"x":14.25, "y":1.25}, + {"label":"Backspace", "x":15.25, "y":1.25}, + {"label":"End", "x":16.75, "y":1}, + {"label":"PgDn", "x":17.75, "y":1}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, + {"label":"Q", "x":2.75, "y":2.25}, + {"label":"W", "x":3.75, "y":2.25}, + {"label":"E", "x":4.75, "y":2.25}, + {"label":"R", "x":5.75, "y":2.25}, + {"label":"T", "x":6.75, "y":2.25}, + {"label":"Y", "x":7.75, "y":2.25}, + {"label":"U", "x":8.75, "y":2.25}, + {"label":"I", "x":9.75, "y":2.25}, + {"label":"O", "x":10.75, "y":2.25}, + {"label":"P", "x":11.75, "y":2.25}, + {"label":"{", "x":12.75, "y":2.25}, + {"label":"}", "x":13.75, "y":2.25}, + {"label":"Insert", "x":16.5, "y":2.25}, + {"label":"PrtSc", "x":17.75, "y":2.25}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, + {"label":"A", "x":3, "y":3.25}, + {"label":"S", "x":4, "y":3.25}, + {"label":"D", "x":5, "y":3.25}, + {"label":"F", "x":6, "y":3.25}, + {"label":"G", "x":7, "y":3.25}, + {"label":"H", "x":8, "y":3.25}, + {"label":"J", "x":9, "y":3.25}, + {"label":"K", "x":10, "y":3.25}, + {"label":"L", "x":11, "y":3.25}, + {"label":":", "x":12, "y":3.25}, + {"label":"\"", "x":13, "y":3.25}, + {"x":14, "y":3.25}, + {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, + {"label":"Delete", "x":16.5, "y":3.25}, + {"label":"Enter", "x":17.75, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, + {"x":2.5, "y":4.25}, + {"label":"Z", "x":3.5, "y":4.25}, + {"label":"X", "x":4.5, "y":4.25}, + {"label":"C", "x":5.5, "y":4.25}, + {"label":"V", "x":6.5, "y":4.25}, + {"label":"B", "x":7.5, "y":4.25}, + {"label":"N", "x":8.5, "y":4.25}, + {"label":"M", "x":9.5, "y":4.25}, + {"label":"<", "x":10.5, "y":4.25}, + {"label":">", "x":11.5, "y":4.25}, + {"label":"?", "x":12.5, "y":4.25}, + {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, + {"label":"Fn", "x":15.25, "y":4.25}, + {"label":"Up", "x":16.5, "y":4.5}, + {"label":"Enter", "x":17.75, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, + {"label":"Win", "x":2.75, "y":5.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, + {"x":5.25, "y":5.25, "w":6}, + {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.75, "y":5.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, + {"label":"Left", "x":15.5, "y":5.5}, + {"label":"Down", "x":16.5, "y":5.5}, + {"label":"Right", "x":17.5, "y":5.5} + ] }, - "LAYOUT_b_ansi": { + "LAYOUT_b_ansi": { "layout": [ - {"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"PrtSc", "x":15.75, "y":0}, {"label":"Scroll Lock", "x":16.75, "y":0}, {"label":"Pause", "x":17.75, "y":0}, - {"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"Home", "x":16.75, "y":1.25}, {"label":"PgUp", "x":17.75, "y":1.25}, - {"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"End", "x":16.75, "y":2.25}, {"label":"PgDn", "x":17.75, "y":2.25}, - {"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"label":"Enter", "x":14, "y":3.25, "w":2.25}, {"label":"Delete", "x":16.75, "y":3.25}, {"label":"Insert", "x":17.75, "y":3.25}, - {"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Up", "x":16.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, - {"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"Left", "x":15.5, "y":5.5}, {"label":"Down", "x":16.5, "y":5.5}, {"label":"Right", "x":17.5, "y":5.5}] + {"label":"Mute", "x":0, "y":0}, + {"label":"Esc", "x":1.25, "y":0}, + {"label":"F1", "x":2.5, "y":0}, + {"label":"F2", "x":3.5, "y":0}, + {"label":"F3", "x":4.5, "y":0}, + {"label":"F4", "x":5.5, "y":0}, + {"label":"F5", "x":7, "y":0}, + {"label":"F6", "x":8, "y":0}, + {"label":"F7", "x":9, "y":0}, + {"label":"F8", "x":10, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":12.5, "y":0}, + {"label":"F11", "x":13.5, "y":0}, + {"label":"F12", "x":14.5, "y":0}, + {"label":"PrtSc", "x":15.75, "y":0}, + {"label":"Scroll Lock", "x":16.75, "y":0}, + {"label":"Pause", "x":17.75, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.25, "y":1.25}, + {"label":"!", "x":2.25, "y":1.25}, + {"label":"@", "x":3.25, "y":1.25}, + {"label":"#", "x":4.25, "y":1.25}, + {"label":"$", "x":5.25, "y":1.25}, + {"label":"%", "x":6.25, "y":1.25}, + {"label":"^", "x":7.25, "y":1.25}, + {"label":"&", "x":8.25, "y":1.25}, + {"label":"*", "x":9.25, "y":1.25}, + {"label":"(", "x":10.25, "y":1.25}, + {"label":")", "x":11.25, "y":1.25}, + {"label":"_", "x":12.25, "y":1.25}, + {"label":"+", "x":13.25, "y":1.25}, + {"x":14.25, "y":1.25}, + {"label":"Backspace", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.75, "y":1.25}, + {"label":"PgUp", "x":17.75, "y":1.25}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, + {"label":"Q", "x":2.75, "y":2.25}, + {"label":"W", "x":3.75, "y":2.25}, + {"label":"E", "x":4.75, "y":2.25}, + {"label":"R", "x":5.75, "y":2.25}, + {"label":"T", "x":6.75, "y":2.25}, + {"label":"Y", "x":7.75, "y":2.25}, + {"label":"U", "x":8.75, "y":2.25}, + {"label":"I", "x":9.75, "y":2.25}, + {"label":"O", "x":10.75, "y":2.25}, + {"label":"P", "x":11.75, "y":2.25}, + {"label":"{", "x":12.75, "y":2.25}, + {"label":"}", "x":13.75, "y":2.25}, + {"label":"|", "x":14.75, "y":2.25, "w":1.5}, + {"label":"End", "x":16.75, "y":2.25}, + {"label":"PgDn", "x":17.75, "y":2.25}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, + {"label":"A", "x":3, "y":3.25}, + {"label":"S", "x":4, "y":3.25}, + {"label":"D", "x":5, "y":3.25}, + {"label":"F", "x":6, "y":3.25}, + {"label":"G", "x":7, "y":3.25}, + {"label":"H", "x":8, "y":3.25}, + {"label":"J", "x":9, "y":3.25}, + {"label":"K", "x":10, "y":3.25}, + {"label":"L", "x":11, "y":3.25}, + {"label":":", "x":12, "y":3.25}, + {"label":"\"", "x":13, "y":3.25}, + {"label":"Enter", "x":14, "y":3.25, "w":2.25}, + {"label":"Delete", "x":16.75, "y":3.25}, + {"label":"Insert", "x":17.75, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, + {"label":"Z", "x":3.5, "y":4.25}, + {"label":"X", "x":4.5, "y":4.25}, + {"label":"C", "x":5.5, "y":4.25}, + {"label":"V", "x":6.5, "y":4.25}, + {"label":"B", "x":7.5, "y":4.25}, + {"label":"N", "x":8.5, "y":4.25}, + {"label":"M", "x":9.5, "y":4.25}, + {"label":"<", "x":10.5, "y":4.25}, + {"label":">", "x":11.5, "y":4.25}, + {"label":"?", "x":12.5, "y":4.25}, + {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, + {"label":"Fn", "x":15.25, "y":4.25}, + {"label":"Up", "x":16.5, "y":4.5}, + {"label":"Enter", "x":17.75, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, + {"label":"Win", "x":2.75, "y":5.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, + {"x":5.25, "y":5.25, "w":6}, + {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.75, "y":5.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, + {"label":"Left", "x":15.5, "y":5.5}, + {"label":"Down", "x":16.5, "y":5.5}, + {"label":"Right", "x":17.5, "y":5.5} + ] }, "LAYOUT_b_iso": { "layout": [ - {"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"PrtSc", "x":15.75, "y":0}, {"label":"Scroll Lock", "x":16.75, "y":0}, {"label":"Pause", "x":17.75, "y":0}, - {"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"Home", "x":16.75, "y":1.25}, {"label":"PgUp", "x":17.75, "y":1.25}, - {"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, {"label":"End", "x":16.75, "y":2.25}, {"label":"PgDn", "x":17.75, "y":2.25}, - {"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Delete", "x":16.75, "y":3.25}, {"label":"Insert", "x":17.75, "y":3.25}, - {"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Up", "x":16.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, - {"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"Left", "x":15.5, "y":5.5}, {"label":"Down", "x":16.5, "y":5.5}, {"label":"Right", "x":17.5, "y":5.5}] + {"label":"Mute", "x":0, "y":0}, + {"label":"Esc", "x":1.25, "y":0}, + {"label":"F1", "x":2.5, "y":0}, + {"label":"F2", "x":3.5, "y":0}, + {"label":"F3", "x":4.5, "y":0}, + {"label":"F4", "x":5.5, "y":0}, + {"label":"F5", "x":7, "y":0}, + {"label":"F6", "x":8, "y":0}, + {"label":"F7", "x":9, "y":0}, + {"label":"F8", "x":10, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":12.5, "y":0}, + {"label":"F11", "x":13.5, "y":0}, + {"label":"F12", "x":14.5, "y":0}, + {"label":"PrtSc", "x":15.75, "y":0}, + {"label":"Scroll Lock", "x":16.75, "y":0}, + {"label":"Pause", "x":17.75, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.25, "y":1.25}, + {"label":"!", "x":2.25, "y":1.25}, + {"label":"@", "x":3.25, "y":1.25}, + {"label":"#", "x":4.25, "y":1.25}, + {"label":"$", "x":5.25, "y":1.25}, + {"label":"%", "x":6.25, "y":1.25}, + {"label":"^", "x":7.25, "y":1.25}, + {"label":"&", "x":8.25, "y":1.25}, + {"label":"*", "x":9.25, "y":1.25}, + {"label":"(", "x":10.25, "y":1.25}, + {"label":")", "x":11.25, "y":1.25}, + {"label":"_", "x":12.25, "y":1.25}, + {"label":"+", "x":13.25, "y":1.25}, + {"x":14.25, "y":1.25}, + {"label":"Backspace", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.75, "y":1.25}, + {"label":"PgUp", "x":17.75, "y":1.25}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, + {"label":"Q", "x":2.75, "y":2.25}, + {"label":"W", "x":3.75, "y":2.25}, + {"label":"E", "x":4.75, "y":2.25}, + {"label":"R", "x":5.75, "y":2.25}, + {"label":"T", "x":6.75, "y":2.25}, + {"label":"Y", "x":7.75, "y":2.25}, + {"label":"U", "x":8.75, "y":2.25}, + {"label":"I", "x":9.75, "y":2.25}, + {"label":"O", "x":10.75, "y":2.25}, + {"label":"P", "x":11.75, "y":2.25}, + {"label":"{", "x":12.75, "y":2.25}, + {"label":"}", "x":13.75, "y":2.25}, + {"label":"End", "x":16.75, "y":2.25}, + {"label":"PgDn", "x":17.75, "y":2.25}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, + {"label":"A", "x":3, "y":3.25}, + {"label":"S", "x":4, "y":3.25}, + {"label":"D", "x":5, "y":3.25}, + {"label":"F", "x":6, "y":3.25}, + {"label":"G", "x":7, "y":3.25}, + {"label":"H", "x":8, "y":3.25}, + {"label":"J", "x":9, "y":3.25}, + {"label":"K", "x":10, "y":3.25}, + {"label":"L", "x":11, "y":3.25}, + {"label":":", "x":12, "y":3.25}, + {"label":"\"", "x":13, "y":3.25}, + {"x":14, "y":3.25}, + {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, + {"label":"Delete", "x":16.75, "y":3.25}, + {"label":"Insert", "x":17.75, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, + {"x":2.5, "y":4.25}, + {"label":"Z", "x":3.5, "y":4.25}, + {"label":"X", "x":4.5, "y":4.25}, + {"label":"C", "x":5.5, "y":4.25}, + {"label":"V", "x":6.5, "y":4.25}, + {"label":"B", "x":7.5, "y":4.25}, + {"label":"N", "x":8.5, "y":4.25}, + {"label":"M", "x":9.5, "y":4.25}, + {"label":"<", "x":10.5, "y":4.25}, + {"label":">", "x":11.5, "y":4.25}, + {"label":"?", "x":12.5, "y":4.25}, + {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, + {"label":"Fn", "x":15.25, "y":4.25}, + {"label":"Up", "x":16.5, "y":4.5}, + {"label":"Enter", "x":17.75, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, + {"label":"Win", "x":2.75, "y":5.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, + {"x":5.25, "y":5.25, "w":6}, + {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.75, "y":5.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, + {"label":"Left", "x":15.5, "y":5.5}, + {"label":"Down", "x":16.5, "y":5.5}, + {"label":"Right", "x":17.5, "y":5.5} + ] }, "LAYOUT_a_ansi": { "layout": [ - {"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.75, "y":0}, {"label":"F6", "x":6.75, "y":0}, {"label":"F7", "x":7.75, "y":0}, {"label":"F8", "x":8.75, "y":0}, {"label":"F9", "x":10.25, "y":0}, {"label":"F10", "x":11.25, "y":0}, {"label":"F11", "x":12.25, "y":0}, {"label":"F12", "x":13.25, "y":0}, {"label":"PrtSc", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, - {"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, - {"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"Mute", "x":17.75, "y":2.625}, - {"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"label":"Enter", "x":14, "y":3.25, "w":2.25}, {"label":"Delete", "x":16.5, "y":3.25}, - {"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Up", "x":15.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, - {"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25}, {"label":"Win", "x":2.5, "y":5.25, "w":1.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, {"x":5, "y":5.25, "w":6.25}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5}, {"label":"Left", "x":14.5, "y":5.5}, {"label":"Down", "x":15.5, "y":5.5}, {"label":"Right", "x":16.5, "y":5.5}, {"label":"Enter", "x":17.75, "y":5.25}] + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.75, "y":0}, + {"label":"F6", "x":6.75, "y":0}, + {"label":"F7", "x":7.75, "y":0}, + {"label":"F8", "x":8.75, "y":0}, + {"label":"F9", "x":10.25, "y":0}, + {"label":"F10", "x":11.25, "y":0}, + {"label":"F11", "x":12.25, "y":0}, + {"label":"F12", "x":13.25, "y":0}, + {"label":"PrtSc", "x":14.5, "y":0}, + {"label":"Insert", "x":15.75, "y":0}, + {"label":"Home", "x":16.75, "y":0}, + {"label":"PgUp", "x":17.75, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.25, "y":1.25}, + {"label":"!", "x":2.25, "y":1.25}, + {"label":"@", "x":3.25, "y":1.25}, + {"label":"#", "x":4.25, "y":1.25}, + {"label":"$", "x":5.25, "y":1.25}, + {"label":"%", "x":6.25, "y":1.25}, + {"label":"^", "x":7.25, "y":1.25}, + {"label":"&", "x":8.25, "y":1.25}, + {"label":"*", "x":9.25, "y":1.25}, + {"label":"(", "x":10.25, "y":1.25}, + {"label":")", "x":11.25, "y":1.25}, + {"label":"_", "x":12.25, "y":1.25}, + {"label":"+", "x":13.25, "y":1.25}, + {"x":14.25, "y":1.25}, + {"label":"Backspace", "x":15.25, "y":1.25}, + {"label":"End", "x":16.75, "y":1}, + {"label":"PgDn", "x":17.75, "y":1}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, + {"label":"Q", "x":2.75, "y":2.25}, + {"label":"W", "x":3.75, "y":2.25}, + {"label":"E", "x":4.75, "y":2.25}, + {"label":"R", "x":5.75, "y":2.25}, + {"label":"T", "x":6.75, "y":2.25}, + {"label":"Y", "x":7.75, "y":2.25}, + {"label":"U", "x":8.75, "y":2.25}, + {"label":"I", "x":9.75, "y":2.25}, + {"label":"O", "x":10.75, "y":2.25}, + {"label":"P", "x":11.75, "y":2.25}, + {"label":"{", "x":12.75, "y":2.25}, + {"label":"}", "x":13.75, "y":2.25}, + {"label":"|", "x":14.75, "y":2.25, "w":1.5}, + {"label":"Insert", "x":16.5, "y":2.25}, + {"label":"Mute", "x":17.75, "y":2.625}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, + {"label":"A", "x":3, "y":3.25}, + {"label":"S", "x":4, "y":3.25}, + {"label":"D", "x":5, "y":3.25}, + {"label":"F", "x":6, "y":3.25}, + {"label":"G", "x":7, "y":3.25}, + {"label":"H", "x":8, "y":3.25}, + {"label":"J", "x":9, "y":3.25}, + {"label":"K", "x":10, "y":3.25}, + {"label":"L", "x":11, "y":3.25}, + {"label":":", "x":12, "y":3.25}, + {"label":"\"", "x":13, "y":3.25}, + {"label":"Enter", "x":14, "y":3.25, "w":2.25}, + {"label":"Delete", "x":16.5, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, + {"label":"Z", "x":3.5, "y":4.25}, + {"label":"X", "x":4.5, "y":4.25}, + {"label":"C", "x":5.5, "y":4.25}, + {"label":"V", "x":6.5, "y":4.25}, + {"label":"B", "x":7.5, "y":4.25}, + {"label":"N", "x":8.5, "y":4.25}, + {"label":"M", "x":9.5, "y":4.25}, + {"label":"<", "x":10.5, "y":4.25}, + {"label":">", "x":11.5, "y":4.25}, + {"label":"?", "x":12.5, "y":4.25}, + {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, + {"label":"Up", "x":15.5, "y":4.5}, + {"label":"Enter", "x":17.75, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Win", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, + {"x":5, "y":5.25, "w":6.25}, + {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, + {"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5}, + {"label":"Left", "x":14.5, "y":5.5}, + {"label":"Down", "x":15.5, "y":5.5}, + {"label":"Right", "x":16.5, "y":5.5}, + {"label":"Enter", "x":17.75, "y":5.25} + ] }, "LAYOUT_a_iso": { "layout": [ - {"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.75, "y":0}, {"label":"F6", "x":6.75, "y":0}, {"label":"F7", "x":7.75, "y":0}, {"label":"F8", "x":8.75, "y":0}, {"label":"F9", "x":10.25, "y":0}, {"label":"F10", "x":11.25, "y":0}, {"label":"F11", "x":12.25, "y":0}, {"label":"F12", "x":13.25, "y":0}, {"label":"PrtSc", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, - {"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, - {"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"Mute", "x":17.75, "y":2.625}, - {"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Delete", "x":16.5, "y":3.25}, - {"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Up", "x":15.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, - {"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25}, {"label":"Win", "x":2.5, "y":5.25, "w":1.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, {"x":5, "y":5.25, "w":6.25}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5}, {"label":"Left", "x":14.5, "y":5.5}, {"label":"Down", "x":15.5, "y":5.5}, {"label":"Right", "x":16.5, "y":5.5}, {"label":"Enter", "x":17.75, "y":5.25}] + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.75, "y":0}, + {"label":"F6", "x":6.75, "y":0}, + {"label":"F7", "x":7.75, "y":0}, + {"label":"F8", "x":8.75, "y":0}, + {"label":"F9", "x":10.25, "y":0}, + {"label":"F10", "x":11.25, "y":0}, + {"label":"F11", "x":12.25, "y":0}, + {"label":"F12", "x":13.25, "y":0}, + {"label":"PrtSc", "x":14.5, "y":0}, + {"label":"Insert", "x":15.75, "y":0}, + {"label":"Home", "x":16.75, "y":0}, + {"label":"PgUp", "x":17.75, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.25, "y":1.25}, + {"label":"!", "x":2.25, "y":1.25}, + {"label":"@", "x":3.25, "y":1.25}, + {"label":"#", "x":4.25, "y":1.25}, + {"label":"$", "x":5.25, "y":1.25}, + {"label":"%", "x":6.25, "y":1.25}, + {"label":"^", "x":7.25, "y":1.25}, + {"label":"&", "x":8.25, "y":1.25}, + {"label":"*", "x":9.25, "y":1.25}, + {"label":"(", "x":10.25, "y":1.25}, + {"label":")", "x":11.25, "y":1.25}, + {"label":"_", "x":12.25, "y":1.25}, + {"label":"+", "x":13.25, "y":1.25}, + {"x":14.25, "y":1.25}, + {"label":"Backspace", "x":15.25, "y":1.25}, + {"label":"End", "x":16.75, "y":1}, + {"label":"PgDn", "x":17.75, "y":1}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, + {"label":"Q", "x":2.75, "y":2.25}, + {"label":"W", "x":3.75, "y":2.25}, + {"label":"E", "x":4.75, "y":2.25}, + {"label":"R", "x":5.75, "y":2.25}, + {"label":"T", "x":6.75, "y":2.25}, + {"label":"Y", "x":7.75, "y":2.25}, + {"label":"U", "x":8.75, "y":2.25}, + {"label":"I", "x":9.75, "y":2.25}, + {"label":"O", "x":10.75, "y":2.25}, + {"label":"P", "x":11.75, "y":2.25}, + {"label":"{", "x":12.75, "y":2.25}, + {"label":"}", "x":13.75, "y":2.25}, + {"label":"Insert", "x":16.5, "y":2.25}, + {"label":"Mute", "x":17.75, "y":2.625}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, + {"label":"A", "x":3, "y":3.25}, + {"label":"S", "x":4, "y":3.25}, + {"label":"D", "x":5, "y":3.25}, + {"label":"F", "x":6, "y":3.25}, + {"label":"G", "x":7, "y":3.25}, + {"label":"H", "x":8, "y":3.25}, + {"label":"J", "x":9, "y":3.25}, + {"label":"K", "x":10, "y":3.25}, + {"label":"L", "x":11, "y":3.25}, + {"label":":", "x":12, "y":3.25}, + {"label":"\"", "x":13, "y":3.25}, + {"x":14, "y":3.25}, + {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, + {"label":"Delete", "x":16.5, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, + {"x":2.5, "y":4.25}, + {"label":"Z", "x":3.5, "y":4.25}, + {"label":"X", "x":4.5, "y":4.25}, + {"label":"C", "x":5.5, "y":4.25}, + {"label":"V", "x":6.5, "y":4.25}, + {"label":"B", "x":7.5, "y":4.25}, + {"label":"N", "x":8.5, "y":4.25}, + {"label":"M", "x":9.5, "y":4.25}, + {"label":"<", "x":10.5, "y":4.25}, + {"label":">", "x":11.5, "y":4.25}, + {"label":"?", "x":12.5, "y":4.25}, + {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, + {"label":"Up", "x":15.5, "y":4.5}, + {"label":"Enter", "x":17.75, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Win", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, + {"x":5, "y":5.25, "w":6.25}, + {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, + {"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5}, + {"label":"Left", "x":14.5, "y":5.5}, + {"label":"Down", "x":15.5, "y":5.5}, + {"label":"Right", "x":16.5, "y":5.5}, + {"label":"Enter", "x":17.75, "y":5.25} + ] } } -} \ No newline at end of file +} From b9a1b61f6ac42bbd73123d86058ec8b7048d5da6 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 5 Aug 2021 22:18:17 -0700 Subject: [PATCH 161/328] Flehrad Tradestation Refactor (#13897) * add license headers Apache 2.0 per the included `license` file. * info.json: use human-friendly formatting * refactor keymaps - split `default` keymap into `default` and `tradestation` keymaps (one for each layout) - remove boilerplate functions - apply four-space indent * partial clean up of rules.mk - update section header comment blocks --- keyboards/flehrad/tradestation/config.h | 15 ++++ keyboards/flehrad/tradestation/info.json | 40 +++++++++- .../tradestation/keymaps/default/keymap.c | 76 +++++-------------- .../keymaps/tradestation/keymap.c | 27 +++++++ keyboards/flehrad/tradestation/rules.mk | 9 +-- keyboards/flehrad/tradestation/tradestation.c | 15 ++++ keyboards/flehrad/tradestation/tradestation.h | 15 ++++ 7 files changed, 132 insertions(+), 65 deletions(-) create mode 100644 keyboards/flehrad/tradestation/keymaps/tradestation/keymap.c diff --git a/keyboards/flehrad/tradestation/config.h b/keyboards/flehrad/tradestation/config.h index 03c4fb122903..6b8f021ebc5f 100644 --- a/keyboards/flehrad/tradestation/config.h +++ b/keyboards/flehrad/tradestation/config.h @@ -1,3 +1,18 @@ +/* Copyright 2019 flehrad + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #pragma once #include "config_common.h" diff --git a/keyboards/flehrad/tradestation/info.json b/keyboards/flehrad/tradestation/info.json index 233eb6282ecf..d90769bed33d 100644 --- a/keyboards/flehrad/tradestation/info.json +++ b/keyboards/flehrad/tradestation/info.json @@ -6,10 +6,46 @@ "height": 4.5, "layouts": { "LAYOUT_tradestation": { - "layout": [{"x":0, "y":0},{"x":1.125, "y":0},{"x":2.25, "y":0},{"x":3.375, "y":0},{"x":0, "y":1.1},{"x":1.125, "y":1.1},{"x":2.25, "y":1.1},{"x":3.375, "y":1.1},{"x":0, "y":2.25, "w":2},{"x":2.25, "y":2.25, "w":2},{"x":0, "y":3.5, "w":2},{"x":2.25, "y":3.5, "w":2}] + "layout": [ + {"x":0, "y":0}, + {"x":1.125, "y":0}, + {"x":2.25, "y":0}, + {"x":3.375, "y":0}, + + {"x":0, "y":1.1}, + {"x":1.125, "y":1.1}, + {"x":2.25, "y":1.1}, + {"x":3.375, "y":1.1}, + + {"x":0, "y":2.25, "w":2}, + {"x":2.25, "y":2.25, "w":2}, + + {"x":0, "y":3.5, "w":2}, + {"x":2.25, "y":3.5, "w":2} + ] }, "LAYOUT_ortho_4x4": { - "layout": [{"x":0, "y":0},{"x":1.125, "y":0},{"x":2.25, "y":0},{"x":3.375, "y":0},{"x":0, "y":1.1},{"x":1.125, "y":1.1},{"x":2.25, "y":1.1},{"x":3.375, "y":1.1},{"x":0, "y":2.25},{"x":1.125, "y":2.25},{"x":2.25, "y":2.25},{"x":3.375, "y":2.25},{"x":0, "y":3.5},{"x":1.125, "y":3.5},{"x":2.25, "y":3.5},{"x":3.375, "y":3.5}] + "layout": [ + {"x":0, "y":0}, + {"x":1.125, "y":0}, + {"x":2.25, "y":0}, + {"x":3.375, "y":0}, + + {"x":0, "y":1.1}, + {"x":1.125, "y":1.1}, + {"x":2.25, "y":1.1}, + {"x":3.375, "y":1.1}, + + {"x":0, "y":2.25}, + {"x":1.125, "y":2.25}, + {"x":2.25, "y":2.25}, + {"x":3.375, "y":2.25}, + + {"x":0, "y":3.5}, + {"x":1.125, "y":3.5}, + {"x":2.25, "y":3.5}, + {"x":3.375, "y":3.5} + ] } } } diff --git a/keyboards/flehrad/tradestation/keymaps/default/keymap.c b/keyboards/flehrad/tradestation/keymaps/default/keymap.c index 3497dcb94110..e0893d9bde2d 100644 --- a/keyboards/flehrad/tradestation/keymaps/default/keymap.c +++ b/keyboards/flehrad/tradestation/keymaps/default/keymap.c @@ -1,61 +1,27 @@ +/* Copyright 2019 flehrad + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_ortho_4x4( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [0] = LAYOUT_ortho_4x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), - LAYOUT_tradestation( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS), }; - - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} diff --git a/keyboards/flehrad/tradestation/keymaps/tradestation/keymap.c b/keyboards/flehrad/tradestation/keymaps/tradestation/keymap.c new file mode 100644 index 000000000000..344b446f19d0 --- /dev/null +++ b/keyboards/flehrad/tradestation/keymaps/tradestation/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2019 flehrad + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_tradestation( + 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/flehrad/tradestation/rules.mk b/keyboards/flehrad/tradestation/rules.mk index cf6c47d74bd2..cf3068c02fc3 100644 --- a/keyboards/flehrad/tradestation/rules.mk +++ b/keyboards/flehrad/tradestation/rules.mk @@ -2,17 +2,10 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = caterina # Build Options -# comment out to disable the options. +# change yes to no to disable # BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) diff --git a/keyboards/flehrad/tradestation/tradestation.c b/keyboards/flehrad/tradestation/tradestation.c index a3285a2cc870..bd572db83fe7 100644 --- a/keyboards/flehrad/tradestation/tradestation.c +++ b/keyboards/flehrad/tradestation/tradestation.c @@ -1 +1,16 @@ +/* Copyright 2019 flehrad + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include "tradestation.h" diff --git a/keyboards/flehrad/tradestation/tradestation.h b/keyboards/flehrad/tradestation/tradestation.h index 60b53b7ddf15..8061432596ad 100644 --- a/keyboards/flehrad/tradestation/tradestation.h +++ b/keyboards/flehrad/tradestation/tradestation.h @@ -1,3 +1,18 @@ +/* Copyright 2019 flehrad + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #pragma once #include "quantum.h" From c588d232cb97904400b048db923ee86e5bf9abcc Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 6 Aug 2021 06:53:38 +0100 Subject: [PATCH 162/328] Avoid name conflicts with usb_hid Arduino code (#13870) * Avoid name conflicts with usb_hid Arduino code * Fix tests --- quantum/quantum.h | 2 +- .../arm_atsam/{platform.h => platform_deps.h} | 0 .../common/avr/{platform.h => platform_deps.h} | 0 .../chibios/{platform.h => platform_deps.h} | 0 tmk_core/common/test/platform_deps.h | 18 ++++++++++++++++++ 5 files changed, 19 insertions(+), 1 deletion(-) rename tmk_core/common/arm_atsam/{platform.h => platform_deps.h} (100%) rename tmk_core/common/avr/{platform.h => platform_deps.h} (100%) rename tmk_core/common/chibios/{platform.h => platform_deps.h} (100%) create mode 100644 tmk_core/common/test/platform_deps.h diff --git a/quantum/quantum.h b/quantum/quantum.h index 55f6dbb7da5a..d87d14041dbd 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -15,7 +15,7 @@ */ #pragma once -#include "platform.h" +#include "platform_deps.h" #include "wait.h" #include "matrix.h" #include "keymap.h" diff --git a/tmk_core/common/arm_atsam/platform.h b/tmk_core/common/arm_atsam/platform_deps.h similarity index 100% rename from tmk_core/common/arm_atsam/platform.h rename to tmk_core/common/arm_atsam/platform_deps.h diff --git a/tmk_core/common/avr/platform.h b/tmk_core/common/avr/platform_deps.h similarity index 100% rename from tmk_core/common/avr/platform.h rename to tmk_core/common/avr/platform_deps.h diff --git a/tmk_core/common/chibios/platform.h b/tmk_core/common/chibios/platform_deps.h similarity index 100% rename from tmk_core/common/chibios/platform.h rename to tmk_core/common/chibios/platform_deps.h diff --git a/tmk_core/common/test/platform_deps.h b/tmk_core/common/test/platform_deps.h new file mode 100644 index 000000000000..f296d1d535e7 --- /dev/null +++ b/tmk_core/common/test/platform_deps.h @@ -0,0 +1,18 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// here just to please the build From bdf86c4cbdb22fe800ea0beb4c680b8be5dcb5a4 Mon Sep 17 00:00:00 2001 From: Gigahawk Date: Fri, 6 Aug 2021 04:54:43 -0700 Subject: [PATCH 163/328] Add replacement screw specifications to GMMK Pro readme (#13903) --- keyboards/gmmk/pro/readme.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/keyboards/gmmk/pro/readme.md b/keyboards/gmmk/pro/readme.md index 2307a525ca0e..e291179c990b 100644 --- a/keyboards/gmmk/pro/readme.md +++ b/keyboards/gmmk/pro/readme.md @@ -21,3 +21,17 @@ To reset the board into bootloader mode, do one of the following: * Fn+Backslash will reset the board to bootloader mode if you have flashed the default QMK keymap 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). + +## Case Screw Replacements + +Many users report stripped case screws when disassembling the board. + +The stock case screws are: +* Thread: M2 +* Thread length: ~5 mm +* Head diameter: ~3.8 mm +* Head counterbore diameter: ~4.0 mm +* Head counterbore depth: ~1.9 mm + +Most M2x5mm screws should fit fine, although it's best to ensure that the screw head will fit inside the counterbore. +For reference, [this hex socket head screw](https://www.mcmaster.com/91292A005/) from McMaster-Carr should fit nearly flush (head will protrude above the counterbore by ~0.1 mm). From 6721825df5ddda0631faaf52292ce78db92f2c7f Mon Sep 17 00:00:00 2001 From: yfuku <30647434+yfuku@users.noreply.github.com> Date: Sat, 7 Aug 2021 09:01:52 +0900 Subject: [PATCH 164/328] [Keyboard] Add owl8 keyboard (#13380) * add owl8 * use DIRECT_PINS * fix encoder * Changed to use action_exec. --- keyboards/owl8/config.h | 159 +++++++++++++++++++++++ keyboards/owl8/keymaps/default/keymap.c | 68 ++++++++++ keyboards/owl8/keymaps/default/readme.md | 1 + keyboards/owl8/keymaps/via/keymap.c | 123 ++++++++++++++++++ keyboards/owl8/keymaps/via/readme.md | 1 + keyboards/owl8/keymaps/via/rules.mk | 1 + keyboards/owl8/owl8.c | 17 +++ keyboards/owl8/owl8.h | 41 ++++++ keyboards/owl8/readme.md | 19 +++ keyboards/owl8/rules.mk | 24 ++++ 10 files changed, 454 insertions(+) create mode 100644 keyboards/owl8/config.h create mode 100644 keyboards/owl8/keymaps/default/keymap.c create mode 100644 keyboards/owl8/keymaps/default/readme.md create mode 100644 keyboards/owl8/keymaps/via/keymap.c create mode 100644 keyboards/owl8/keymaps/via/readme.md create mode 100644 keyboards/owl8/keymaps/via/rules.mk create mode 100644 keyboards/owl8/owl8.c create mode 100644 keyboards/owl8/owl8.h create mode 100644 keyboards/owl8/readme.md create mode 100644 keyboards/owl8/rules.mk diff --git a/keyboards/owl8/config.h b/keyboards/owl8/config.h new file mode 100644 index 000000000000..7bbaff39859e --- /dev/null +++ b/keyboards/owl8/config.h @@ -0,0 +1,159 @@ +/* +Copyright 2021 yfuku + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5946 // YF +#define PRODUCT_ID 0x0008 +#define DEVICE_VER 0x0001 +#define MANUFACTURER yfuku +#define PRODUCT owl8 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 4 + +/* + * 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 DIRECT_PINS { \ + { F4, F7, B3, B6 }, \ + { F5, F6, B1, B2 }, \ + { D4, C6, D7, E6 }, \ + { NO_PIN, NO_PIN, NO_PIN, NO_PIN } \ +} +#define UNUSED_PINS + +/* 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +#define ENCODERS_PAD_A { D4, D7 } +#define ENCODERS_PAD_B { C6, E6 } diff --git a/keyboards/owl8/keymaps/default/keymap.c b/keyboards/owl8/keymaps/default/keymap.c new file mode 100644 index 000000000000..e840263639d8 --- /dev/null +++ b/keyboards/owl8/keymaps/default/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2021 yfuku + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, // for encoders + KC_NO, KC_NO, KC_NO, KC_NO, // for ext keys + MO(1), KC_BSPC, KC_SPC, KC_ENT, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [_FN1] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ), + [_FN2] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ), + [_FN3] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + return true; +} diff --git a/keyboards/owl8/keymaps/default/readme.md b/keyboards/owl8/keymaps/default/readme.md new file mode 100644 index 000000000000..e0129daa2d38 --- /dev/null +++ b/keyboards/owl8/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for owl8 diff --git a/keyboards/owl8/keymaps/via/keymap.c b/keyboards/owl8/keymaps/via/keymap.c new file mode 100644 index 000000000000..dc981f47541e --- /dev/null +++ b/keyboards/owl8/keymaps/via/keymap.c @@ -0,0 +1,123 @@ +/* Copyright 2021 yfuku + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, // for encoders + KC_NO, KC_NO, KC_NO, KC_NO, // for ext keys + MO(1), KC_BSPC, KC_SPC, KC_ENT, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [_FN1] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ), + [_FN2] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ), + [_FN3] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ) +}; + +keyevent_t encoder1_ccw = { + .key = (keypos_t){.row = 3, .col = 1}, + .pressed = false +}; + +keyevent_t encoder1_cw = { + .key = (keypos_t){.row = 3, .col = 0}, + .pressed = false +}; + +keyevent_t encoder2_ccw = { + .key = (keypos_t){.row = 3, .col = 3}, + .pressed = false +}; + +keyevent_t encoder2_cw = { + .key = (keypos_t){.row = 3, .col = 2}, + .pressed = false +}; + +void matrix_scan_user(void) { + if (IS_PRESSED(encoder1_ccw)) { + encoder1_ccw.pressed = false; + encoder1_ccw.time = (timer_read() | 1); + action_exec(encoder1_ccw); + } + + if (IS_PRESSED(encoder1_cw)) { + encoder1_cw.pressed = false; + encoder1_cw.time = (timer_read() | 1); + action_exec(encoder1_cw); + } + + if (IS_PRESSED(encoder2_ccw)) { + encoder2_ccw.pressed = false; + encoder2_ccw.time = (timer_read() | 1); + action_exec(encoder2_ccw); + } + + if (IS_PRESSED(encoder2_cw)) { + encoder2_cw.pressed = false; + encoder2_cw.time = (timer_read() | 1); + action_exec(encoder2_cw); + } +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + encoder1_cw.pressed = true; + encoder1_cw.time = (timer_read() | 1); + action_exec(encoder1_cw); + } else { + encoder1_ccw.pressed = true; + encoder1_ccw.time = (timer_read() | 1); + action_exec(encoder1_ccw); + } + } else if (index == 1) { + if (clockwise) { + encoder2_cw.pressed = true; + encoder2_cw.time = (timer_read() | 1); + action_exec(encoder2_cw); + } else { + encoder2_ccw.pressed = true; + encoder2_ccw.time = (timer_read() | 1); + action_exec(encoder2_ccw); + } + } + + return true; +} diff --git a/keyboards/owl8/keymaps/via/readme.md b/keyboards/owl8/keymaps/via/readme.md new file mode 100644 index 000000000000..c4fa65987c04 --- /dev/null +++ b/keyboards/owl8/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for owl8 diff --git a/keyboards/owl8/keymaps/via/rules.mk b/keyboards/owl8/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/owl8/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/owl8/owl8.c b/keyboards/owl8/owl8.c new file mode 100644 index 000000000000..a31289891aae --- /dev/null +++ b/keyboards/owl8/owl8.c @@ -0,0 +1,17 @@ +/* Copyright 2021 yfuku + * + * 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 "owl8.h" diff --git a/keyboards/owl8/owl8.h b/keyboards/owl8/owl8.h new file mode 100644 index 000000000000..656b3f17cd5a --- /dev/null +++ b/keyboards/owl8/owl8.h @@ -0,0 +1,41 @@ +/* Copyright 2021 yfuku + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT( \ + k30, k31, k32, k33, \ + k20, k21, k22, k23, \ + k00, k01, k02, k03, \ + k10, k11, k12, k13 \ +) \ +{ \ + {k00, k01, k02, k03 }, \ + {k10, k11, k12, k13 }, \ + {k20, k21, k22, k23 }, \ + {k30, k31, k32, k33 } \ +} diff --git a/keyboards/owl8/readme.md b/keyboards/owl8/readme.md new file mode 100644 index 000000000000..b40a5f35cb32 --- /dev/null +++ b/keyboards/owl8/readme.md @@ -0,0 +1,19 @@ +# owl8 + +![owl8](https://raw.githubusercontent.com/yfuku/owl8/master/images/owl8.jpg) + +macropad + +* Keyboard Maintainer: [yfuku](https://github.com/yfuku) +* Hardware Supported: owl8 PCB, Pro Micro +* Hardware Availability: https://yfuku.booth.pm/ + +Make example for this keyboard (after setting up your build environment): + + make owl8:default + +Flashing example for this keyboard: + + make owl8: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). diff --git a/keyboards/owl8/rules.mk b/keyboards/owl8/rules.mk new file mode 100644 index 000000000000..647c62c45251 --- /dev/null +++ b/keyboards/owl8/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes From 744019c0323b0f04fb50d48ca04d85dbc0072985 Mon Sep 17 00:00:00 2001 From: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Fri, 6 Aug 2021 17:02:46 -0700 Subject: [PATCH 165/328] [Keyboard] Add Hex4B PCB (#13435) Co-authored-by: Ryan Co-authored-by: vuhopkep --- keyboards/mechlovin/hex4b/config.h | 64 +++++++++++++ keyboards/mechlovin/hex4b/hex4b.c | 17 ++++ keyboards/mechlovin/hex4b/hex4b.h | 38 ++++++++ keyboards/mechlovin/hex4b/info.json | 96 +++++++++++++++++++ .../mechlovin/hex4b/keymaps/default/keymap.c | 28 ++++++ .../mechlovin/hex4b/keymaps/default/readme.md | 1 + .../mechlovin/hex4b/keymaps/via/keymap.c | 52 ++++++++++ .../mechlovin/hex4b/keymaps/via/rules.mk | 1 + keyboards/mechlovin/hex4b/readme.md | 21 ++++ keyboards/mechlovin/hex4b/rules.mk | 25 +++++ 10 files changed, 343 insertions(+) create mode 100644 keyboards/mechlovin/hex4b/config.h create mode 100644 keyboards/mechlovin/hex4b/hex4b.c create mode 100644 keyboards/mechlovin/hex4b/hex4b.h create mode 100644 keyboards/mechlovin/hex4b/info.json create mode 100644 keyboards/mechlovin/hex4b/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/hex4b/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/hex4b/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/hex4b/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/hex4b/readme.md create mode 100644 keyboards/mechlovin/hex4b/rules.mk diff --git a/keyboards/mechlovin/hex4b/config.h b/keyboards/mechlovin/hex4b/config.h new file mode 100644 index 000000000000..789e5517b421 --- /dev/null +++ b/keyboards/mechlovin/hex4b/config.h @@ -0,0 +1,64 @@ +/* +Copyright 2020 Team Mechlovin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D4C //MechLovin +#define PRODUCT_ID 0x0675 //Hex-75 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Team Mechlovin +#define PRODUCT Hex 4B + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* + * 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 { B7, A2, A1, A3, A4, A5 } +#define MATRIX_COL_PINS { B6, B5, B3, B2, B1, B0, A0, A6, A7, C7, C6, C5, C4, D1, D0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define LED_NUM_LOCK_PIN D6 +#define LED_CAPS_LOCK_PIN D7 +#define LED_SCROLL_LOCK_PIN D5 +#define LED_PIN_ON_STATE 0 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +#define BACKLIGHT_PIN D4 +#define BACKLIGHT_LEVELS 5 +#define BACKLIGHT_BREATHING + +/* Bootmagic Lite key configuration, Backspace */ +#define BOOTMAGIC_LITE_ROW 1 +#define BOOTMAGIC_LITE_COLUMN 14 diff --git a/keyboards/mechlovin/hex4b/hex4b.c b/keyboards/mechlovin/hex4b/hex4b.c new file mode 100644 index 000000000000..fb8c4aef1632 --- /dev/null +++ b/keyboards/mechlovin/hex4b/hex4b.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Team Mechlovin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "hex4b.h" diff --git a/keyboards/mechlovin/hex4b/hex4b.h b/keyboards/mechlovin/hex4b/hex4b.h new file mode 100644 index 000000000000..efee2ec7eebc --- /dev/null +++ b/keyboards/mechlovin/hex4b/hex4b.h @@ -0,0 +1,38 @@ +/* Copyright 2020 Team Mechlovin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, KC_NO, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file diff --git a/keyboards/mechlovin/hex4b/info.json b/keyboards/mechlovin/hex4b/info.json new file mode 100644 index 000000000000..3ba77695141a --- /dev/null +++ b/keyboards/mechlovin/hex4b/info.json @@ -0,0 +1,96 @@ +{ + "keyboard_name": "Hex4B", + "url": "", + "maintainer": "Hex-Keyboard&Mechlovin", + "width": 16, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (B0,B6)", "x":0, "y":0}, + {"label":"K01 (B0,B7)", "x":1.5, "y":0}, + {"label":"K02 (B0,C0)", "x":2.5, "y":0}, + {"label":"K03 (B0,C1)", "x":3.5, "y":0}, + {"label":"K04 (B0,C2)", "x":4.5, "y":0}, + {"label":"K06 (B0,C4)", "x":6, "y":0}, + {"label":"K07 (B0,C5)", "x":7, "y":0}, + {"label":"K08 (B0,C6)", "x":8, "y":0}, + {"label":"K09 (B0,C7)", "x":9, "y":0}, + {"label":"K0A (B0,D0)", "x":10.5, "y":0}, + {"label":"K0B (B0,D1)", "x":11.5, "y":0}, + {"label":"K0C (B0,D2)", "x":12.5, "y":0}, + {"label":"K0D (B0,D3)", "x":13.5, "y":0}, + {"label":"K0E (B0,D4)", "x":15, "y":0}, + {"label":"K10 (B1,B6)", "x":0, "y":1}, + {"label":"K11 (B1,B7)", "x":1, "y":1}, + {"label":"K12 (B1,C0)", "x":2, "y":1}, + {"label":"K13 (B1,C1)", "x":3, "y":1}, + {"label":"K14 (B1,C2)", "x":4, "y":1}, + {"label":"K15 (B1,C3)", "x":5, "y":1}, + {"label":"K16 (B1,C4)", "x":6, "y":1}, + {"label":"K17 (B1,C5)", "x":7, "y":1}, + {"label":"K18 (B1,C6)", "x":8, "y":1}, + {"label":"K19 (B1,C7)", "x":9, "y":1}, + {"label":"K1A (B1,D0)", "x":10, "y":1}, + {"label":"K1B (B1,D1)", "x":11, "y":1}, + {"label":"K1C (B1,D2)", "x":12, "y":1}, + {"label":"K1D (B1,D3)", "x":13, "y":1}, + {"label":"K3C (B3,D2)", "x":14, "y":1}, + {"label":"K1E (B1,D4)", "x":15, "y":1}, + {"label":"K20 (B2,B6)", "x":0, "y":2, "w":1.5}, + {"label":"K21 (B2,B7)", "x":1.5, "y":2}, + {"label":"K22 (B2,C0)", "x":2.5, "y":2}, + {"label":"K23 (B2,C1)", "x":3.5, "y":2}, + {"label":"K24 (B2,C2)", "x":4.5, "y":2}, + {"label":"K25 (B2,C3)", "x":5.5, "y":2}, + {"label":"K26 (B2,C4)", "x":6.5, "y":2}, + {"label":"K27 (B2,C5)", "x":7.5, "y":2}, + {"label":"K28 (B2,C6)", "x":8.5, "y":2}, + {"label":"K29 (B2,C7)", "x":9.5, "y":2}, + {"label":"K2A (B2,D0)", "x":10.5, "y":2}, + {"label":"K2B (B2,D1)", "x":11.5, "y":2}, + {"label":"K2C (B2,D2)", "x":12.5, "y":2}, + {"label":"K2D (B2,D3)", "x":13.5, "y":2, "w":1.5}, + {"label":"K2E (B2,D4)", "x":15, "y":2}, + {"label":"K30 (B3,B6)", "x":0, "y":3, "w":1.75}, + {"label":"K31 (B3,B7)", "x":1.75, "y":3}, + {"label":"K32 (B3,C0)", "x":2.75, "y":3}, + {"label":"K33 (B3,C1)", "x":3.75, "y":3}, + {"label":"K34 (B3,C2)", "x":4.75, "y":3}, + {"label":"K35 (B3,C3)", "x":5.75, "y":3}, + {"label":"K36 (B3,C4)", "x":6.75, "y":3}, + {"label":"K37 (B3,C5)", "x":7.75, "y":3}, + {"label":"K38 (B3,C6)", "x":8.75, "y":3}, + {"label":"K39 (B3,C7)", "x":9.75, "y":3}, + {"label":"K3A (B3,D0)", "x":10.75, "y":3}, + {"label":"K3B (B3,D1)", "x":11.75, "y":3}, + {"label":"K3D (B3,D3)", "x":12.75, "y":3, "w":2.25}, + {"label":"K3E (B3,D4)", "x":15, "y":3}, + {"label":"K40 (B4,B6)", "x":0, "y":4, "w":2.25}, + {"label":"K42 (B4,C0)", "x":2.25, "y":4}, + {"label":"K43 (B4,C1)", "x":3.25, "y":4}, + {"label":"K44 (B4,C2)", "x":4.25, "y":4}, + {"label":"K45 (B4,C3)", "x":5.25, "y":4}, + {"label":"K46 (B4,C4)", "x":6.25, "y":4}, + {"label":"K47 (B4,C5)", "x":7.25, "y":4}, + {"label":"K48 (B4,C6)", "x":8.25, "y":4}, + {"label":"K49 (B4,C7)", "x":9.25, "y":4}, + {"label":"K4A (B4,D0)", "x":10.25, "y":4}, + {"label":"K4B (B4,D1)", "x":11.25, "y":4}, + {"label":"K4C (B4,D2)", "x":12.25, "y":4, "w":1.75}, + {"label":"K4D (B4,D3)", "x":14, "y":4}, + {"label":"K4E (B4,D4)", "x":15, "y":4}, + {"label":"K50 (B5,B6)", "x":0, "y":5, "w":1.25}, + {"label":"K51 (B5,B7)", "x":1.25, "y":5, "w":1.25}, + {"label":"K52 (B5,C0)", "x":2.5, "y":5, "w":1.25}, + {"label":"K56 (B5,C4)", "x":3.75, "y":5, "w":6.25}, + {"label":"K5A (B5,D0)", "x":10, "y":5, "w":1.25}, + {"label":"K5B (B5,D1)", "x":11.25, "y":5, "w":1.25}, + {"label":"K5C (B5,D2)", "x":13, "y":5}, + {"label":"K5D (B5,D3)", "x":14, "y":5}, + {"label":"K5E (B5,D4)", "x":15, "y":5} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/mechlovin/hex4b/keymaps/default/keymap.c b/keyboards/mechlovin/hex4b/keymaps/default/keymap.c new file mode 100644 index 000000000000..17c80ec55ccb --- /dev/null +++ b/keyboards/mechlovin/hex4b/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2020 Team Mechlovin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_SPC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/mechlovin/hex4b/keymaps/default/readme.md b/keyboards/mechlovin/hex4b/keymaps/default/readme.md new file mode 100644 index 000000000000..6b36fc521371 --- /dev/null +++ b/keyboards/mechlovin/hex4b/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for hex4b diff --git a/keyboards/mechlovin/hex4b/keymaps/via/keymap.c b/keyboards/mechlovin/hex4b/keymaps/via/keymap.c new file mode 100644 index 000000000000..d44a24f12497 --- /dev/null +++ b/keyboards/mechlovin/hex4b/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2020 Team Mechlovin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_SPC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/mechlovin/hex4b/keymaps/via/rules.mk b/keyboards/mechlovin/hex4b/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/mechlovin/hex4b/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mechlovin/hex4b/readme.md b/keyboards/mechlovin/hex4b/readme.md new file mode 100644 index 000000000000..0f2320b6df45 --- /dev/null +++ b/keyboards/mechlovin/hex4b/readme.md @@ -0,0 +1,21 @@ +# hex4b + +![hex4b](https://i.imgur.com/lArfGgHh.jpeg) + +A PCB for HEX.4B 75% keyboard. + +* Keyboard Maintainer: [Mechlovin' Studio](https://github.com/mechlovin) +* Hardware Supported: Hex.4B PCB, Atmega32A +* Hardware Availability: [Hex Keyboard](https://hexkeyboards.com/) + +Make example for this keyboard (after setting up your build environment): + + make mechlovin/hex4b:default + +Flashing example for this keyboard: + + make mechlovin/hex4b: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). + +Reset Key: To put the Hex4B into bootloader, hold esc key while plugging in (bootloader), hold backspace while plugging in (bootmagic) and plug cable. diff --git a/keyboards/mechlovin/hex4b/rules.mk b/keyboards/mechlovin/hex4b/rules.mk new file mode 100644 index 000000000000..e646f085bbd6 --- /dev/null +++ b/keyboards/mechlovin/hex4b/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32a + +# Bootloader selection +BOOTLOADER = USBasp + +# Processor frequency +F_CPU = 16000000 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From d917bfb277f31d15f59244bb06b9fbb2f9c69084 Mon Sep 17 00:00:00 2001 From: misonoworks <63772942+misonoworks@users.noreply.github.com> Date: Fri, 6 Aug 2021 21:48:19 -0700 Subject: [PATCH 166/328] [Keyboard] Add MisonoWorks Chocolate Bar keyboard (#13798) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: autumnisacutie <63772942+autumnisacutie@users.noreply.github.com> --- .../misonoworks/chocolatebar/chocolatebar.c | 110 ++++++++++++++++++ .../misonoworks/chocolatebar/chocolatebar.h | 32 +++++ keyboards/misonoworks/chocolatebar/config.h | 63 ++++++++++ keyboards/misonoworks/chocolatebar/info.json | 12 ++ .../chocolatebar/keymaps/default/keymap.c | 53 +++++++++ .../chocolatebar/keymaps/via/keymap.c | 53 +++++++++ .../chocolatebar/keymaps/via/rules.mk | 2 + keyboards/misonoworks/chocolatebar/readme.md | 16 +++ keyboards/misonoworks/chocolatebar/rules.mk | 24 ++++ 9 files changed, 365 insertions(+) create mode 100644 keyboards/misonoworks/chocolatebar/chocolatebar.c create mode 100644 keyboards/misonoworks/chocolatebar/chocolatebar.h create mode 100644 keyboards/misonoworks/chocolatebar/config.h create mode 100644 keyboards/misonoworks/chocolatebar/info.json create mode 100644 keyboards/misonoworks/chocolatebar/keymaps/default/keymap.c create mode 100644 keyboards/misonoworks/chocolatebar/keymaps/via/keymap.c create mode 100644 keyboards/misonoworks/chocolatebar/keymaps/via/rules.mk create mode 100644 keyboards/misonoworks/chocolatebar/readme.md create mode 100644 keyboards/misonoworks/chocolatebar/rules.mk diff --git a/keyboards/misonoworks/chocolatebar/chocolatebar.c b/keyboards/misonoworks/chocolatebar/chocolatebar.c new file mode 100644 index 000000000000..3fd16fa72cdb --- /dev/null +++ b/keyboards/misonoworks/chocolatebar/chocolatebar.c @@ -0,0 +1,110 @@ +/* +Copyright 2021 MisonoWorks + +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 "chocolatebar.h" + +#ifdef OLED_DRIVER_ENABLE +__attribute__((weak))oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; // flips the display 180 degrees if offhand +} + +__attribute__((weak)) void oled_task_user(void) { + static const char PROGMEM base_logo[] = { +// 'choccy oled base', 32x128px +0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x8f, 0xff, 0x7f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, +0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0x7c, 0x38, 0x08, 0x04, 0x02, 0x03, 0xe3, 0x98, 0x08, 0x08, 0x0c, 0x00, 0x00, +0x00, 0x0c, 0x0c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x01, 0x01, 0xff, 0x00, 0x00, +0x00, 0x61, 0x63, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x7f, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, +0x38, 0x38, 0x38, 0x3c, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x3e, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc, 0xbc, 0x14, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, +0x00, 0x04, 0x04, 0x04, 0x04, 0x14, 0xbc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x3b, 0x30, 0x00, 0x00, 0x04, 0x04, 0x04, +0x04, 0x04, 0x00, 0x00, 0x00, 0x43, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x80, 0xc3, 0xc3, 0xc2, 0xc2, 0xc2, 0xc3, 0xc2, 0xc0, 0xc0, +0xc2, 0xc3, 0xc2, 0xc2, 0xc2, 0x42, 0x43, 0xc0, 0x80, 0x80, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0xdf, 0xef, 0x67, 0x9b, 0x9d, +0x6e, 0x75, 0xb3, 0xc5, 0xce, 0x57, 0xbb, 0xdc, 0xed, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xed, 0xce, 0xb7, 0x3a, 0xdc, 0xe8, 0x73, 0xa3, 0xcd, +0xee, 0xf6, 0xf9, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x87, 0x87, 0x87, 0x87, 0x87, 0x86, 0x86, 0x07, 0x07, 0x07, +0x07, 0x07, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0x9f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x9f, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x9f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, +0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, +0x08, 0x08, 0x08, 0x88, 0x88, 0x80, 0x80, 0x80, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x3f, 0x03, 0x00, 0x00, 0x80, 0xf8, 0xf8, 0x78, 0x18, 0x00, 0x00, 0x00, +0x80, 0x88, 0x88, 0x88, 0x88, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0xfd, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xfd, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfe, 0xff, +0xff, 0xff, 0xf9, 0xf1, 0xf1, 0xf0, 0xf0, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +static const char PROGMEM num_logo[] = { +// 'choccy num', 32x128px +0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x8f, 0xff, 0x7f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, +0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0x7c, 0x38, 0x08, 0x04, 0x02, 0x03, 0xe3, 0x98, 0x08, 0x08, 0x0c, 0x00, 0x00, +0x00, 0x0c, 0x0c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x01, 0x01, 0xff, 0x00, 0x00, +0x00, 0x61, 0x63, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x7f, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, +0x38, 0x38, 0x38, 0x3c, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x3e, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc, 0xbc, 0x14, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, +0x00, 0x04, 0x04, 0x04, 0x04, 0x14, 0xbc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x3b, 0x30, 0x00, 0x00, 0x04, 0x04, 0x04, +0x04, 0x04, 0x00, 0x00, 0x00, 0x43, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x80, 0xc3, 0xc3, 0xc2, 0xc2, 0xc2, 0xc3, 0xc2, 0xc0, 0xc0, +0xc2, 0xc3, 0xc2, 0xc2, 0xc2, 0xc2, 0xc3, 0xc0, 0x80, 0x80, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0xfc, 0xfc, 0x1c, 0x0c, 0x0c, +0x0c, 0x0c, 0x1c, 0xfc, 0xfc, 0xfc, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3e, 0x30, +0x30, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, +0x07, 0x07, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0x9f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x9f, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x9f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, +0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, +0x08, 0x08, 0x08, 0x88, 0x88, 0x80, 0x80, 0x80, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x3f, 0x03, 0x00, 0x00, 0x80, 0xf8, 0xf8, 0x78, 0x18, 0x00, 0x00, 0x00, +0x80, 0x88, 0x88, 0x88, 0x88, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0xfd, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xfd, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfe, 0xff, +0xff, 0xff, 0xf9, 0xf1, 0xf1, 0xf0, 0xf0, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; + + switch (get_highest_layer(layer_state)) { + case DEFAULT: + if (host_keyboard_led_state().num_lock) { + oled_write_raw_P(num_logo, sizeof(num_logo)); + } else { + oled_write_raw_P(base_logo, sizeof(base_logo)); + } + break; + default: + oled_write_raw_P(base_logo, sizeof(base_logo)); + } +} +#endif diff --git a/keyboards/misonoworks/chocolatebar/chocolatebar.h b/keyboards/misonoworks/chocolatebar/chocolatebar.h new file mode 100644 index 000000000000..badebdb73b5f --- /dev/null +++ b/keyboards/misonoworks/chocolatebar/chocolatebar.h @@ -0,0 +1,32 @@ +/* +Copyright 2021 MisonoWorks + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K111, K113, K114, K115, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K211, K212, K213, K214, K215, \ + K300, K301, K302, K303, K305, K306, K308, K311, K312, K313, K314, K315 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, KC_NO, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO, K111, KC_NO, K113, K114, K115 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, KC_NO, KC_NO, K211, K212, K213, K214, K215 }, \ + { K300, K301, K302, K303, KC_NO, K305, K306, KC_NO, K308, KC_NO, KC_NO, K311, K312, K313, K314, K315 } \ +} diff --git a/keyboards/misonoworks/chocolatebar/config.h b/keyboards/misonoworks/chocolatebar/config.h new file mode 100644 index 000000000000..a1da636fd99c --- /dev/null +++ b/keyboards/misonoworks/chocolatebar/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2021 MisonoWorks + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6D77 // "mW" - misonoWorks +#define PRODUCT_ID 0xC456 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MisonoWorks +#define PRODUCT Chocolate Bar + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 16 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B7, D2, D3 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, B3, B2 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 +#define FORCE_NKRO + +#define RGB_DI_PIN B1 +#ifdef RGB_DI_PIN +#define RGBLED_NUM 12 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#endif diff --git a/keyboards/misonoworks/chocolatebar/info.json b/keyboards/misonoworks/chocolatebar/info.json new file mode 100644 index 000000000000..717e77b94ffa --- /dev/null +++ b/keyboards/misonoworks/chocolatebar/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Chocolate Bar", + "url": "https://github.com/misonoworks/chocolate-bar", + "maintainer": "Robin Bayardo", + "width": 16, + "height": 4.25, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"7", "x":13, "y":0}, {"label":"8", "x":14, "y":0}, {"label":"9", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"A", "x":1.5, "y":1}, {"label":"S", "x":2.5, "y":1}, {"label":"D", "x":3.5, "y":1}, {"label":"F", "x":4.5, "y":1}, {"label":"G", "x":5.5, "y":1}, {"label":"H", "x":6.5, "y":1}, {"label":"J", "x":7.5, "y":1}, {"label":"K", "x":8.5, "y":1}, {"label":"L", "x":9.5, "y":1}, {"label":"Enter", "x":10.5, "y":1, "w":1.5}, {"label":"4", "x":13, "y":1}, {"label":"5", "x":14, "y":1}, {"label":"6", "x":15, "y":1}, {"label":"Shift", "x":0, "y":2, "w":2}, {"label":"Z", "x":2, "y":2}, {"label":"X", "x":3, "y":2}, {"label":"C", "x":4, "y":2}, {"label":"V", "x":5, "y":2}, {"label":"B", "x":6, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":", <", "x":9, "y":2}, {"label":"Shift", "x":10, "y":2, "w":1.5}, {"label":"1", "x":13, "y":2}, {"label":"2", "x":14, "y":2}, {"label":"3", "x":15, "y":2}, {"label":"Up", "x":11.75, "y":2.25}, {"label":"Ctrl", "x":0, "y":3, "w":1.5}, {"label":"Alt", "x":1.5, "y":3, "w":1.5}, {"label":"Meta", "x":3, "y":3}, {"x":4, "y":3, "w":2}, {"x":6, "y":3, "w":2}, {"label":"Super", "x":8, "y":3}, {"label":"Ctrl", "x":9, "y":3, "w":1.5}, {"label":"0", "x":14, "y":3}, {"label":"Calc", "x":15, "y":3}, {"label":"Left", "x":10.75, "y":3.25}, {"label":"Down", "x":11.75, "y":3.25}, {"label":"Right", "x":12.75, "y":3.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/misonoworks/chocolatebar/keymaps/default/keymap.c b/keyboards/misonoworks/chocolatebar/keymaps/default/keymap.c new file mode 100644 index 000000000000..957d826d938a --- /dev/null +++ b/keyboards/misonoworks/chocolatebar/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2021 MisonoWorks + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + DEFAULT, + META, + SUPER, + CALC, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [DEFAULT] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LALT, MO(META), KC_SPC, KC_BSPC, MO(SUPER), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, MO(CALC)), + + [META] = LAYOUT( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE, KC_7, KC_8, KC_9, + KC_TAB, KC_GRAVE, KC_MINUS, KC_EQUAL, KC_F, KC_G, KC_H, KC_J, KC_K, KC_QUOT, KC_SCLN, KC_4, KC_5, KC_6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLASH, KC_BSLASH, KC_PGUP, KC_1, KC_2, KC_3, + KC_LCTL, KC_LALT, KC_TRNS, KC_SPC, KC_BSPC, KC_TRNS, KC_LCTL, KC_WBAK, KC_PGDN, KC_WFWD, KC_0, KC_NLCK), + + [SUPER] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_MOD, RGB_RMOD, RGB_SAI, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_LBRC, KC_RBRC, RGB_HUI, RGB_HUD, RGB_SAD, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, RGB_VAI, RGB_VAD, KC_3, + KC_APP, KC_LALT, KC_TRNS, KC_SPC, KC_BSPC, KC_TRNS, KC_MENU, KC_LEFT, KC_DOWN, KC_RGHT, KC_0, RGB_TOG), + + [CALC] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_KP_DOT, KC_NO, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_DOT, KC_UP, KC_BSPC, KC_NO, KC_PENT, + KC_LCTL, KC_LALT, KC_TRNS, KC_SPC, KC_BSPC, KC_TRNS, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NLCK, KC_TRNS), + +}; diff --git a/keyboards/misonoworks/chocolatebar/keymaps/via/keymap.c b/keyboards/misonoworks/chocolatebar/keymaps/via/keymap.c new file mode 100644 index 000000000000..c92069d13f13 --- /dev/null +++ b/keyboards/misonoworks/chocolatebar/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2021 MisonoWorks + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + DEFAULT, + META, + SUPER, + CALC, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [DEFAULT] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LALT, MO(META), KC_SPC, KC_BSPC, MO(SUPER), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, MO(CALC)), + + [META] = LAYOUT( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE, KC_7, KC_8, KC_9, + KC_TRNS, KC_GRAVE, KC_MINUS, KC_EQUAL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLASH, KC_BSLASH, KC_PGUP, KC_1, KC_2, KC_3, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK, KC_PGDN, KC_WFWD, KC_0, KC_NLCK), + + [SUPER] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_MOD, RGB_RMOD, RGB_SAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, RGB_HUI, RGB_HUD, RGB_SAD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_UP, RGB_VAI, RGB_VAD, KC_3, + KC_APP, KC_LALT, KC_TRNS, KC_SPC, KC_BSPC, KC_TRNS, KC_MENU, KC_LEFT, KC_DOWN, KC_RGHT, KC_0, RGB_TOG), + + [CALC] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSLS, KC_PAST, KC_PMNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_DOT, KC_NO, KC_PPLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_BSPC, KC_NO, KC_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_NLCK), + +}; diff --git a/keyboards/misonoworks/chocolatebar/keymaps/via/rules.mk b/keyboards/misonoworks/chocolatebar/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/misonoworks/chocolatebar/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/misonoworks/chocolatebar/readme.md b/keyboards/misonoworks/chocolatebar/readme.md new file mode 100644 index 000000000000..062e7c0b0eb5 --- /dev/null +++ b/keyboards/misonoworks/chocolatebar/readme.md @@ -0,0 +1,16 @@ +# Chocolate Bar + +![Choc](https://i.imgur.com/IwF9JkVh.jpg) + + +An 1800-Style 40% Choc Keyboard + +* Keyboard Maintainer: [MisonoWorks](https://github.com/autumnisacutie/) +* Hardware Supported: Chocolate Bar PCB +* Hardware Availability: [MKUltra.click](https://mkultra.click/) + +Make example for this keyboard (after setting up your build environment): + + make misonoworks/chocolatebar:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/misonoworks/chocolatebar/rules.mk b/keyboards/misonoworks/chocolatebar/rules.mk new file mode 100644 index 000000000000..e7951f37b47a --- /dev/null +++ b/keyboards/misonoworks/chocolatebar/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = no +OLED_DRIVER_ENABLE = yes From a3cb3e139ab35084e839922ba6437611bc970128 Mon Sep 17 00:00:00 2001 From: Moritz Date: Sat, 7 Aug 2021 07:48:17 +0200 Subject: [PATCH 167/328] [Keyboard] Add Fave87 (#13873) Co-authored-by: Joel Challis --- keyboards/linworks/fave87/config.h | 55 ++++ keyboards/linworks/fave87/fave87.c | 16 + keyboards/linworks/fave87/fave87.h | 85 +++++ keyboards/linworks/fave87/info.json | 299 ++++++++++++++++++ .../linworks/fave87/keymaps/default/keymap.c | 35 ++ .../linworks/fave87/keymaps/via/keymap.c | 35 ++ .../linworks/fave87/keymaps/via/rules.mk | 1 + keyboards/linworks/fave87/readme.md | 18 ++ keyboards/linworks/fave87/rules.mk | 20 ++ 9 files changed, 564 insertions(+) create mode 100644 keyboards/linworks/fave87/config.h create mode 100644 keyboards/linworks/fave87/fave87.c create mode 100644 keyboards/linworks/fave87/fave87.h create mode 100644 keyboards/linworks/fave87/info.json create mode 100644 keyboards/linworks/fave87/keymaps/default/keymap.c create mode 100644 keyboards/linworks/fave87/keymaps/via/keymap.c create mode 100644 keyboards/linworks/fave87/keymaps/via/rules.mk create mode 100644 keyboards/linworks/fave87/readme.md create mode 100644 keyboards/linworks/fave87/rules.mk diff --git a/keyboards/linworks/fave87/config.h b/keyboards/linworks/fave87/config.h new file mode 100644 index 000000000000..d6d5ab5cf480 --- /dev/null +++ b/keyboards/linworks/fave87/config.h @@ -0,0 +1,55 @@ +/* +Copyright 2021 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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4C58 //"LX" +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Lx3 +#define PRODUCT FAVE-87 + +/* Set 1 kHz polling rate and force USB NKRO */ +#define USB_POLLING_INTERVAL_MS 1 +#define FORCE_NKRO + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 9 + +#define MATRIX_ROW_PINS { D3, D5, D1, D2, D4, D0, F5, F4, F7, F6, B5, B4 } +#define MATRIX_COL_PINS { F1, F0, E6, B0, B1, B2, B3, D6, D7 } +#define UNUSED_PINS { B6, C6, C7 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Backlight */ +#define BACKLIGHT_PIN B7 // Timer 1 on mega32u4 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_ON_STATE 1 + +/* Underglow */ +#define RGB_DI_PIN E2 +#define RGBLED_NUM 40 +#define RGBLIGHT_SLEEP // Turns LEDs off if the PC goes to sleep/shutdown +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/linworks/fave87/fave87.c b/keyboards/linworks/fave87/fave87.c new file mode 100644 index 000000000000..49272baf5ade --- /dev/null +++ b/keyboards/linworks/fave87/fave87.c @@ -0,0 +1,16 @@ +/* Copyright 2021 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 "fave87.h" diff --git a/keyboards/linworks/fave87/fave87.h b/keyboards/linworks/fave87/fave87.h new file mode 100644 index 000000000000..400755774a31 --- /dev/null +++ b/keyboards/linworks/fave87/fave87.h @@ -0,0 +1,85 @@ +/* Copyright 2021 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K057, K048, K058, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K088, \ + K100, K110, K101, K103, K105, K115, K106, K116, K117, K108, K118 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, KC_NO, K008 }, \ + { KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \ + { K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \ + { K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \ + { K060, K061, K062, K063, K064, K065, K066, KC_NO, KC_NO }, \ + { K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \ + { K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \ + { K090, K091, K092, K093, K094, K095, K096, KC_NO, KC_NO }, \ + { K100, K101, KC_NO, K103, KC_NO, K105, K106, KC_NO, K108 }, \ + { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 } \ +} + +#define LAYOUT_tkl_ansi( \ + K000, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K057, K048, K058, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, \ + K080, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K088, \ + K100, K110, K101, K103, K105, K115, K106, K116, K117, K108, K118 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, KC_NO, K008 }, \ + { KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \ + { K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \ + { K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \ + { K060, K061, K062, K063, K064, K065, KC_NO, KC_NO, KC_NO }, \ + { K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \ + { K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \ + { KC_NO, K091, K092, K093, K094, K095, K096, KC_NO, KC_NO }, \ + { K100, K101, KC_NO, K103, KC_NO, K105, K106, KC_NO, K108 }, \ + { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 } \ +} + +#define LAYOUT_tkl_iso( \ + K000, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K057, K048, K058, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K088, \ + K100, K110, K101, K103, K105, K115, K106, K116, K117, K108, K118 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, KC_NO, K008 }, \ + { KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \ + { K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \ + { K050, K051, K052, K053, K054, K055, KC_NO, K057, K058 }, \ + { K060, K061, K062, K063, K064, K065, K066, KC_NO, KC_NO }, \ + { K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \ + { K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \ + { K090, K091, K092, K093, K094, K095, K096, KC_NO, KC_NO }, \ + { K100, K101, KC_NO, K103, KC_NO, K105, K106, KC_NO, K108 }, \ + { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 } \ +} diff --git a/keyboards/linworks/fave87/info.json b/keyboards/linworks/fave87/info.json new file mode 100644 index 000000000000..0612ca91f4c0 --- /dev/null +++ b/keyboards/linworks/fave87/info.json @@ -0,0 +1,299 @@ +{ + "keyboard_name": "Lx3 Fave 87", + "maintainer": "ebastler", + "width": 18.25, + "height": 6.25, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"label":"Bksp", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"\"", "x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"label":"Enter", "x":13.75, "y":3.25, "w":1.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25}] + }, + + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.5}, + {"label":"!", "x":1, "y":1.5}, + {"label":"@", "x":2, "y":1.5}, + {"label":"#", "x":3, "y":1.5}, + {"label":"$", "x":4, "y":1.5}, + {"label":"%", "x":5, "y":1.5}, + {"label":"^", "x":6, "y":1.5}, + {"label":"&", "x":7, "y":1.5}, + {"label":"*", "x":8, "y":1.5}, + {"label":"(", "x":9, "y":1.5}, + {"label":")", "x":10, "y":1.5}, + {"label":"_", "x":11, "y":1.5}, + {"label":"+", "x":12, "y":1.5}, + {"label":"Bksp", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25}] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"\"", "x":11.75, "y":3.25}, + {"label":"#", "x":12.75, "y":3.25}, + {"label":"Enter", "x": 13.75, "y":2.25, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25}] + } + } +} diff --git a/keyboards/linworks/fave87/keymaps/default/keymap.c b/keyboards/linworks/fave87/keymaps/default/keymap.c new file mode 100644 index 000000000000..fc56046e857a --- /dev/null +++ b/keyboards/linworks/fave87/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 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_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, KC_TRNS, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_all( + RGB_TOG, RGB_VAD, RGB_VAI, BL_DEC, BL_INC, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_SPI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_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_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), +}; \ No newline at end of file diff --git a/keyboards/linworks/fave87/keymaps/via/keymap.c b/keyboards/linworks/fave87/keymaps/via/keymap.c new file mode 100644 index 000000000000..fc56046e857a --- /dev/null +++ b/keyboards/linworks/fave87/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 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_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, KC_TRNS, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_all( + RGB_TOG, RGB_VAD, RGB_VAI, BL_DEC, BL_INC, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_SPI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_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_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), +}; \ No newline at end of file diff --git a/keyboards/linworks/fave87/keymaps/via/rules.mk b/keyboards/linworks/fave87/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/linworks/fave87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/linworks/fave87/readme.md b/keyboards/linworks/fave87/readme.md new file mode 100644 index 000000000000..b673c312acbc --- /dev/null +++ b/keyboards/linworks/fave87/readme.md @@ -0,0 +1,18 @@ +# Fave 87 + + +The Fave 87 is the default PCB used by linworks/LX3 for TKL-boards. This is the latest pcb iteration, featuring QMK, VIA, single-color 3 mm LED backlight and RGB underglow. + +* Keyboard maintainer: [ebastler](https://github.com/ebastler) +* Hardware supported: Fave 87 PCBs (the latest rev designed by ebastler - can be recognized by a name badge + "`e`" logo on the bottom) +* Hardware availability: Groupbuys. Check the ongoing ones on [the Linworks Discord](https://discord.gg/UC8gTdVnsj) + +Make example for this keyboard (after setting up your build environment): + + make linworks/fave87:default + +Flash example for this keyboard: + + make linworks/fave87: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). diff --git a/keyboards/linworks/fave87/rules.mk b/keyboards/linworks/fave87/rules.mk new file mode 100644 index 000000000000..5f671bed8a65 --- /dev/null +++ b/keyboards/linworks/fave87/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow From 95fed3bfcfb4d2cf94fa486fa46618ef52260663 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 6 Aug 2021 22:59:03 -0700 Subject: [PATCH 168/328] clean up CRLF instances (#13910) --- keyboards/checkerboards/axon40/keymaps/via/rules.mk | 2 +- keyboards/xbows/ranger/keymaps/via/rules.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/checkerboards/axon40/keymaps/via/rules.mk b/keyboards/checkerboards/axon40/keymaps/via/rules.mk index 69de2e4c5a0c..1e5b99807cb7 100644 --- a/keyboards/checkerboards/axon40/keymaps/via/rules.mk +++ b/keyboards/checkerboards/axon40/keymaps/via/rules.mk @@ -1 +1 @@ -VIA_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/xbows/ranger/keymaps/via/rules.mk b/keyboards/xbows/ranger/keymaps/via/rules.mk index 69de2e4c5a0c..1e5b99807cb7 100644 --- a/keyboards/xbows/ranger/keymaps/via/rules.mk +++ b/keyboards/xbows/ranger/keymaps/via/rules.mk @@ -1 +1 @@ -VIA_ENABLE = yes +VIA_ENABLE = yes From 9c03d41f6adb0c3cacacf0acb69ddad3ed51eb24 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 6 Aug 2021 23:06:39 -0700 Subject: [PATCH 169/328] [Keyboard] Fix oled_task_user for chocolatebar (#13911) --- .../misonoworks/chocolatebar/chocolatebar.c | 106 ++++-------------- 1 file changed, 23 insertions(+), 83 deletions(-) diff --git a/keyboards/misonoworks/chocolatebar/chocolatebar.c b/keyboards/misonoworks/chocolatebar/chocolatebar.c index 3fd16fa72cdb..7e13f97612da 100644 --- a/keyboards/misonoworks/chocolatebar/chocolatebar.c +++ b/keyboards/misonoworks/chocolatebar/chocolatebar.c @@ -18,93 +18,33 @@ along with this program. If not, see . #include "chocolatebar.h" #ifdef OLED_DRIVER_ENABLE -__attribute__((weak))oled_rotation_t oled_init_user(oled_rotation_t rotation) { +__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; // flips the display 180 degrees if offhand } __attribute__((weak)) void oled_task_user(void) { - static const char PROGMEM base_logo[] = { -// 'choccy oled base', 32x128px -0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x8f, 0xff, 0x7f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, -0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0x7c, 0x38, 0x08, 0x04, 0x02, 0x03, 0xe3, 0x98, 0x08, 0x08, 0x0c, 0x00, 0x00, -0x00, 0x0c, 0x0c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x01, 0x01, 0xff, 0x00, 0x00, -0x00, 0x61, 0x63, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x7f, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, -0x38, 0x38, 0x38, 0x3c, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x3e, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc, 0xbc, 0x14, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, -0x00, 0x04, 0x04, 0x04, 0x04, 0x14, 0xbc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x3b, 0x30, 0x00, 0x00, 0x04, 0x04, 0x04, -0x04, 0x04, 0x00, 0x00, 0x00, 0x43, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x80, 0xc3, 0xc3, 0xc2, 0xc2, 0xc2, 0xc3, 0xc2, 0xc0, 0xc0, -0xc2, 0xc3, 0xc2, 0xc2, 0xc2, 0x42, 0x43, 0xc0, 0x80, 0x80, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0xdf, 0xef, 0x67, 0x9b, 0x9d, -0x6e, 0x75, 0xb3, 0xc5, 0xce, 0x57, 0xbb, 0xdc, 0xed, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xed, 0xce, 0xb7, 0x3a, 0xdc, 0xe8, 0x73, 0xa3, 0xcd, -0xee, 0xf6, 0xf9, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x87, 0x87, 0x87, 0x87, 0x87, 0x86, 0x86, 0x07, 0x07, 0x07, -0x07, 0x07, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0x9f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, -0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x9f, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x9f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, -0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, -0x08, 0x08, 0x08, 0x88, 0x88, 0x80, 0x80, 0x80, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x3f, 0x03, 0x00, 0x00, 0x80, 0xf8, 0xf8, 0x78, 0x18, 0x00, 0x00, 0x00, -0x80, 0x88, 0x88, 0x88, 0x88, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0xfd, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xfd, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfe, 0xff, -0xff, 0xff, 0xf9, 0xf1, 0xf1, 0xf0, 0xf0, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff -}; - -static const char PROGMEM num_logo[] = { -// 'choccy num', 32x128px -0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x8f, 0xff, 0x7f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, -0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0x7c, 0x38, 0x08, 0x04, 0x02, 0x03, 0xe3, 0x98, 0x08, 0x08, 0x0c, 0x00, 0x00, -0x00, 0x0c, 0x0c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x01, 0x01, 0xff, 0x00, 0x00, -0x00, 0x61, 0x63, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x7f, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, -0x38, 0x38, 0x38, 0x3c, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x3e, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc, 0xbc, 0x14, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, -0x00, 0x04, 0x04, 0x04, 0x04, 0x14, 0xbc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x3b, 0x30, 0x00, 0x00, 0x04, 0x04, 0x04, -0x04, 0x04, 0x00, 0x00, 0x00, 0x43, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x80, 0xc3, 0xc3, 0xc2, 0xc2, 0xc2, 0xc3, 0xc2, 0xc0, 0xc0, -0xc2, 0xc3, 0xc2, 0xc2, 0xc2, 0xc2, 0xc3, 0xc0, 0x80, 0x80, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0xfc, 0xfc, 0x1c, 0x0c, 0x0c, -0x0c, 0x0c, 0x1c, 0xfc, 0xfc, 0xfc, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3e, 0x30, -0x30, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, -0x07, 0x07, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0x9f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, -0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x9f, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x9f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, -0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, -0x08, 0x08, 0x08, 0x88, 0x88, 0x80, 0x80, 0x80, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xff, 0x3f, 0x03, 0x00, 0x00, 0x80, 0xf8, 0xf8, 0x78, 0x18, 0x00, 0x00, 0x00, -0x80, 0x88, 0x88, 0x88, 0x88, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0xfd, 0xff, 0xff, 0xff, 0xff, -0xff, 0xff, 0xff, 0xfd, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfe, 0xff, -0xff, 0xff, 0xf9, 0xf1, 0xf1, 0xf0, 0xf0, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff -}; - - switch (get_highest_layer(layer_state)) { - case DEFAULT: - if (host_keyboard_led_state().num_lock) { - oled_write_raw_P(num_logo, sizeof(num_logo)); - } else { - oled_write_raw_P(base_logo, sizeof(base_logo)); - } - break; - default: - oled_write_raw_P(base_logo, sizeof(base_logo)); + static const char PROGMEM base_logo[] = {// 'choccy oled base', 32x128px + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x8f, 0xff, 0x7f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0x38, 0x08, 0x04, 0x02, 0x03, 0xe3, 0x98, 0x08, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x61, 0x63, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3c, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x3e, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc, 0xbc, 0x14, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x14, 0xbc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x3b, 0x30, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x43, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x80, 0xc3, 0xc3, 0xc2, 0xc2, 0xc2, 0xc3, 0xc2, 0xc0, 0xc0, 0xc2, 0xc3, 0xc2, 0xc2, 0xc2, 0x42, 0x43, 0xc0, 0x80, 0x80, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0xdf, 0xef, 0x67, 0x9b, 0x9d, 0x6e, 0x75, 0xb3, 0xc5, 0xce, 0x57, 0xbb, 0xdc, 0xed, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xed, 0xce, 0xb7, 0x3a, 0xdc, 0xe8, 0x73, 0xa3, 0xcd, 0xee, 0xf6, 0xf9, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x87, 0x87, 0x87, 0x87, 0x87, 0x86, 0x86, 0x07, 0x07, 0x07, 0x07, 0x07, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x9f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x9f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, 0x08, 0x08, 0x08, 0x88, 0x88, 0x80, 0x80, 0x80, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x03, 0x00, 0x00, 0x80, 0xf8, 0xf8, 0x78, 0x18, 0x00, 0x00, 0x00, 0x80, 0x88, 0x88, 0x88, 0x88, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xf9, 0xf1, 0xf1, 0xf0, 0xf0, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + + static const char PROGMEM num_logo[] = {// 'choccy num', 32x128px + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x8f, 0xff, 0x7f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0x38, 0x08, 0x04, 0x02, 0x03, 0xe3, 0x98, 0x08, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x61, 0x63, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3c, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x3e, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc, 0xbc, 0x14, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x14, 0xbc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x3b, 0x30, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x43, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x80, 0xc3, 0xc3, 0xc2, 0xc2, 0xc2, 0xc3, 0xc2, 0xc0, 0xc0, 0xc2, 0xc3, 0xc2, 0xc2, 0xc2, 0xc2, 0xc3, 0xc0, 0x80, 0x80, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0xfc, 0xfc, 0x1c, 0x0c, 0x0c, 0x0c, 0x0c, 0x1c, 0xfc, 0xfc, 0xfc, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3e, 0x30, 0x30, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, 0x07, 0x07, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x9f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x9f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, 0x08, 0x08, 0x08, 0x88, 0x88, 0x80, 0x80, 0x80, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x03, 0x00, 0x00, 0x80, 0xf8, 0xf8, 0x78, 0x18, 0x00, 0x00, 0x00, 0x80, 0x88, 0x88, 0x88, 0x88, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xf9, 0xf1, 0xf1, 0xf0, 0xf0, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + + switch (get_highest_layer(layer_state)) { + case 0: + if (host_keyboard_led_state().num_lock) { + oled_write_raw_P(num_logo, sizeof(num_logo)); + } else { + oled_write_raw_P(base_logo, sizeof(base_logo)); + } + break; + default: + oled_write_raw_P(base_logo, sizeof(base_logo)); } } #endif From e4342f86305e512be2b3a52a07e7c7dc591ae6a9 Mon Sep 17 00:00:00 2001 From: Jack Kenney Date: Sat, 7 Aug 2021 02:49:25 -0400 Subject: [PATCH 170/328] [Keymap] JackKenney's keymap for GMMK Pro (#13853) --- .../gmmk/pro/keymaps/jackkenney/keymap.c | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 keyboards/gmmk/pro/keymaps/jackkenney/keymap.c diff --git a/keyboards/gmmk/pro/keymaps/jackkenney/keymap.c b/keyboards/gmmk/pro/keymaps/jackkenney/keymap.c new file mode 100644 index 000000000000..cfca7960ca41 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/jackkenney/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 Glorious, LLC + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute) + // ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del + // Tab Q W E R T Y U I O P [ ] \ PgUp + // Caps A S D F G H J K L ; " Enter PgDn + // Sh_L Z X C V B N M , . ? Sh_R Up End + // Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right + + + // The FN key by default maps to a momentary toggle to layer 1 to provide access to the RESET key (to put the board into bootloader mode). Without + // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB + // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI + // if that's your preference. + // + // To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and + // it'll be back to normal when you plug it back in. + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE, + 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_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RESET, KC_RGUI, _______, _______, _______, _______, _______ + ), + + +}; + + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } + else { + tap_code(KC_VOLD); + } + return true; +} From 9d88786b6fc6b1e9eeeba409cb5e4a17dd2bbe82 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Sat, 7 Aug 2021 07:51:03 +0100 Subject: [PATCH 171/328] [Keyboard] add handwired/oem_ansi_fullsize (#13857) * Add new keyboard oem_ansi_fullsize * clang-fmt * Update keyboards/handwired/oem_ansi_fullsize/rules.mk Co-authored-by: Joel Challis * Update keyboards/handwired/oem_ansi_fullsize/readme.md Co-authored-by: Joel Challis * update info.json using qmk c2json * update info.json * move diagram to readme * add matrix cols/rows to info.json * fixup! add matrix cols/rows to info.json * rename layout, fix block comment * s/ansi_fullsize/fullsize_ansi/g Co-authored-by: Joel Challis --- .../handwired/oem_ansi_fullsize/config.h | 159 ++++++++++++++++++ .../handwired/oem_ansi_fullsize/info.json | 122 ++++++++++++++ .../keymaps/default/keymap.c | 30 ++++ .../keymaps/default/readme.md | 1 + .../oem_ansi_fullsize/oem_ansi_fullsize.c | 17 ++ .../oem_ansi_fullsize/oem_ansi_fullsize.h | 72 ++++++++ .../handwired/oem_ansi_fullsize/readme.md | 49 ++++++ .../handwired/oem_ansi_fullsize/rules.mk | 24 +++ 8 files changed, 474 insertions(+) create mode 100644 keyboards/handwired/oem_ansi_fullsize/config.h create mode 100644 keyboards/handwired/oem_ansi_fullsize/info.json create mode 100644 keyboards/handwired/oem_ansi_fullsize/keymaps/default/keymap.c create mode 100644 keyboards/handwired/oem_ansi_fullsize/keymaps/default/readme.md create mode 100644 keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.c create mode 100644 keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.h create mode 100644 keyboards/handwired/oem_ansi_fullsize/readme.md create mode 100644 keyboards/handwired/oem_ansi_fullsize/rules.mk diff --git a/keyboards/handwired/oem_ansi_fullsize/config.h b/keyboards/handwired/oem_ansi_fullsize/config.h new file mode 100644 index 000000000000..7219bd3403a0 --- /dev/null +++ b/keyboards/handwired/oem_ansi_fullsize/config.h @@ -0,0 +1,159 @@ +/* +Copyright 2021 Cian Johnston + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Cian Johnston +#define PRODUCT oem_ansi_fullsize + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 22 + +/* + * 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 \ + { F5, F4, F3, F2, F1, F0 } +// R0 R1 R2 R3 R4 R5 + +#define MATRIX_COL_PINS \ + { C3, C2, C1, C0, E1, E0, D7, E6, D5, D4, D3, D2, D1, D0, B7, B0, B1, B2, B3, B4, B5, F6 } +// C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF CG CH CI CJ CK CL + +#define UNUSED_PINS + +/* 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/handwired/oem_ansi_fullsize/info.json b/keyboards/handwired/oem_ansi_fullsize/info.json new file mode 100644 index 000000000000..27a44da885f4 --- /dev/null +++ b/keyboards/handwired/oem_ansi_fullsize/info.json @@ -0,0 +1,122 @@ +{ + "keyboard_name": "oem_ansi_fullsize", + "url": "https://github.com/johnstcn/qmk", + "maintainer": "johnstcn", + "width": 22.5, + "height": 6.25, + "layouts": { + "LAYOUT_fullsize_ansi": { + "layout": [ + {"matrix": [0, 0], "label": "ESC", "x":0, "y":0}, + {"matrix": [0, 2], "label": "F1", "x":2, "y":0}, + {"matrix": [0, 3], "label": "F2", "x":3, "y":0}, + {"matrix": [0, 4], "label": "F3", "x":4, "y":0}, + {"matrix": [0, 5], "label": "F4", "x":5, "y":0}, + {"matrix": [0, 7], "label": "F5", "x":6.5, "y":0}, + {"matrix": [0, 8], "label": "F6", "x":7.5, "y":0}, + {"matrix": [0, 9], "label": "F7", "x":8.5, "y":0}, + {"matrix": [0, 10], "label": "F8", "x":9.5, "y":0}, + {"matrix": [0, 11], "label": "F9", "x":11, "y":0}, + {"matrix": [0, 12], "label": "F10", "x":12, "y":0}, + {"matrix": [0, 13], "label": "F11", "x":13, "y":0}, + {"matrix": [0, 14], "label": "F12", "x":14, "y":0}, + {"matrix": [0, 15], "label": "PSCR", "x":15.25, "y":0}, + {"matrix": [0, 16], "label": "SLCK", "x":16.25, "y":0}, + {"matrix": [0, 17], "label": "PAUS", "x":17.25, "y":0}, + + {"matrix": [1, 0], "label": "GRV", "x":0, "y":1.25}, + {"matrix": [1, 1], "label": "1", "x":1, "y":1.25}, + {"matrix": [1, 2], "label": "2", "x":2, "y":1.25}, + {"matrix": [1, 3], "label": "3", "x":3, "y":1.25}, + {"matrix": [1, 4], "label": "4", "x":4, "y":1.25}, + {"matrix": [1, 5], "label": "5", "x":5, "y":1.25}, + {"matrix": [1, 6], "label": "6", "x":6, "y":1.25}, + {"matrix": [1, 7], "label": "7", "x":7, "y":1.25}, + {"matrix": [1, 8], "label": "8", "x":8, "y":1.25}, + {"matrix": [1, 9], "label": "9", "x":9, "y":1.25}, + {"matrix": [1, 10], "label": "0", "x":10, "y":1.25}, + {"matrix": [1, 11], "label": "MINS", "x":11, "y":1.25}, + {"matrix": [1, 12], "label": "EQL", "x":12, "y":1.25}, + {"matrix": [1, 14], "label": "BSPC", "x":13, "y":1.25, "w":2}, + {"matrix": [1, 15], "label": "INS", "x":15.25, "y":1.25}, + {"matrix": [1, 16], "label": "HOME", "x":16.25, "y":1.25}, + {"matrix": [1, 17], "label": "PGUP", "x":17.25, "y":1.25}, + {"matrix": [1, 18], "label": "NLCK", "x":18.5, "y":1.25}, + {"matrix": [1, 19], "label": "PSLS", "x":19.5, "y":1.25}, + {"matrix": [1, 20], "label": "PAST", "x":20.5, "y":1.25}, + {"matrix": [1, 21], "label": "PMNS", "x":21.5, "y":1.25}, + + {"matrix": [2, 0], "label": "TAB", "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 2], "label": "Q", "x":1.5, "y":2.25}, + {"matrix": [2, 3], "label": "W", "x":2.5, "y":2.25}, + {"matrix": [2, 4], "label": "E", "x":3.5, "y":2.25}, + {"matrix": [2, 5], "label": "R", "x":4.5, "y":2.25}, + {"matrix": [2, 6], "label": "T", "x":5.5, "y":2.25}, + {"matrix": [2, 7], "label": "Y", "x":6.5, "y":2.25}, + {"matrix": [2, 8], "label": "U", "x":7.5, "y":2.25}, + {"matrix": [2, 9], "label": "I", "x":8.5, "y":2.25}, + {"matrix": [2, 10], "label": "O", "x":9.5, "y":2.25}, + {"matrix": [2, 11], "label": "P", "x":10.5, "y":2.25}, + {"matrix": [2, 12], "label": "LBRC", "x":11.5, "y":2.25}, + {"matrix": [2, 13], "label": "RBRC", "x":12.5, "y":2.25}, + {"matrix": [2, 14], "label": "BSLS", "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2, 15], "label": "DEL", "x":15.25, "y":2.25}, + {"matrix": [2, 16], "label": "END", "x":16.25, "y":2.25}, + {"matrix": [2, 17], "label": "PGDN", "x":17.25, "y":2.25}, + {"matrix": [2, 18], "label": "P7", "x":18.5, "y":2.25}, + {"matrix": [2, 19], "label": "P8", "x":19.5, "y":2.25}, + {"matrix": [2, 20], "label": "P9", "x":20.5, "y":2.25}, + {"matrix": [2, 21], "label": "PPLS", "x":21.5, "y":2.25, "h": 2}, + + {"matrix": [3, 0], "label": "CAPS", "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 2], "label": "A", "x":1.75, "y":3.25}, + {"matrix": [3, 3], "label": "S", "x":2.75, "y":3.25}, + {"matrix": [3, 4], "label": "D", "x":3.75, "y":3.25}, + {"matrix": [3, 5], "label": "F", "x":4.75, "y":3.25}, + {"matrix": [3, 6], "label": "G", "x":5.75, "y":3.25}, + {"matrix": [3, 7], "label": "H", "x":6.75, "y":3.25}, + {"matrix": [3, 8], "label": "J", "x":7.75, "y":3.25}, + {"matrix": [3, 9], "label": "K", "x":8.75, "y":3.25}, + {"matrix": [3, 10], "label": "L", "x":9.75, "y":3.25}, + {"matrix": [3, 11], "label": "SCLN", "x":10.75, "y":3.25}, + {"matrix": [3, 12], "label": "QUOT", "x":11.75, "y":3.25}, + {"matrix": [3, 13], "label": "ENT", "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [3, 18], "label": "P4", "x":18.5, "y":3.25}, + {"matrix": [3, 19], "label": "P5", "x":19.5, "y":3.25}, + {"matrix": [3, 20], "label": "P6", "x":20.5, "y":3.25}, + + {"matrix": [4, 1], "label": "LSFT", "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "label": "Z", "x":2.25, "y":4.25}, + {"matrix": [4, 3], "label": "X", "x":3.25, "y":4.25}, + {"matrix": [4, 4], "label": "C", "x":4.25, "y":4.25}, + {"matrix": [4, 5], "label": "V", "x":5.25, "y":4.25}, + {"matrix": [4, 6], "label": "B", "x":6.25, "y":4.25}, + {"matrix": [4, 7], "label": "N", "x":7.25, "y":4.25}, + {"matrix": [4, 8], "label": "M", "x":8.25, "y":4.25}, + {"matrix": [4, 9], "label": "COMM", "x":9.25, "y":4.25}, + {"matrix": [4, 10], "label": "DOT", "x":10.25, "y":4.25}, + {"matrix": [4, 11], "label": "SLSH", "x":11.25, "y":4.25}, + {"matrix": [4, 13], "label": "RSFT", "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4, 16], "label": "UP", "x":16.25, "y":4.25}, + {"matrix": [4, 18], "label": "P1", "x":18.5, "y":4.25}, + {"matrix": [4, 19], "label": "P2", "x":19.5, "y":4.25}, + {"matrix": [4, 20], "label": "P3", "x":20.5, "y":4.25}, + {"matrix": [4, 21], "label": "PENT", "x":21.5, "y":4.25, "h":2}, + + {"matrix": [5, 0], "label": "LCTL", "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "label": "LGUI", "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 3], "label": "LALT", "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "label": "SPC", "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5, 10], "label": "RALT", "x":10, "y":5.25, "w":1.25}, + {"matrix": [5, 11], "label": "RGUI", "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5, 13], "label": "MO(1)", "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5, 14], "label": "RCTL", "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5, 15], "label": "LEFT", "x":15.25, "y":5.25}, + {"matrix": [5, 16], "label": "DOWN", "x":16.25, "y":5.25}, + {"matrix": [5, 17], "label": "RGHT", "x":17.25, "y":5.25}, + {"matrix": [5, 18], "label": "P0", "x":18.5, "y":5.25, "w":2}, + {"matrix": [5, 20], "label": "PDOT", "x":20.5, "y":5.25} + ] + } + } +} diff --git a/keyboards/handwired/oem_ansi_fullsize/keymaps/default/keymap.c b/keyboards/handwired/oem_ansi_fullsize/keymaps/default/keymap.c new file mode 100644 index 000000000000..48290896fc81 --- /dev/null +++ b/keyboards/handwired/oem_ansi_fullsize/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Cian Johnston + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_fullsize_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), +}; +// clang-format on + diff --git a/keyboards/handwired/oem_ansi_fullsize/keymaps/default/readme.md b/keyboards/handwired/oem_ansi_fullsize/keymaps/default/readme.md new file mode 100644 index 000000000000..882181d208d4 --- /dev/null +++ b/keyboards/handwired/oem_ansi_fullsize/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for oem_ansi_fullsize diff --git a/keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.c b/keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.c new file mode 100644 index 000000000000..14004599aac0 --- /dev/null +++ b/keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Cian Johnston + * + * 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 "oem_ansi_fullsize.h" diff --git a/keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.h b/keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.h new file mode 100644 index 000000000000..ceb873393cc8 --- /dev/null +++ b/keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.h @@ -0,0 +1,72 @@ +/* Copyright 2021 Cian Johnston + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +/* Matrix col/row mapping + * + * 10 11 12 13 14 15 16 17 18 19 20 21 + * C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF CG CH CI CJ CK CL + * ┌───┐ ┌───┐┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐ + * R0 │K00│ │K02││K03││K04││K05│ │K07││K08││K09││K0A│ │K0B││K0C││K0D││K0E│ │K0F││K0G││K0H│ + * └───┘ └───┘└───┘└───┘└───┘ └───┘└───┘└───┘└───┘ └───┘└───┘└───┘└───┘ └───┘└───┘└───┘ + * + * ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───────┐ ┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐┌───┐ + * R1 │K10││K11││K12││K13││K14││K15││K16││K17││K18││K19││K1A││K1B││K1C││ K1E │ │K1F││K1G││K1H│ │K1I││K1J││K1K││K1L│ + * └───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───────┘ └───┘└───┘└───┘ └───┘└───┘└───┘└───┘ + * ┌─────┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌─────┐ ┌───┐┌───┐┌───┐ ┌───┐┌───┐┌───┐┌───┐ + * R2 │ K20 ││K22││K23││K24││K25││K26││K27││K28││K29││K2A││K2B││K2C││K2D││ K2E │ │K2F││K2G││K2H│ │K2I││K2J││K2K││ │ + * └─────┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└─────┘ └───┘└───┘└───┘ └───┘└───┘└───┘│K2L│ + * ┌───────┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌────────┐ ┌───┐┌───┐┌───┐│ │ + * R3 │ K30 ││K32││K33││K34││K35││K36││K37││K38││K39││K3A││K3B││K3C││ K3D │ │K3I││K3J││K3K││ │ + * └───────┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└────────┘ └───┘└───┘└───┘└───┘ + * ┌─────────┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───────────┐ ┌───┐ ┌───┐┌───┐┌───┐┌───┐ + * R4 │ K41 ││K42││K43││K44││K45││K46││K47││K48││K49││K4A││K4B││ K4D │ │K4G│ │K4I││K4J││K4K││ │ + * └─────────┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───────────┘ └───┘ └───┘└───┘└───┘│K4L│ + * ┌────┐┌────┐┌────┐┌──────────────────────────────┐┌────┐┌────┐┌────┐┌────┐ ┌───┐┌───┐┌───┐ ┌────────┐┌───┐│ │ + * R5 │K50 ││K51 ││K53 ││ K56 ││K5A ││K5B ││K5D ││K5E │ │K5F││K5G││K5H│ │ K5I ││K5K││ │ + * └────┘└────┘└────┘└──────────────────────────────┘└────┘└────┘└────┘└────┘ └───┘└───┘└───┘ └────────┘└───┘└───┘ + * + */ + +// clang-format off +#define LAYOUT_fullsize_ansi( \ + K00, K02, K03, K04, K05, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3I, K3J, K3K, \ + K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4G, K4I, K4J, K4K, K4L, \ + K50, K51, K53, K56, K5A, K5B, K5D, K5E, K5F, K5G, K5H, K5I, K5K \ +) { \ + { K00, KC_NO, K02, K03, K04, K05, KC_NO, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L }, \ + { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO, KC_NO, K3I, K3J, K3K, KC_NO }, \ + { KC_NO, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, KC_NO, K4G, KC_NO, K4I, K4J, K4K, K4L }, \ + { K50, K51, KC_NO, K53, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, KC_NO, K5D, K5E, K5F, K5G, K5H, K5I, KC_NO, K5K, KC_NO }, \ +} +// clang-format on diff --git a/keyboards/handwired/oem_ansi_fullsize/readme.md b/keyboards/handwired/oem_ansi_fullsize/readme.md new file mode 100644 index 000000000000..a94413cdfb61 --- /dev/null +++ b/keyboards/handwired/oem_ansi_fullsize/readme.md @@ -0,0 +1,49 @@ +# oem_ansi_fullsize + +![oem_ansi_fullsize](https://imgur.com/a/Tw7dwK4) +This is a basic layout for a full-sized ANSI board. It should be compatible with any 100% full-sized layout, for example [RobotDoctor's MECH-104](https://www.thingiverse.com/thing:4205065). + +* Keyboard Maintainer: [Cian Johnston](https://github.com/johnstcn) +* Hardware Supported: Teensy®++ 2.0 as it has enough pins for the matrix. +* Hardware Availability: [pjrc.com](https://www.pjrc.com/store/teensypp.html) + +The pin layout I used is shown below. Change it as you wish, but be sure to avoid pin D6! + +``` + ┌──────┐ + ┌────┴──────┴────┐ + +5V │o o│ GND + CL <== B6 │o o│ B7 ==> CE + CK <== B5 │o o│ D0 ==> CD + CJ <== B4 │o o│ D1 ==> CC + CI <== B3 │o o│ D2 ==> CB + CH <== B2 │o o│ D3 ==> CA + CG <== B1 │o o│ D4 ==> C9 + CF <== B0 │o o│ D5 ==> C8 + E7 │o o│ D6 ==> NOPE + C7 <== E6 │o o│ D7 ==> C6 + GND │o o│ E0 ==> C5 + RST │o o│ E1 ==> C4 + R5 <== F0 │o o│ C0 ==> C3 + R4 <== F1 │o A0 o o A4 o│ C1 ==> C2 + R3 <== F2 │o A1 o o A5 o│ C2 ==> C1 + R2 <== F3 │o A2 o o A6 o│ C3 ==> C0 + R1 <== F4 │o A3 o o A7 o│ C4 + R0 <== F5 │o o│ C5 + F6 │o o│ C6 + F7 │o o o o o│ C7 + └────────────────┘ + R G + + S N 5 + T D V +``` + +Make example for this keyboard (after setting up your build environment): + + make handwired/oem_ansi_fullsize:default + +Flashing example for this keyboard: + + make handwired/oem_ansi_fullsize: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). diff --git a/keyboards/handwired/oem_ansi_fullsize/rules.mk b/keyboards/handwired/oem_ansi_fullsize/rules.mk new file mode 100644 index 000000000000..f5d76ee8563b --- /dev/null +++ b/keyboards/handwired/oem_ansi_fullsize/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = at90usb1286 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = fullsize_ansi \ No newline at end of file From 8a9688bc64ea4283ecfa19dc2bf2c3312e7c646f Mon Sep 17 00:00:00 2001 From: Alex Ong Date: Sat, 7 Aug 2021 16:51:38 +1000 Subject: [PATCH 172/328] [Keyboard] Use new matrix_output_select_delay api (#13861) * Use new matrix_output_select_delay api * Updated delay to 15 after more spamming --- keyboards/handwired/xealousbrown/config.h | 7 +++++++ keyboards/handwired/xealousbrown/matrix.c | 10 +++++++--- keyboards/handwired/xealousbrown/readme.md | 5 ++++- keyboards/handwired/xealousbrown/rules.mk | 2 +- keyboards/handwired/xealousbrown/xealousbrown.c | 6 +----- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/keyboards/handwired/xealousbrown/config.h b/keyboards/handwired/xealousbrown/config.h index bf9ad3e05257..70775ffaebb3 100644 --- a/keyboards/handwired/xealousbrown/config.h +++ b/keyboards/handwired/xealousbrown/config.h @@ -32,6 +32,13 @@ along with this program. If not, see . #define USB_POLLING_INTERVAL_MS 1 /* layer optimization */ #define LAYER_STATE_8BIT +#define MAX_LAYER 2 + +//debug scanrate +//#define DEBUG_MATRIX_SCAN_RATE +//debug scans taking longer than one ms +//#define BENCHMARK_MATRIX +#define MATRIX_IO_DELAY 15 /* * Keyboard Matrix Assignments * diff --git a/keyboards/handwired/xealousbrown/matrix.c b/keyboards/handwired/xealousbrown/matrix.c index cce0d06ebb8f..ba86ab7af0a3 100644 --- a/keyboards/handwired/xealousbrown/matrix.c +++ b/keyboards/handwired/xealousbrown/matrix.c @@ -28,7 +28,7 @@ extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values // matrix code // super fast read_cols code. -static matrix_row_t read_cols(void) { +static inline matrix_row_t read_cols(void) { return (PINC & (1 << 6) ? 0 : (1UL << 0)) | (PIND & (1 << 7) ? 0 : (1UL << 1)) | (PINE & (1 << 6) ? 0 : (1UL << 2)) | @@ -100,13 +100,17 @@ uint8_t matrix_scan_custom(matrix_row_t current_matrix[]) { // Set row, read cols for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { select_row(current_row); - asm volatile("nop"); - asm volatile("nop"); + matrix_output_select_delay(); + matrix_row_t cols = read_cols(); changed |= (current_matrix[current_row] != cols); current_matrix[current_row] = cols; + unselect_rows(); + //this internally calls matrix_io_delay() + matrix_output_unselect_delay(); } return changed; } + diff --git a/keyboards/handwired/xealousbrown/readme.md b/keyboards/handwired/xealousbrown/readme.md index bbc2233d1c4e..fa5537e47101 100644 --- a/keyboards/handwired/xealousbrown/readme.md +++ b/keyboards/handwired/xealousbrown/readme.md @@ -19,4 +19,7 @@ The brief list of speedhacks to make this keyboard blazing fast: 3) Eager-per-key Debouncing algorithm (no 5ms delay before message is sent) 4) 1000hz polling -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). +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). diff --git a/keyboards/handwired/xealousbrown/rules.mk b/keyboards/handwired/xealousbrown/rules.mk index df90cd030e37..04a01ec6bddc 100644 --- a/keyboards/handwired/xealousbrown/rules.mk +++ b/keyboards/handwired/xealousbrown/rules.mk @@ -25,7 +25,7 @@ SPACE_CADET_ENABLE = no # Unneeded feature. LAYOUTS = 60_ansi # special sauce for this keyboard -DEBOUNCE_TYPE = eager_pk # Debounce using eager_pk. +DEBOUNCE_TYPE = sym_eager_pk # Debounce using eager_pk. CUSTOM_MATRIX = lite # Custom matrix that polls at 7000hz instead of a measly 2000hz. LTO_ENABLE = yes # smaller binary SRC += matrix.c diff --git a/keyboards/handwired/xealousbrown/xealousbrown.c b/keyboards/handwired/xealousbrown/xealousbrown.c index 03512b1acb91..57c69bd31296 100644 --- a/keyboards/handwired/xealousbrown/xealousbrown.c +++ b/keyboards/handwired/xealousbrown/xealousbrown.c @@ -50,13 +50,9 @@ void matrix_scan_user(void) { last_timer = timer; if ((timer % 1000 == 0) && (timer != last_print_out)) { - print("Benchmark:"); - print("\n"); - print_dec(timer); - print("\n"); + print("Scans: "); print_dec(scans); print("\n"); - print("-------"); scans = 0; last_print_out = timer; } From a9b0750f7b6f17722a81687509a50ee5a5d45049 Mon Sep 17 00:00:00 2001 From: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Sat, 7 Aug 2021 14:52:18 +0800 Subject: [PATCH 173/328] [Keyboard] Modify key drive pins for mojo68 (#13863) --- keyboards/melgeek/mojo68/rev1/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/melgeek/mojo68/rev1/config.h b/keyboards/melgeek/mojo68/rev1/config.h index febdab8a3e60..aed2a45c37f7 100755 --- a/keyboards/melgeek/mojo68/rev1/config.h +++ b/keyboards/melgeek/mojo68/rev1/config.h @@ -28,7 +28,7 @@ */ #define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 } -#define MATRIX_COL_PINS { B0 ,B1, B2, B3, D2, D5, D4, D6, D7, B4, B5, B6, C6, C7, E2 } +#define MATRIX_COL_PINS { B0 ,B1, B2, B3, D2, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7 } #define UNUSED_PINS /* COL2ROW, ROW2COL*/ From 85c32da9896f6f7fb16b911c3cd49cec80655139 Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Sat, 7 Aug 2021 08:52:39 +0200 Subject: [PATCH 174/328] [Keyboard] Added 67mk_E PCB (#13869) * added 67mk_E PCB * add layouts --- keyboards/kb_elmo/67mk_e/67mk_e.c | 17 + keyboards/kb_elmo/67mk_e/67mk_e.h | 105 +++++ keyboards/kb_elmo/67mk_e/config.h | 44 ++ keyboards/kb_elmo/67mk_e/info.json | 440 ++++++++++++++++++ .../kb_elmo/67mk_e/keymaps/default/keymap.c | 33 ++ keyboards/kb_elmo/67mk_e/keymaps/via/keymap.c | 47 ++ keyboards/kb_elmo/67mk_e/keymaps/via/rules.mk | 2 + keyboards/kb_elmo/67mk_e/readme.md | 21 + keyboards/kb_elmo/67mk_e/rules.mk | 24 + 9 files changed, 733 insertions(+) create mode 100644 keyboards/kb_elmo/67mk_e/67mk_e.c create mode 100644 keyboards/kb_elmo/67mk_e/67mk_e.h create mode 100644 keyboards/kb_elmo/67mk_e/config.h create mode 100644 keyboards/kb_elmo/67mk_e/info.json create mode 100644 keyboards/kb_elmo/67mk_e/keymaps/default/keymap.c create mode 100644 keyboards/kb_elmo/67mk_e/keymaps/via/keymap.c create mode 100644 keyboards/kb_elmo/67mk_e/keymaps/via/rules.mk create mode 100644 keyboards/kb_elmo/67mk_e/readme.md create mode 100644 keyboards/kb_elmo/67mk_e/rules.mk diff --git a/keyboards/kb_elmo/67mk_e/67mk_e.c b/keyboards/kb_elmo/67mk_e/67mk_e.c new file mode 100644 index 000000000000..31254fe962e2 --- /dev/null +++ b/keyboards/kb_elmo/67mk_e/67mk_e.c @@ -0,0 +1,17 @@ +/* Copyright 2021 kb-elmo + * + * 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 "67mk_e.h" diff --git a/keyboards/kb_elmo/67mk_e/67mk_e.h b/keyboards/kb_elmo/67mk_e/67mk_e.h new file mode 100644 index 000000000000..5cf13408a922 --- /dev/null +++ b/keyboards/kb_elmo/67mk_e/67mk_e.h @@ -0,0 +1,105 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \ + k400, k401, k402, k406, k411, k412, k413, k414, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \ +} + +#define LAYOUT_65_ansi_blocker( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \ + k400, k401, k402, k406, k411, k412, k413, k414, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ____, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ + { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \ +} + +#define LAYOUT_65_ansi_blocker_split_bs( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \ + k400, k401, k402, k406, k411, k412, k413, k414, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ + { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \ +} + +#define LAYOUT_65_ansi_blocker_tsangan( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \ + k400, k401, k402, k406, k412, k413, k414, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ____, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ + { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, ____, k412, k413, k414, k415 } \ +} + +#define LAYOUT_65_iso_blocker( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k113, k213, k215, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \ + k400, k401, k402, k406, k411, k412, k413, k414, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ____, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \ +} + +#define LAYOUT_65_iso_blocker_split_bs( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k113, k213, k215, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k114, \ + k400, k401, k402, k406, k411, k412, k413, k414, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____ }, \ + { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \ +} diff --git a/keyboards/kb_elmo/67mk_e/config.h b/keyboards/kb_elmo/67mk_e/config.h new file mode 100644 index 000000000000..60c90ed522e6 --- /dev/null +++ b/keyboards/kb_elmo/67mk_e/config.h @@ -0,0 +1,44 @@ +/* +Copyright 2021 kb-elmo + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xA68C +#define PRODUCT_ID 0xD03E +#define DEVICE_VER 0x0001 +#define MANUFACTURER kb_elmo +#define PRODUCT 67mk_E + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { D7, B4, D6, D5, B0 } +#define MATRIX_COL_PINS { B3, B2, B1, D4, D2, D3, C7, C6, B5, B6, F7, F6, F5, F0, F1, F4 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Indicator LEDs */ +#define LED_CAPS_LOCK_PIN B7 diff --git a/keyboards/kb_elmo/67mk_e/info.json b/keyboards/kb_elmo/67mk_e/info.json new file mode 100644 index 000000000000..3cb6cd04e805 --- /dev/null +++ b/keyboards/kb_elmo/67mk_e/info.json @@ -0,0 +1,440 @@ +{ + "keyboard_name": "67mk_e", + "url": "", + "maintainer": "kb-elmo", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/kb_elmo/67mk_e/keymaps/default/keymap.c b/keyboards/kb_elmo/67mk_e/keymaps/default/keymap.c new file mode 100644 index 000000000000..0da6b59a0065 --- /dev/null +++ b/keyboards/kb_elmo/67mk_e/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + 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_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kb_elmo/67mk_e/keymaps/via/keymap.c b/keyboards/kb_elmo/67mk_e/keymaps/via/keymap.c new file mode 100644 index 000000000000..4b9cb0fcc2c2 --- /dev/null +++ b/keyboards/kb_elmo/67mk_e/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + 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_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, 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 + ), + [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 + ) +}; diff --git a/keyboards/kb_elmo/67mk_e/keymaps/via/rules.mk b/keyboards/kb_elmo/67mk_e/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/kb_elmo/67mk_e/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kb_elmo/67mk_e/readme.md b/keyboards/kb_elmo/67mk_e/readme.md new file mode 100644 index 000000000000..ddf931655160 --- /dev/null +++ b/keyboards/kb_elmo/67mk_e/readme.md @@ -0,0 +1,21 @@ +# 67mk_E + +![67mk_e](https://i.imgur.com/EnMy6IYl.jpg) + +A simple "no frills" drop-in replacement PCB for the KBDfans 67mkII / 67lite + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: 67mk_E rev.1 PCB +* Hardware Availability: [Open source project](https://github.com/kb-elmo/67mk_e) + +Make example for this keyboard (after setting up your build environment): + + make kb_elmo/67mk_e:default + +Flashing example for this keyboard: + + make kb_elmo/67mk_e:default:flash + +**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled Reset) or hold down the top left key while plugging in the board. + +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). diff --git a/keyboards/kb_elmo/67mk_e/rules.mk b/keyboards/kb_elmo/67mk_e/rules.mk new file mode 100644 index 000000000000..042f4691fe19 --- /dev/null +++ b/keyboards/kb_elmo/67mk_e/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_ansi_blocker_tsangan 65_iso_blocker 65_iso_blocker_split_bs From 07e2c11e55dc581b2dde88562fe1a66e7d70058a Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Sat, 7 Aug 2021 16:57:14 +0200 Subject: [PATCH 175/328] [Keyboard] fixes for KBD67 rev2 (#13906) --- keyboards/kbdfans/kbd67/rev2/config.h | 17 ++++++++--------- keyboards/kbdfans/kbd67/rev2/rev2.c | 13 +------------ keyboards/kbdfans/kbd67/rev2/rules.mk | 2 +- 3 files changed, 10 insertions(+), 22 deletions(-) diff --git a/keyboards/kbdfans/kbd67/rev2/config.h b/keyboards/kbdfans/kbd67/rev2/config.h index df5c9baba1f0..ce6c990d693f 100644 --- a/keyboards/kbdfans/kbd67/rev2/config.h +++ b/keyboards/kbdfans/kbd67/rev2/config.h @@ -37,25 +37,24 @@ along with this program. If not, see . /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW +/* Debouncing reduces chatter */ +#define DEBOUNCE 5 + +/* indicators */ +#define LED_CAPS_LOCK_PIN D4 +#define LED_PIN_ON_STATE 0 + /* number of backlight levels */ #define BACKLIGHT_PIN B5 #ifdef BACKLIGHT_PIN #define BACKLIGHT_LEVELS 3 #endif -/* 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 #define RGB_DI_PIN E2 #ifdef RGB_DI_PIN #define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 20 +#define RGBLED_NUM 16 #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/kbdfans/kbd67/rev2/rev2.c b/keyboards/kbdfans/kbd67/rev2/rev2.c index 10f848d2f94c..803d923b9222 100644 --- a/keyboards/kbdfans/kbd67/rev2/rev2.c +++ b/keyboards/kbdfans/kbd67/rev2/rev2.c @@ -1,12 +1 @@ -#include "rev2.h" -void matrix_init_kb(void) { - setPinOutput(D4); - matrix_init_user(); -} -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if(res) { - writePin(D4, !led_state.caps_lock); - } - return res; -} +#include "rev2.h" \ No newline at end of file diff --git a/keyboards/kbdfans/kbd67/rev2/rules.mk b/keyboards/kbdfans/kbd67/rev2/rules.mk index a51b306da03f..280e0b41ec6d 100644 --- a/keyboards/kbdfans/kbd67/rev2/rules.mk +++ b/keyboards/kbdfans/kbd67/rev2/rules.mk @@ -17,7 +17,7 @@ BOOTLOADER = atmel-dfu BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug +CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend From 34689e348fe6025006e62eaa1a08099cbbcf3eb9 Mon Sep 17 00:00:00 2001 From: peott-fr <70998091+peott-fr@users.noreply.github.com> Date: Sat, 7 Aug 2021 20:24:24 -0700 Subject: [PATCH 176/328] [Keyboard] Adding my Nyquist keymap (#13858) --- .../keebio/nyquist/keymaps/peott-fr/keymap.c | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 keyboards/keebio/nyquist/keymaps/peott-fr/keymap.c diff --git a/keyboards/keebio/nyquist/keymaps/peott-fr/keymap.c b/keyboards/keebio/nyquist/keymaps/peott-fr/keymap.c new file mode 100644 index 000000000000..5788e7d210d6 --- /dev/null +++ b/keyboards/keebio/nyquist/keymaps/peott-fr/keymap.c @@ -0,0 +1,104 @@ +/* Copyright 2021 Pierre-Emmanuel Ott + * + * 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 + +/* This keymap is based on a) intuitive layout and b) least amount of layers required for the bare minimum amount of keys. + * The first layer has most symbols and the usual QWERTY layout, along with all mods. This is similar to what one may make on a Preonic. + * Second layer is my left-hand layer: if the right hand is on the mouse, this layer has arrows and other keys on the left-hand. This also has a numpad. + * Last layer is for Functions keys and keyboard functions. + * + * Note that 'Reset' appears twice: on Nyquist both halves need to be flashed, so we need the full Reset shortcut to be available from any given single half. + */ + +enum custom_layers { + _QWERTY, + _LEFTHAND, + _FUNC +}; + +#define SPC_LFT LT(_LEFTHAND, KC_SPC) +#define BSP_FUNC LT(_FUNC, KC_BSPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Base/Qwerty layer + * .----------------------------------------. .-----------------------------------------. + * | ~ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | A | S | D | F | G | | H | J | K | L | ; | " | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * |Lsft(| Z | X | C | V | B | | N | M | , | . | / |Rsft) | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * |LCtrl| LGui | LAlt | Del | Spc/LftHnd | | Bckpc/Func | Left | Down | Up |Right | + * '----------------------------------------' '-----------------------------------------' + */ + + [_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + 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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + LCTL_T(KC_MPRV), LGUI_T(KC_MPLY), LALT_T(KC_MNXT), KC_DEL, SPC_LFT, SPC_LFT, BSP_FUNC, BSP_FUNC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + +/* Left hand layer + * .-----------------------------------------. .-----------------------------------------. + * | + | | | | | Rst | | NumLk| / | * | - | | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Home | [ | ] | Up | PgUp | | 7 | 8 | 9 | + | | ] | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | End | Left | Down | Right| PgDn | | 4 | 5 | 6 | , | | Enter| + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Calc | MyPC |PrtScr| Enter|BckSpc| | 1 | 2 | 3 | = | PgUp | Home | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Mute | | | | | | 0 | . | Enter| PgDn | End | + * '-----------------------------------------' `-----------------------------------------' + */ + + [_LEFTHAND] = LAYOUT( + KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_BSLS, + KC_TRNS, KC_TRNS, KC_LBRC, KC_UP, KC_RBRC, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, KC_RBRC, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PCMM, KC_TRNS, KC_ENT, + KC_TRNS, KC_CALC, KC_MYCM, KC_PSCR, KC_ENT, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_PGUP, KC_HOME, + KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PGDN, KC_END + ), + +/* Func/Numpad layer + * .-----------------------------------------. .-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | RGBtg| | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | Rst | + * '-----------------------------------------' `-----------------------------------------' +*/ + + + [_FUNC] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), +}; \ No newline at end of file From 27d0844efb9f7e11f4e39d9fc710269cedbdd22b Mon Sep 17 00:00:00 2001 From: Pascal Pfeil Date: Sun, 8 Aug 2021 05:37:13 +0200 Subject: [PATCH 177/328] [Keyboard] Clean up lfkpad and add keymap (#13881) Co-authored-by: Drashna Jaelre --- .../lfkpad/keymaps/pascalpfeil/config.h | 30 ++++++ .../lfkpad/keymaps/pascalpfeil/keymap.c | 73 +++++++++++++ .../lfkpad/keymaps/pascalpfeil/rules.mk | 2 + keyboards/lfkeyboards/lfkpad/lfkpad.c | 102 ------------------ keyboards/lfkeyboards/lfkpad/lfkpad.h | 36 ------- keyboards/lfkeyboards/lfkpad/rules.mk | 2 +- 6 files changed, 106 insertions(+), 139 deletions(-) create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/config.h create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/rules.mk diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/config.h b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/config.h new file mode 100644 index 000000000000..a121543417a3 --- /dev/null +++ b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/config.h @@ -0,0 +1,30 @@ +/* Copyright 2021 Pascal Pfeil + * + * 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 + +/* 1000Hz USB polling */ +#define USB_POLLING_INTERVAL_MS 1 + +/* Send up to 4 key press events per scan */ +#define QMK_KEYS_PER_SCAN 4 + +/* Force NKRO on boot up */ +#define FORCE_NKRO + +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + +#define RGB_DISABLE_TIMEOUT 900000 diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c new file mode 100644 index 000000000000..b2b97f442d4e --- /dev/null +++ b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c @@ -0,0 +1,73 @@ +/* Copyright 2021 Pascal Pfeil + * + * 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_numpad_6x4( + KC_ESC, KC_TAB, KC_BSPC, MO(1), + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ), + + /* RGB */ + [1] = LAYOUT_numpad_6x4( + RGB_SAI, RGB_VAI, RGB_HUI, _______, + RGB_SAD, RGB_VAD, RGB_HUD, RESET, + RGB_M_X, RGB_M_G, RGB_MOD, + RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_RMOD, + RGB_M_P, RGB_M_B, RGB_M_R, + XXXXXXX, XXXXXXX, RGB_TOG + ), + + /* VIA wants four keymaps */ + [2] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), + + /* VIA wants four keymaps */ + [3] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), +}; + +const uint8_t number_leds[] = {8, 9, 10, 11, 12, 13, 15, 16, 17}; +const uint8_t number_leds_size = sizeof(number_leds) / sizeof(uint8_t); + +bool led_update_user(led_t led_state) { + for (uint8_t i = 0; i < number_leds_size; i++) + if (led_state.num_lock) + // set to whatever the other leds are doing + // this is needed so that upon disabling num lock, the leds don't stay red + rgblight_sethsv_at(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val(), numer_leds[i]); + else + rgblight_setrgb_red_at(numer_leds[i]); // set to red + + return true; +} diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/rules.mk b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/lfkeyboards/lfkpad/lfkpad.c b/keyboards/lfkeyboards/lfkpad/lfkpad.c index b91b7da67d40..fffa26ca3a5f 100644 --- a/keyboards/lfkeyboards/lfkpad/lfkpad.c +++ b/keyboards/lfkeyboards/lfkpad/lfkpad.c @@ -8,19 +8,9 @@ #include "TWIlib.h" #include "lighting.h" -uint16_t click_hz = CLICK_HZ; -uint16_t click_time = CLICK_MS; -uint8_t click_toggle = CLICK_ENABLED; - void matrix_init_kb(void) { matrix_init_user(); -#ifndef AUDIO_ENABLE - // If we're not using the audio pin, drive it low - setPinOutput(C6); - writePinLow(C6); -#endif - #ifdef ISSI_ENABLE issi_init(); #endif @@ -68,97 +58,6 @@ void matrix_scan_kb(void) { matrix_scan_user(); } -void click(uint16_t freq, uint16_t duration) { -#ifdef AUDIO_ENABLE - if (freq >= 100 && freq <= 20000 && duration < 100) { - play_note(freq, 10); - - for (uint16_t i = 0; i < duration; i++) { - _delay_ms(1); - } - - stop_all_notes(); - } -#endif -} - -bool process_record_kb(uint16_t keycode, keyrecord_t* record) { - if (click_toggle && record->event.pressed) { - click(click_hz, click_time); - } - - if (keycode == RESET) { - reset_keyboard_kb(); - } - - return process_record_user(keycode, record); -} - -void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) { -#ifdef AUDIO_ENABLE - int8_t sign = 1; -#endif - - if (id == LFK_ESC_TILDE) { - // Send ~ on shift-esc - void (*method)(uint8_t) = (event->event.pressed) ? &add_key : &del_key; - uint8_t shifted = get_mods() & MOD_MASK_SHIFT; - - if (layer_state == 0) { - method(shifted ? KC_GRAVE : KC_ESCAPE); - } else { - method(shifted ? KC_ESCAPE : KC_GRAVE); - } - send_keyboard_report(); - } else if (event->event.pressed) { - switch (id) { - case LFK_SET_DEFAULT_LAYER: - // set/save the current base layer to eeprom, falls through to LFK_CLEAR - eeconfig_update_default_layer(1UL << opt); - default_layer_set(1UL << opt); - case LFK_CLEAR: - // Go back to default layer - layer_clear(); - break; -#ifdef AUDIO_ENABLE - case LFK_CLICK_FREQ_LOWER: - sign = -1; // continue to next statement - case LFK_CLICK_FREQ_HIGHER: - click_hz += sign * 100; - click(click_hz, click_time); - break; - case LFK_CLICK_TOGGLE: - if (click_toggle) { - click_toggle = 0; - click(4000, 100); - click(1000, 100); - } else { - click_toggle = 1; - click(1000, 100); - click(4000, 100); - } - break; - case LFK_CLICK_TIME_SHORTER: - sign = -1; // continue to next statement - case LFK_CLICK_TIME_LONGER: - click_time += sign; - click(click_hz, click_time); - break; -#endif - } - } -} - -void reset_keyboard_kb() { -#ifdef WATCHDOG_ENABLE - MCUSR = 0; - wdt_disable(); - wdt_reset(); -#endif - - reset_keyboard(); -} - // LFK lighting info const uint8_t rgb_matrices[] = { 0, 1 }; const uint8_t rgb_sequence[] = { @@ -168,7 +67,6 @@ const uint8_t rgb_sequence[] = { 17, 18, 9, 8, 19, 21, 11, 22, 14, 12, - 16, 26, 4, 25, 13, 24, diff --git a/keyboards/lfkeyboards/lfkpad/lfkpad.h b/keyboards/lfkeyboards/lfkpad/lfkpad.h index 0f34150db99e..5ca8a3c50d0f 100644 --- a/keyboards/lfkeyboards/lfkpad/lfkpad.h +++ b/keyboards/lfkeyboards/lfkpad/lfkpad.h @@ -2,42 +2,6 @@ #include "quantum.h" -typedef struct RGB_Color { - uint16_t red; - uint16_t green; - uint16_t blue; -} RGB_Color; - -typedef struct Layer_Info { - uint32_t layer; - uint32_t mask; - RGB_Color color; -} Layer_Info; - -extern const uint32_t layer_count; -extern const Layer_Info layer_info[]; - -enum action_functions { - LFK_CLEAR = 0, // Resets all layers - LFK_ESC_TILDE, // esc+lshift = ~ - LFK_SET_DEFAULT_LAYER, // changes and saves current base layer to eeprom - LFK_CLICK_TOGGLE, // Adjusts click duration - LFK_CLICK_FREQ_HIGHER, // Adjusts click frequency - LFK_CLICK_FREQ_LOWER, // Adjusts click frequency - LFK_CLICK_TIME_LONGER, // Adjusts click duration - LFK_CLICK_TIME_SHORTER, // Adjusts click duration - LFK_DEBUG_SETTINGS, // prints LED and click settings to HID - LFK_LED_TEST // cycles through switch and RGB LEDs -}; - -#define CLICK_HZ 500 -#define CLICK_MS 2 -#define CLICK_ENABLED 0 - -void reset_keyboard_kb(void); -void click(uint16_t freq, uint16_t duration); - -// readability #define ___ KC_NO #define LAYOUT_numpad_6x4( \ diff --git a/keyboards/lfkeyboards/lfkpad/rules.mk b/keyboards/lfkeyboards/lfkpad/rules.mk index 91d754803782..13951e4c6819 100644 --- a/keyboards/lfkeyboards/lfkpad/rules.mk +++ b/keyboards/lfkeyboards/lfkpad/rules.mk @@ -25,7 +25,7 @@ SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base +RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lfkeyboards, not qmk base MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 From 41d854048c2d11400a753c30aba87f5fd2c37eca Mon Sep 17 00:00:00 2001 From: jpuerto96 Date: Sun, 8 Aug 2021 00:12:55 -0400 Subject: [PATCH 178/328] [Keyboard] Gorthage Truck - New PCB (#13909) Co-authored-by: Ryan --- keyboards/gorthage_truck/config.h | 60 +++++++++++++++ keyboards/gorthage_truck/gorthage_truck.c | 17 +++++ keyboards/gorthage_truck/gorthage_truck.h | 75 +++++++++++++++++++ keyboards/gorthage_truck/info.json | 36 +++++++++ keyboards/gorthage_truck/keymaps/10u/keymap.c | 31 ++++++++ .../gorthage_truck/keymaps/10u/readme.md | 1 + keyboards/gorthage_truck/keymaps/7u/keymap.c | 31 ++++++++ keyboards/gorthage_truck/keymaps/7u/readme.md | 1 + .../gorthage_truck/keymaps/default/keymap.c | 42 +++++++++++ .../gorthage_truck/keymaps/default/readme.md | 1 + keyboards/gorthage_truck/readme.md | 19 +++++ keyboards/gorthage_truck/rules.mk | 24 ++++++ 12 files changed, 338 insertions(+) create mode 100644 keyboards/gorthage_truck/config.h create mode 100644 keyboards/gorthage_truck/gorthage_truck.c create mode 100644 keyboards/gorthage_truck/gorthage_truck.h create mode 100644 keyboards/gorthage_truck/info.json create mode 100644 keyboards/gorthage_truck/keymaps/10u/keymap.c create mode 100644 keyboards/gorthage_truck/keymaps/10u/readme.md create mode 100644 keyboards/gorthage_truck/keymaps/7u/keymap.c create mode 100644 keyboards/gorthage_truck/keymaps/7u/readme.md create mode 100644 keyboards/gorthage_truck/keymaps/default/keymap.c create mode 100644 keyboards/gorthage_truck/keymaps/default/readme.md create mode 100644 keyboards/gorthage_truck/readme.md create mode 100644 keyboards/gorthage_truck/rules.mk diff --git a/keyboards/gorthage_truck/config.h b/keyboards/gorthage_truck/config.h new file mode 100644 index 000000000000..46a928b9d639 --- /dev/null +++ b/keyboards/gorthage_truck/config.h @@ -0,0 +1,60 @@ +/* +Copyright 2021 s8erdude + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xB33F +#define PRODUCT_ID 0x58E4 +#define DEVICE_VER 0x0001 +#define MANUFACTURER s8erdude +#define PRODUCT gorthage_truck + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 9 + +/* + * 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 { C6, B6, B5, B4, C7, B3, B7, D7} +#define MATRIX_COL_PINS { F0, F1, F4, F7, D6, E6, B0, B1, B2} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +// LEFT -> RIGHT +// D5, D3, D2 +#define LED_NUM_LOCK_PIN D5 +#define LED_CAPS_LOCK_PIN D3 +#define LED_SCROLL_LOCK_PIN D2 + +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F6 } diff --git a/keyboards/gorthage_truck/gorthage_truck.c b/keyboards/gorthage_truck/gorthage_truck.c new file mode 100644 index 000000000000..c6f75d72706c --- /dev/null +++ b/keyboards/gorthage_truck/gorthage_truck.c @@ -0,0 +1,17 @@ +/* Copyright 2021 s8erdude + * + * 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 "gorthage_truck.h" diff --git a/keyboards/gorthage_truck/gorthage_truck.h b/keyboards/gorthage_truck/gorthage_truck.h new file mode 100644 index 000000000000..2b9c3b9834aa --- /dev/null +++ b/keyboards/gorthage_truck/gorthage_truck.h @@ -0,0 +1,75 @@ +/* Copyright 2021 s8erdude + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_3u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k46, k47, k48, \ + k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \ + k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \ + k30, k31, k32, k34, k70, k71, k73, k74, k75, k76, k77, k78 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, KC_NO, k34, KC_NO, KC_NO, KC_NO }, \ + { k40, k41, k42, k43, k44, KC_NO, k46, k47, k48 }, \ + { k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { k70, k71, KC_NO, k73, k74, k75, k76, k77, k78} \ +} + +#define LAYOUT_7u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k46, k47, k48, \ + k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \ + k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \ + k30, k31, k32, k37, k73, k74, k75, k76, k77, k78 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, KC_NO, KC_NO, KC_NO, KC_NO, k37 }, \ + { k40, k41, k42, k43, k44, KC_NO, k46, k47, k48 }, \ + { k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { KC_NO, KC_NO, KC_NO, k73, k74, k75, k76, k77, k78} \ +} + +#define LAYOUT_10u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k46, k47, k48, \ + k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \ + k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \ + k30, k36, k73, k74, k75, k76, k77, k78 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k36, KC_NO }, \ + { k40, k41, k42, k43, k44, KC_NO, k46, k47, k48 }, \ + { k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { KC_NO, KC_NO, KC_NO, k73, k74, k75, k76, k77, k78} \ +} diff --git a/keyboards/gorthage_truck/info.json b/keyboards/gorthage_truck/info.json new file mode 100644 index 000000000000..25afcc76eeed --- /dev/null +++ b/keyboards/gorthage_truck/info.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "gorthage_truck", + "url": "https://github.com/jpuerto96", + "maintainer": "s8erdude", + "width": 17, + "height": 4, + "layouts": { + "LAYOUT_3u": { + "layout": [ + {"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, + {"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1}, + {"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2}, + {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, + {"label":"KC_LCTL", "x":0, "y":3, "w":1.25}, {"label":"KC_LALT", "x":1.25, "y":3, "w":1.25}, {"label":"KC_LGUI", "x":2.5, "y":3}, {"label":"KC_SPC", "x":3.5, "y":3, "w":3}, {"label":"KC_ENT", "x":6.5, "y":3, "w":3}, {"label":"KC_RGUI", "x":9.5, "y":3, "w":1.25}, {"label":"KC_RALT", "x":10.75, "y":3, "w":1.25} + ] + }, + "LAYOUT_7u": { + "layout": [ + {"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, + {"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1}, + {"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2}, + {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, + {"label":"KC_LCTL", "x":0, "y":3, "w":1.25}, {"label":"KC_LALT", "x":1.25, "y":3, "w":1.25}, {"label":"KC_LGUI", "x":2.5, "y":3, "w":1.25}, {"label":"KC_SPC", "x":3.75, "y":3, "w":7}, {"label":"KC_RGUI", "x":10.75, "y":3, "w":1.25} + ] + }, + "LAYOUT_10u": { + "layout": [ + {"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, + {"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1}, + {"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2}, + {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, + {"label":"KC_LCTL", "x":0, "y":3}, {"label":"KC_SPC", "x":1, "y":3, "w":10}, {"label":"KC_RGUI", "x":11, "y":3} + ] + } + } +} diff --git a/keyboards/gorthage_truck/keymaps/10u/keymap.c b/keyboards/gorthage_truck/keymaps/10u/keymap.c new file mode 100644 index 000000000000..01c6c3d7b31c --- /dev/null +++ b/keyboards/gorthage_truck/keymaps/10u/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2021 s8erdude + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_10u( +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_MINUS, KC_1, KC_2, KC_3, +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_EQUAL, KC_4, KC_5, KC_6, +KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9, +KC_LGUI, KC_RSFT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0 +)}; diff --git a/keyboards/gorthage_truck/keymaps/10u/readme.md b/keyboards/gorthage_truck/keymaps/10u/readme.md new file mode 100644 index 000000000000..ba57cd8dc7c9 --- /dev/null +++ b/keyboards/gorthage_truck/keymaps/10u/readme.md @@ -0,0 +1 @@ +# The default keymap for gorthage_truck diff --git a/keyboards/gorthage_truck/keymaps/7u/keymap.c b/keyboards/gorthage_truck/keymaps/7u/keymap.c new file mode 100644 index 000000000000..45289d2d8c3d --- /dev/null +++ b/keyboards/gorthage_truck/keymaps/7u/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2021 s8erdude + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_7u( +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_MINUS, KC_1, KC_2, KC_3, +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_EQUAL, KC_4, KC_5, KC_6, +KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9, +KC_LGUI, KC_LCTL, KC_LSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0 +)}; diff --git a/keyboards/gorthage_truck/keymaps/7u/readme.md b/keyboards/gorthage_truck/keymaps/7u/readme.md new file mode 100644 index 000000000000..ba57cd8dc7c9 --- /dev/null +++ b/keyboards/gorthage_truck/keymaps/7u/readme.md @@ -0,0 +1 @@ +# The default keymap for gorthage_truck diff --git a/keyboards/gorthage_truck/keymaps/default/keymap.c b/keyboards/gorthage_truck/keymaps/default/keymap.c new file mode 100644 index 000000000000..877540276a4a --- /dev/null +++ b/keyboards/gorthage_truck/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2021 s8erdude + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_3u( +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_MINUS, KC_1, KC_2, KC_3, +KC_SLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_EQUAL, KC_4, KC_5, KC_6, +KC_NLCK, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9, +KC_CLCK, KC_LCTL, KC_LSFT, KC_SPC, KC_RSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0 +)}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ +if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/gorthage_truck/keymaps/default/readme.md b/keyboards/gorthage_truck/keymaps/default/readme.md new file mode 100644 index 000000000000..ba57cd8dc7c9 --- /dev/null +++ b/keyboards/gorthage_truck/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for gorthage_truck diff --git a/keyboards/gorthage_truck/readme.md b/keyboards/gorthage_truck/readme.md new file mode 100644 index 000000000000..047aa0434aea --- /dev/null +++ b/keyboards/gorthage_truck/readme.md @@ -0,0 +1,19 @@ +# gorthage_truck + +This PCB is a drop-in ortholinear replacement for the Garbage Truck keyboard case. It supports 2x3u split bars, 7u, or 10u. + +* Keyboard Maintainer: [s8erdude](https://github.com/jpuerto96) +* Hardware Supported: Gorthage Truck PCB +* Hardware Availability: [Open Source PCB](https://github.com/jpuerto96/gorthage_truck) + +Make example for this keyboard (after setting up your build environment): + + make gorthage_truck:default + +Flashing example for this keyboard: + + make gorthage_truck: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). + +To reset the board, you will want to short the pad labeled RESET1 on the back (near the MCU). diff --git a/keyboards/gorthage_truck/rules.mk b/keyboards/gorthage_truck/rules.mk new file mode 100644 index 000000000000..647c62c45251 --- /dev/null +++ b/keyboards/gorthage_truck/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes From bc2b73f997743a164bfa19541a25209b4f276771 Mon Sep 17 00:00:00 2001 From: 8bits4ever <87928173+8bits4ever@users.noreply.github.com> Date: Sun, 8 Aug 2021 06:15:23 +0200 Subject: [PATCH 179/328] [Keyboard] a1200 converter minor changes (#13848) Co-authored-by: Ryan --- keyboards/converter/a1200/config.h | 2 +- keyboards/converter/a1200/info.json | 110 ++++++++++++++++-- .../converter/a1200/keymaps/default/keymap.c | 12 +- keyboards/converter/a1200/readme.md | 7 +- 4 files changed, 114 insertions(+), 17 deletions(-) diff --git a/keyboards/converter/a1200/config.h b/keyboards/converter/a1200/config.h index 52771d70a242..19e7ca9b95a9 100644 --- a/keyboards/converter/a1200/config.h +++ b/keyboards/converter/a1200/config.h @@ -24,7 +24,7 @@ along with this program. If not, see . #define PRODUCT_ID 0x0000 #define DEVICE_VER 0x0001 #define MANUFACTURER 8bits4ever -#define PRODUCT MiSS-1200 +#define PRODUCT Amiga-1200 /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/converter/a1200/info.json b/keyboards/converter/a1200/info.json index f3df9c947dc4..03e39b757972 100644 --- a/keyboards/converter/a1200/info.json +++ b/keyboards/converter/a1200/info.json @@ -4,13 +4,109 @@ "width": 22.5, "height": 6.5, "layouts": { - "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, - {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"`", "x":13, "y":1.5}, {"label":"Backspace", "x":14, "y":1.5}, {"label":"Del", "x":15.25, "y":1.5, "w":1.5}, {"label":"Help", "x":16.75, "y":1.5, "w":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, - {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5}, - {"label":"CTRL", "x":0, "y":3.5}, {"label":"Caps Lock", "x":1, "y":3.5}, {"label":"A", "x":2, "y":3.5}, {"label":"S", "x":3, "y":3.5}, {"label":"D", "x":4, "y":3.5}, {"label":"F", "x":5, "y":3.5}, {"label":"G", "x":6, "y":3.5}, {"label":"H", "x":7, "y":3.5}, {"label":"J", "x":8, "y":3.5}, {"label":"K", "x":9, "y":3.5}, {"label":"L", "x":10, "y":3.5}, {"label":":", "x":11, "y":3.5}, {"label":"\"", "x":12, "y":3.5}, {"label":"~", "x":13, "y":3.5}, {"label":"Enter", "x":14, "y":2.5, "w":1, "h":2}, {"label":"\u2191", "x":16.25, "y":3.5}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"+", "x":21.5, "y":3.5}, - {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2190", "x":15.25, "y":4.5}, {"label":"\u2193", "x":16.25, "y":4.5}, {"label":"\u2192", "x":17.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, - {"label":"alt", "x":1, "y":5.5, "w":1.5}, {"label":"Amiga", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Amiga", "x":11, "y":5.5, "w":1.5}, {"label":"Alt", "x":12.5, "y":5.5, "w":1.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}] + "LAYOUT_default": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6, "y":0}, + {"label":"F6", "x":8, "y":0}, + {"label":"F7", "x":9, "y":0}, + {"label":"F8", "x":10, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + + {"label":"~", "x":0, "y":1.5}, + {"label":"!", "x":1, "y":1.5}, + {"label":"@", "x":2, "y":1.5}, + {"label":"#", "x":3, "y":1.5}, + {"label":"$", "x":4, "y":1.5}, + {"label":"%", "x":5, "y":1.5}, + {"label":"^", "x":6, "y":1.5}, + {"label":"&", "x":7, "y":1.5}, + {"label":"*", "x":8, "y":1.5}, + {"label":"(", "x":9, "y":1.5}, + {"label":")", "x":10, "y":1.5}, + {"label":"_", "x":11, "y":1.5}, + {"label":"+", "x":12, "y":1.5}, + {"label":"`", "x":13, "y":1.5}, + {"label":"Backspace", "x":14, "y":1.5}, + {"label":"Del", "x":15.25, "y":1.5, "w":1.5}, + {"label":"Help", "x":16.75, "y":1.5, "w":1.5}, + {"label":"Num Lock", "x":18.5, "y":1.5}, + {"label":"/", "x":19.5, "y":1.5}, + {"label":"*", "x":20.5, "y":1.5}, + {"label":"-", "x":21.5, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"{", "x":11.5, "y":2.5}, + {"label":"}", "x":12.5, "y":2.5}, + {"label":"7", "x":18.5, "y":2.5}, + {"label":"8", "x":19.5, "y":2.5}, + {"label":"9", "x":20.5, "y":2.5}, + {"label":"+", "x":21.5, "y":2.5}, + + {"label":"CTRL", "x":0, "y":3.5}, + {"label":"Caps Lock", "x":1, "y":3.5}, + {"label":"A", "x":2, "y":3.5}, + {"label":"S", "x":3, "y":3.5}, + {"label":"D", "x":4, "y":3.5}, + {"label":"F", "x":5, "y":3.5}, + {"label":"G", "x":6, "y":3.5}, + {"label":"H", "x":7, "y":3.5}, + {"label":"J", "x":8, "y":3.5}, + {"label":"K", "x":9, "y":3.5}, + {"label":"L", "x":10, "y":3.5}, + {"label":":", "x":11, "y":3.5}, + {"label":"\"", "x":12, "y":3.5}, + {"label":"~", "x":13, "y":3.5}, + {"label":"Enter", "x":14, "y":2.5, "w":1, "h":2}, + {"label":"\u2191", "x":16.25, "y":3.5}, + {"label":"4", "x":18.5, "y":3.5}, + {"label":"5", "x":19.5, "y":3.5}, + {"label":"6", "x":20.5, "y":3.5}, + {"label":"+", "x":21.5, "y":3.5}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":"<", "x":9.25, "y":4.5}, + {"label":">", "x":10.25, "y":4.5}, + {"label":"?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"\u2190", "x":15.25, "y":4.5}, + {"label":"\u2193", "x":16.25, "y":4.5}, + {"label":"\u2192", "x":17.25, "y":4.5}, + {"label":"1", "x":18.5, "y":4.5}, + {"label":"2", "x":19.5, "y":4.5}, + {"label":"3", "x":20.5, "y":4.5}, + {"label":"Enter", "x":21.5, "y":4.5, "h":2}, + + {"label":"Alt", "x":1, "y":5.5, "w":1.5}, + {"label":"Amiga", "x":2.5, "y":5.5, "w":1.5}, + {"label":"Space", "x":4, "y":5.5, "w":7}, + {"label":"Amiga", "x":11, "y":5.5, "w":1.5}, + {"label":"Alt", "x":12.5, "y":5.5, "w":1.5}, + {"label":"0", "x":18.5, "y":5.5, "w":2}, + {"label":".", "x":20.5, "y":5.5}] } } } diff --git a/keyboards/converter/a1200/keymaps/default/keymap.c b/keyboards/converter/a1200/keymaps/default/keymap.c index 0b5713a2ec50..4f7c7be8430b 100644 --- a/keyboards/converter/a1200/keymaps/default/keymap.c +++ b/keyboards/converter/a1200/keymaps/default/keymap.c @@ -27,13 +27,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, - 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_BSLS, KC_BSPC, KC_DEL, KC_TRNS, KC_NLCK, KC_SLCK, KC_PSLS, KC_PSCR, - 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_P7, KC_P8, KC_P9, KC_PMNS, - KC_LCTL, 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_NO, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_P0, KC_PDOT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NLCK, KC_SLCK, _______, KC_PSCR, + _______, _______, _______, _______, RESET,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, + _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/converter/a1200/readme.md b/keyboards/converter/a1200/readme.md index b2094c6a38b0..927e0805f731 100644 --- a/keyboards/converter/a1200/readme.md +++ b/keyboards/converter/a1200/readme.md @@ -1,6 +1,9 @@ # Amiga 1200 Keyboard Converter -Modification of the Model-M 101 membrane adapter (converter/modelm101) to work with Amiga 1200 keyboard (and possibly Amiga 500/600 too). It would be very convenient to manufacture a small PCB adapter to make easier the task of connecting the keyboard membrane and the Teensy 2.0++ board. +Modification of the Model-M 101 membrane adapter (converter/modelm101) to work with Amiga 1200 keyboard (and possibly Amiga 500/600 too). + +A small PCB adapter is needed for connecting the keyboard membrane to the Teensy 2.0++ board. A very simple example of such a board can be seen here: +https://github.com/8bits4ever/A1200-Keyboard-Adapter This adapter is meant to allow using the original Amiga keyboard as a USB input device, either with a desktop PC or a R-Pi/FPGA board hosted inside the Amiga case. @@ -19,8 +22,6 @@ Status LEDs: CapsLock +5V Pins: B6 5V ``` -Please note that some versions of Model M have LED connected with a ribbon cable, and not with separate wires. - * Keyboard Maintainer: [8bits4ever](https://github.com/8bits4ever) * Hardware Supported: Teensy 2.0++ board by PJRC * Hardware Availability: https://www.pjrc.com/store/teensypp.html From b046bffcb8367b4238273e3ccb7de9b799fbec7c Mon Sep 17 00:00:00 2001 From: Ananya Kirti Date: Sun, 8 Aug 2021 10:11:15 +0530 Subject: [PATCH 180/328] [Keyboard] Added CapsLED and ScrollLock LEDs (#13837) Co-authored-by: Drashna Jaelre --- keyboards/hp69/config.h | 4 ++++ keyboards/hp69/keymaps/via/keymap.c | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/keyboards/hp69/config.h b/keyboards/hp69/config.h index 06dd57145ca8..ba6e55f86d43 100644 --- a/keyboards/hp69/config.h +++ b/keyboards/hp69/config.h @@ -47,7 +47,11 @@ along with this program. If not, see . #define RGB_DI_PIN A3 #define RGBLED_NUM 20 #define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_SLEEP #define AUDIO_PIN A5 #define AUDIO_PIN_ALT A4 #define AUDIO_PIN_ALT_AS_NEGATIVE + +#define LED_CAPS_LOCK_PIN A6 +#define LED_SCROLL_LOCK_PIN A7 \ No newline at end of file diff --git a/keyboards/hp69/keymaps/via/keymap.c b/keyboards/hp69/keymaps/via/keymap.c index d47308c8ba22..d72bdbf0b131 100644 --- a/keyboards/hp69/keymaps/via/keymap.c +++ b/keyboards/hp69/keymaps/via/keymap.c @@ -46,4 +46,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), -}; \ No newline at end of file +}; + + +void matrix_scan_user(void) { + writePin(A7, layer_state_is(1)); +} + +bool led_update_user(led_t led_state) { + writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); + return false; +}; From bfa7449041fe5f137f37199804cd4dd9e02d47a8 Mon Sep 17 00:00:00 2001 From: Spaceman Date: Sun, 8 Aug 2021 00:42:04 -0400 Subject: [PATCH 181/328] [Keyboard] Add Pancake v2 (#13839) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- .../spaceman/pancake/{ => rev1}/config.h | 0 .../pancake/{ => rev1}/feather/config.h | 0 .../pancake/{ => rev1}/feather/rules.mk | 0 .../spaceman/pancake/{ => rev1}/info.json | 0 .../{ => rev1}/keymaps/default/keymap.c | 0 .../{ => rev1}/keymaps/default/readme.md | 0 .../pancake/{ => rev1}/keymaps/via/keymap.c | 0 .../pancake/{ => rev1}/keymaps/via/rules.mk | 0 .../pancake/{ => rev1}/promicro/config.h | 0 .../pancake/{ => rev1}/promicro/rules.mk | 0 .../spaceman/pancake/{ => rev1}/readme.md | 7 +- .../pancake/{pancake.c => rev1/rev1.c} | 2 +- .../pancake/{pancake.h => rev1/rev1.h} | 0 keyboards/spaceman/pancake/rev2/config.h | 34 ++++++++ keyboards/spaceman/pancake/rev2/info.json | 62 ++++++++++++++ .../pancake/rev2/keymaps/default/keymap.c | 84 +++++++++++++++++++ .../pancake/rev2/keymaps/default/readme.md | 3 + keyboards/spaceman/pancake/rev2/readme.md | 12 +++ keyboards/spaceman/pancake/rev2/rev2.c | 54 ++++++++++++ keyboards/spaceman/pancake/rev2/rev2.h | 31 +++++++ keyboards/spaceman/pancake/rev2/rules.mk | 25 ++++++ 21 files changed, 310 insertions(+), 4 deletions(-) rename keyboards/spaceman/pancake/{ => rev1}/config.h (100%) rename keyboards/spaceman/pancake/{ => rev1}/feather/config.h (100%) rename keyboards/spaceman/pancake/{ => rev1}/feather/rules.mk (100%) rename keyboards/spaceman/pancake/{ => rev1}/info.json (100%) rename keyboards/spaceman/pancake/{ => rev1}/keymaps/default/keymap.c (100%) rename keyboards/spaceman/pancake/{ => rev1}/keymaps/default/readme.md (100%) rename keyboards/spaceman/pancake/{ => rev1}/keymaps/via/keymap.c (100%) rename keyboards/spaceman/pancake/{ => rev1}/keymaps/via/rules.mk (100%) rename keyboards/spaceman/pancake/{ => rev1}/promicro/config.h (100%) rename keyboards/spaceman/pancake/{ => rev1}/promicro/rules.mk (100%) rename keyboards/spaceman/pancake/{ => rev1}/readme.md (62%) rename keyboards/spaceman/pancake/{pancake.c => rev1/rev1.c} (97%) rename keyboards/spaceman/pancake/{pancake.h => rev1/rev1.h} (100%) create mode 100644 keyboards/spaceman/pancake/rev2/config.h create mode 100644 keyboards/spaceman/pancake/rev2/info.json create mode 100644 keyboards/spaceman/pancake/rev2/keymaps/default/keymap.c create mode 100644 keyboards/spaceman/pancake/rev2/keymaps/default/readme.md create mode 100644 keyboards/spaceman/pancake/rev2/readme.md create mode 100644 keyboards/spaceman/pancake/rev2/rev2.c create mode 100644 keyboards/spaceman/pancake/rev2/rev2.h create mode 100644 keyboards/spaceman/pancake/rev2/rules.mk diff --git a/keyboards/spaceman/pancake/config.h b/keyboards/spaceman/pancake/rev1/config.h similarity index 100% rename from keyboards/spaceman/pancake/config.h rename to keyboards/spaceman/pancake/rev1/config.h diff --git a/keyboards/spaceman/pancake/feather/config.h b/keyboards/spaceman/pancake/rev1/feather/config.h similarity index 100% rename from keyboards/spaceman/pancake/feather/config.h rename to keyboards/spaceman/pancake/rev1/feather/config.h diff --git a/keyboards/spaceman/pancake/feather/rules.mk b/keyboards/spaceman/pancake/rev1/feather/rules.mk similarity index 100% rename from keyboards/spaceman/pancake/feather/rules.mk rename to keyboards/spaceman/pancake/rev1/feather/rules.mk diff --git a/keyboards/spaceman/pancake/info.json b/keyboards/spaceman/pancake/rev1/info.json similarity index 100% rename from keyboards/spaceman/pancake/info.json rename to keyboards/spaceman/pancake/rev1/info.json diff --git a/keyboards/spaceman/pancake/keymaps/default/keymap.c b/keyboards/spaceman/pancake/rev1/keymaps/default/keymap.c similarity index 100% rename from keyboards/spaceman/pancake/keymaps/default/keymap.c rename to keyboards/spaceman/pancake/rev1/keymaps/default/keymap.c diff --git a/keyboards/spaceman/pancake/keymaps/default/readme.md b/keyboards/spaceman/pancake/rev1/keymaps/default/readme.md similarity index 100% rename from keyboards/spaceman/pancake/keymaps/default/readme.md rename to keyboards/spaceman/pancake/rev1/keymaps/default/readme.md diff --git a/keyboards/spaceman/pancake/keymaps/via/keymap.c b/keyboards/spaceman/pancake/rev1/keymaps/via/keymap.c similarity index 100% rename from keyboards/spaceman/pancake/keymaps/via/keymap.c rename to keyboards/spaceman/pancake/rev1/keymaps/via/keymap.c diff --git a/keyboards/spaceman/pancake/keymaps/via/rules.mk b/keyboards/spaceman/pancake/rev1/keymaps/via/rules.mk similarity index 100% rename from keyboards/spaceman/pancake/keymaps/via/rules.mk rename to keyboards/spaceman/pancake/rev1/keymaps/via/rules.mk diff --git a/keyboards/spaceman/pancake/promicro/config.h b/keyboards/spaceman/pancake/rev1/promicro/config.h similarity index 100% rename from keyboards/spaceman/pancake/promicro/config.h rename to keyboards/spaceman/pancake/rev1/promicro/config.h diff --git a/keyboards/spaceman/pancake/promicro/rules.mk b/keyboards/spaceman/pancake/rev1/promicro/rules.mk similarity index 100% rename from keyboards/spaceman/pancake/promicro/rules.mk rename to keyboards/spaceman/pancake/rev1/promicro/rules.mk diff --git a/keyboards/spaceman/pancake/readme.md b/keyboards/spaceman/pancake/rev1/readme.md similarity index 62% rename from keyboards/spaceman/pancake/readme.md rename to keyboards/spaceman/pancake/rev1/readme.md index 34cf6382bcb4..2537db9eced7 100644 --- a/keyboards/spaceman/pancake/readme.md +++ b/keyboards/spaceman/pancake/rev1/readme.md @@ -2,11 +2,12 @@ Ortho 40% Ortho Keyboard with an option for the adafruit feather -Keyboard Maintainer: [Spaceman](https://github.com/Spaceman) -Hardware Availability: [GB](https://geekhack.org/index.php?topic=101371.0) +* Keyboard Maintainer: [Spaceman](https://github.com/Spaceman) +* Hardware Availability: [MKUltra.Click](https://mkultra.click/group-buy-pancake-keyboard-kit) Make example for this keyboard (after setting up your build environment): - make spaceman/pancake:default + make spaceman/pancake/rev1/feather:default + make spaceman/pancake/rev1/promicro:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/spaceman/pancake/pancake.c b/keyboards/spaceman/pancake/rev1/rev1.c similarity index 97% rename from keyboards/spaceman/pancake/pancake.c rename to keyboards/spaceman/pancake/rev1/rev1.c index d77dbfbe01e8..d22665329621 100644 --- a/keyboards/spaceman/pancake/pancake.c +++ b/keyboards/spaceman/pancake/rev1/rev1.c @@ -13,4 +13,4 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "pancake.h" +#include "rev1.h" diff --git a/keyboards/spaceman/pancake/pancake.h b/keyboards/spaceman/pancake/rev1/rev1.h similarity index 100% rename from keyboards/spaceman/pancake/pancake.h rename to keyboards/spaceman/pancake/rev1/rev1.h diff --git a/keyboards/spaceman/pancake/rev2/config.h b/keyboards/spaceman/pancake/rev2/config.h new file mode 100644 index 000000000000..a4d3b439c4bb --- /dev/null +++ b/keyboards/spaceman/pancake/rev2/config.h @@ -0,0 +1,34 @@ +/* Copyright 2020 Spaceman + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5342 // SB +#define PRODUCT_ID 0x5032 // P2 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Spaceman +#define PRODUCT Pancake 2 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_ROW_PINS { C7, C6, B6, B5 } +#define MATRIX_COL_PINS { B7, B3, B2, B1 ,B0, E6, F0, F1, F4, F5, F6, F7 } +#define UNUSED_PINS diff --git a/keyboards/spaceman/pancake/rev2/info.json b/keyboards/spaceman/pancake/rev2/info.json new file mode 100644 index 000000000000..d8451fec536b --- /dev/null +++ b/keyboards/spaceman/pancake/rev2/info.json @@ -0,0 +1,62 @@ +{ + "keyboard_name": "Pancake 2", + "keyboard_folder": "pancake/rev2", + "url": "", + "maintainer": "Spaceman", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x12": { + "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":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "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":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "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":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "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, "w":1.5}, + {"x":6.5, "y":3, "w":1.5}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3} + ] + } + } +} diff --git a/keyboards/spaceman/pancake/rev2/keymaps/default/keymap.c b/keyboards/spaceman/pancake/rev2/keymaps/default/keymap.c new file mode 100644 index 000000000000..33a27bc49166 --- /dev/null +++ b/keyboards/spaceman/pancake/rev2/keymaps/default/keymap.c @@ -0,0 +1,84 @@ + /* Copyright Spaceman 2021 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +enum layers { + _DEFAULT, + _RAISE, + _FN +}; + +#define RAISE MO(_RAISE) +#define FN MO(_FN) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Default + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | " | ; | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | FN | Lower| Space | Del | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DEFAULT] = LAYOUT_ortho_4x12( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_SCLN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT , + KC_LCTL, KC_LALT, KC_LGUI, FN, RAISE, KC_SPC, KC_SPC, KC_DEL, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | - | = | | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | [ | ] | Vol- | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | Vol+ | | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12( + 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_MINS, KC_EQL, _______, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______ +), + + /* FN + * ,-----------------------------------------------------------------------------------. + * | Reset| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | F11 | F12 | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | TRNS | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = LAYOUT_ortho_4x12( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + + +}; diff --git a/keyboards/spaceman/pancake/rev2/keymaps/default/readme.md b/keyboards/spaceman/pancake/rev2/keymaps/default/readme.md new file mode 100644 index 000000000000..7eb8cc6d8d69 --- /dev/null +++ b/keyboards/spaceman/pancake/rev2/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default keymap for Pancake + +designed by: Spaceman diff --git a/keyboards/spaceman/pancake/rev2/readme.md b/keyboards/spaceman/pancake/rev2/readme.md new file mode 100644 index 000000000000..e8b65c48881b --- /dev/null +++ b/keyboards/spaceman/pancake/rev2/readme.md @@ -0,0 +1,12 @@ +# Pancake 2 + +Ortho 40% Ortho Keyboard with an OLED Display + +* Keyboard Maintainer: [Spaceman](https://github.com/Spaceman) +* Hardware Availability: [MKUltra.Click](https://mkultra.click/pancake-2/) + +Make example for this keyboard (after setting up your build environment): + + make spaceman/pancake/rev2:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/spaceman/pancake/rev2/rev2.c b/keyboards/spaceman/pancake/rev2/rev2.c new file mode 100644 index 000000000000..c1786cb01f19 --- /dev/null +++ b/keyboards/spaceman/pancake/rev2/rev2.c @@ -0,0 +1,54 @@ +/* Copyright 2020 Spaceman + * + * 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 "rev2.h" + + +#ifdef OLED_DRIVER_ENABLE +__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} +__attribute__((weak)) void oled_task_user(void) { + static const char PROGMEM pancake_logo[] = { + 0x00, 0x00, 0x3e, 0x0a, 0x04, 0x00, 0x3c, 0x0a, 0x3c, 0x00, 0x3e, 0x0c, 0x18, 0x3e, 0x00, 0x3e, + 0x22, 0x22, 0x00, 0x3c, 0x0a, 0x3c, 0x00, 0x3e, 0x08, 0x36, 0x00, 0x3e, 0x2a, 0x22, 0x00, 0x00, + 0x00, 0x30, 0xc8, 0x84, 0x84, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x19, 0x1d, + 0x1d, 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x84, 0x84, 0xc8, 0x30, 0x00, + 0x00, 0x63, 0x94, 0x08, 0x08, 0x11, 0x71, 0x17, 0x13, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x62, + 0xe2, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x31, 0x08, 0x08, 0x94, 0x63, 0x00, + 0x00, 0x00, 0x03, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x06, 0x02, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00 }; + oled_write_raw_P(pancake_logo, sizeof(pancake_logo)); + // Host Keyboard Layer Status + oled_set_cursor(0, 4); + oled_write_P(PSTR("\nLAYER\n-----\n"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("DEFLT\n"), false); + break; + case 2: + oled_write_P(PSTR("FUNCT\n"), false); + break; + case 1: + oled_write_P(PSTR("RAISE\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); + break; + } +} +#endif diff --git a/keyboards/spaceman/pancake/rev2/rev2.h b/keyboards/spaceman/pancake/rev2/rev2.h new file mode 100644 index 000000000000..628b1b39ac60 --- /dev/null +++ b/keyboards/spaceman/pancake/rev2/rev2.h @@ -0,0 +1,31 @@ +/* Copyright 2020 Spaceman + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_4x12( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 } \ +} diff --git a/keyboards/spaceman/pancake/rev2/rules.mk b/keyboards/spaceman/pancake/rev2/rules.mk new file mode 100644 index 000000000000..5b5ccc369e69 --- /dev/null +++ b/keyboards/spaceman/pancake/rev2/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +OLED_DRIVER_ENABLE = yes + +LAYOUTS = ortho_4x12 From ac2090bf4e8f97d416cc10d73044af8585b51055 Mon Sep 17 00:00:00 2001 From: datafx <2432997+datafx@users.noreply.github.com> Date: Sun, 8 Aug 2021 00:45:43 -0400 Subject: [PATCH 182/328] [Keyboard] Add kbdfans kbd67 mkii rgb v3 (#13714) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c | 136 +++---------------- keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.h | 38 ++++-- keyboards/kbdfans/kbd67/mkiirgb/readme.md | 6 +- keyboards/kbdfans/kbd67/mkiirgb/v1/.noci | 0 keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c | 124 +++++++++++++++++ keyboards/kbdfans/kbd67/mkiirgb/v1/v1.h | 32 +++++ keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c | 124 +++++++++++++++++ keyboards/kbdfans/kbd67/mkiirgb/v2/v2.h | 32 +++++ keyboards/kbdfans/kbd67/mkiirgb/v3/config.h | 75 ++++++++++ keyboards/kbdfans/kbd67/mkiirgb/v3/readme.md | 13 ++ keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk | 28 ++++ keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c | 126 +++++++++++++++++ keyboards/kbdfans/kbd67/mkiirgb/v3/v3.h | 33 +++++ 13 files changed, 632 insertions(+), 135 deletions(-) delete mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v1/.noci create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v1/v1.h create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v2/v2.h create mode 100755 keyboards/kbdfans/kbd67/mkiirgb/v3/config.h create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v3/readme.md create mode 100755 keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk create mode 100755 keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c create mode 100755 keyboards/kbdfans/kbd67/mkiirgb/v3/v3.h diff --git a/keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c b/keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c index 323cb2384818..13684ce0908f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c @@ -1,119 +1,17 @@ -#include "mkiirgb.h" -#ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { - - {0, C8_8, C7_8, C6_8}, // LA17 - {0, C9_8, C7_7, C6_7}, // LA16 - {0, C9_7, C8_7, C6_6}, // LA15 - {0, C9_6, C8_6, C7_6}, // LA14 - {0, C9_5, C8_5, C7_5}, // LA13 - {0, C9_4, C8_4, C7_4}, // LA12 - {0, C9_3, C8_3, C7_3}, // LA11 - {0, C9_2, C8_2, C7_2}, // LA10 - {0, C9_1, C8_1, C7_1}, // LA9 - {0, C2_9, C3_9, C4_9}, // LB0 - {0, C1_9, C3_10, C4_10}, // LB1 - {0, C1_10, C2_10, C4_11}, // LB2 - {0, C1_11, C2_11, C3_11}, // LB3 - {0, C1_13, C2_13, C3_13}, // LB5 - {0, C1_14, C2_14, C3_14}, // LB6 - - {0, C1_7, C2_7, C3_7}, // LA7 - {0, C1_6, C2_6, C3_6}, // LA6 - {0, C1_5, C2_5, C3_5}, // LA5 - {0, C1_4, C2_4, C3_4}, // LA4 - {0, C1_3, C2_3, C3_3}, // LA3 - {0, C1_2, C2_2, C4_3}, // LA2 - {0, C1_1, C3_2, C4_2}, // LA1 - {0, C2_1, C3_1, C4_1}, // LA0 - {0, C9_9, C8_9, C7_9}, // LB9 - {0, C9_10, C8_10, C7_10}, // LB10 - {0, C9_11, C8_11, C7_11}, // LB11 - {0, C9_12, C8_12, C7_12}, // LB12 - {0, C9_13, C8_13, C7_13}, // LB13 - {0, C9_14, C8_14, C7_14}, // LB14 - {0, C1_15, C2_15, C3_15}, // LB7 - - {0, C1_8, C2_8, C3_8}, // LA8 - {1, C9_6, C8_6, C7_6}, // LC14 - {1, C9_5, C8_5, C7_5}, // LC13 - {1, C9_4, C8_4, C7_4}, // LC12 - {1, C9_3, C8_3, C7_3}, // LC11 - {1, C9_2, C8_2, C7_2}, // LC10 - {1, C9_1, C8_1, C7_1}, // LC9 - {1, C2_9, C3_9, C4_9}, // LD0 - {1, C1_9, C3_10, C4_10}, // LD1 - {1, C1_10, C2_10, C4_11}, // LD2 - {1, C1_11, C2_11, C3_11}, // LD3 - {1, C1_12, C2_12, C3_12}, // LD4 - {1, C1_13, C2_13, C3_13}, // LD5 - {0, C1_16, C2_16, C3_16}, // LB8 - - {1, C9_8, C7_7, C6_7}, // LC16 - {1, C1_5, C2_5, C3_5}, // LC5 - {1, C1_4, C2_4, C3_4}, // LC4 - {1, C1_3, C2_3, C3_3}, // LC3 - {1, C1_2, C2_2, C4_3}, // LC2 - {1, C1_1, C3_2, C4_2}, // LC1 - {1, C9_9, C8_9, C7_9}, // LD9 - {1, C9_10, C8_10, C7_10}, // LD10 - {1, C9_11, C8_11, C7_11}, // LD11 - {1, C9_12, C8_12, C7_12}, // LD12 - {1, C1_14, C2_14, C3_14}, // LD6 - {1, C1_15, C2_15, C3_15}, // LD7 - {1, C1_16, C2_16, C3_16}, // LD8 - {0, C9_15, C8_15, C6_14}, // LB15 - - {1, C8_8, C7_8, C6_8}, // LC17 - {1, C1_8, C2_8, C3_8}, // LC8 - {1, C1_7, C2_7, C3_7}, // LC7 - {1, C2_1, C3_1, C4_1}, // LC0 - {1, C9_14, C8_14, C7_14}, // LD14 - {1, C9_15, C8_15, C6_14}, // LD15 - {1, C8_16, C7_16, C6_16}, // LD17 - {0, C8_16, C7_16, C6_16}, // LB17 - {0, C9_16, C7_15, C6_15}, // LB16 - -}; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; - -void suspend_power_down_kb(void) -{ - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) -{ - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) - { - rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); - } -} -#endif +/* Copyright 2021 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "mkiirgb.h" \ No newline at end of file diff --git a/keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.h b/keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.h index e61ff96839f4..c297a02e888d 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.h @@ -1,16 +1,26 @@ +/* Copyright 2021 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once -#define XXX KC_NO + +#if defined(KEYBOARD_kbdfans_kbd67_mkiirgb_v1) + #include "v1.h" +#elif defined(KEYBOARD_kbdfans_kbd67_mkiirgb_v2) + #include "v2.h" +#elif defined(KEYBOARD_kbdfans_kbd67_mkiirgb_v3) + #include "v3.h" +#endif #include "quantum.h" -#define LAYOUT_65_ansi_blocker( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \ - { K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \ -} diff --git a/keyboards/kbdfans/kbd67/mkiirgb/readme.md b/keyboards/kbdfans/kbd67/mkiirgb/readme.md index 3a5621d84449..58338df0f64f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/readme.md +++ b/keyboards/kbdfans/kbd67/mkiirgb/readme.md @@ -3,17 +3,19 @@ A customizable 65% RGB keyboard. * Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) -* Hardware Supported: KBD67 Mk.II RGB V1 and V2 +* Hardware Supported: KBD67 Mk.II RGB V1, V2, and V3 * Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/) -There are two versions of the KBD67 MKII RGB. Please use the appropriate firmware for your board. +There are three versions of the KBD67 MKII RGB. Please use the appropriate firmware for your board. * V1: STM32F303 (Arm), takes `.bin` files * V2: ATmega32U4 (AVR), takes `.hex` files +* V3: Atmega32U4 (AVR), takes `.bin` files Make example for this keyboard (after setting up your build environment): make kbdfans/kbd67/mkiirgb/v1:default # Arm (STM32F303) make kbdfans/kbd67/mkiirgb/v2:default # AVR (ATmega32U4) + make kbdfans/kbd67/mkiirgb/v3:default # AVR (ATmega32U4) 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). diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/.noci b/keyboards/kbdfans/kbd67/mkiirgb/v1/.noci deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c new file mode 100644 index 000000000000..466b0148a7d9 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c @@ -0,0 +1,124 @@ +/* Copyright 2021 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "v1.h" +#ifdef RGB_MATRIX_ENABLE +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + + {0, C8_8, C7_8, C6_8}, // LA17 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C1_15, C2_15, C3_15}, // LB7 + + {0, C1_8, C2_8, C3_8}, // LA8 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {0, C1_16, C2_16, C3_16}, // LB8 + + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {0, C9_15, C8_15, C6_14}, // LB15 + + {1, C8_8, C7_8, C6_8}, // LC17 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C8_16, C7_16, C6_16}, // LD17 + {0, C8_16, C7_16, C6_16}, // LB17 + {0, C9_16, C7_15, C6_15}, // LB16 + +}; + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 }, + { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 } +}, { + {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, + {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, + {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, + {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, + {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} +}, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1 +} }; + + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) +{ + if (host_keyboard_led_state().caps_lock) + { + rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); + } +} +#endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.h b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.h new file mode 100644 index 000000000000..96b5fef5efcf --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.h @@ -0,0 +1,32 @@ +/* Copyright 2021 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#define XXX KC_NO +#include "quantum.h" +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \ +} diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c new file mode 100644 index 000000000000..951dd028f7eb --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c @@ -0,0 +1,124 @@ +/* Copyright 2021 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "v2.h" +#ifdef RGB_MATRIX_ENABLE +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + + {0, C8_8, C7_8, C6_8}, // LA17 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C1_15, C2_15, C3_15}, // LB7 + + {0, C1_8, C2_8, C3_8}, // LA8 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {0, C1_16, C2_16, C3_16}, // LB8 + + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {0, C9_15, C8_15, C6_14}, // LB15 + + {1, C8_8, C7_8, C6_8}, // LC17 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C8_16, C7_16, C6_16}, // LD17 + {0, C8_16, C7_16, C6_16}, // LB17 + {0, C9_16, C7_15, C6_15}, // LB16 + +}; + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 }, + { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 } +}, { + {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, + {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, + {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, + {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, + {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} +}, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1 +} }; + + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) +{ + if (host_keyboard_led_state().caps_lock) + { + rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); + } +} +#endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.h b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.h new file mode 100644 index 000000000000..96b5fef5efcf --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.h @@ -0,0 +1,32 @@ +/* Copyright 2021 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#define XXX KC_NO +#include "quantum.h" +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \ +} diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h new file mode 100755 index 000000000000..1ee83cdc942c --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h @@ -0,0 +1,75 @@ +/* Copyright 2021 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4B42 // KB +#define PRODUCT_ID 0x1226 +#define DEVICE_VER 0x0002 +#define MANUFACTURER KBDfans +#define PRODUCT kbd67mkiirgb v3 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +#define MATRIX_ROW_PINS { F0, F1, F4, E6, C6 } +#define MATRIX_COL_PINS { F7, F6, F5, C7, B0, B1, B2, B3, B4, D7, D6, D4, D5, D3, D2} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +#ifdef RGB_MATRIX_ENABLE +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define USB_SUSPEND_WAKEUP_DELAY 5000 +#define RGB_MATRIX_KEYPRESSES +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define DISABLE_RGB_MATRIX_SPLASH +#define DISABLE_RGB_MATRIX_MULTISPLASH +#define DISABLE_RGB_MATRIX_SOLID_SPLASH +#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#define DISABLE_RGB_MATRIX_DIGITAL_RAIN +#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define RGB_MATRIX_LED_PROCESS_LIMIT 4 +#define RGB_MATRIX_LED_FLUSH_LIMIT 26 +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL +#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons. +#define DRIVER_COUNT 1 +#define DRIVER_1_LED_TOTAL 67 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define DRIVER_INDICATOR_LED_TOTAL 0 +#endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/readme.md b/keyboards/kbdfans/kbd67/mkiirgb/v3/readme.md new file mode 100644 index 000000000000..d62d4a517c4e --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/readme.md @@ -0,0 +1,13 @@ +# KBD67 Mk.II RGB V3 (Hotswap) + +A hotswap 65% keyboard with USB C, inswitch RGB, and ESD protection. + +* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) +* Hardware Supported: KBD67 Mk.II RGB V3 +* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/) + +Make example for this keyboard (after setting up your build environment): + + make kbdfans/kbd67/mkiirgb/v3:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk new file mode 100755 index 000000000000..5c48a9bf7eb2 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = lufa-ms +BOOTLOADER_SIZE = 6144 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3741 +LTO_ENABLE = yes + +LAYOUTS = 65_ansi_blocker diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c new file mode 100755 index 000000000000..a082f36ba315 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c @@ -0,0 +1,126 @@ +/* Copyright 2021 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "v3.h" + +#ifdef RGB_MATRIX_ENABLE + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS21_SW1, CS20_SW1, CS19_SW1}, + {0, CS21_SW2, CS20_SW2, CS19_SW2}, + {0, CS21_SW3, CS20_SW3, CS19_SW3}, + {0, CS21_SW4, CS20_SW4, CS19_SW4}, + {0, CS21_SW5, CS20_SW5, CS19_SW5}, + {0, CS21_SW6, CS20_SW6, CS19_SW6}, + {0, CS21_SW7, CS20_SW7, CS19_SW7}, + {0, CS21_SW8, CS20_SW8, CS19_SW8}, + {0, CS24_SW1, CS23_SW1, CS22_SW1}, + {0, CS24_SW2, CS23_SW2, CS22_SW2}, + {0, CS24_SW3, CS23_SW3, CS22_SW3}, + {0, CS24_SW4, CS23_SW4, CS22_SW4}, + {0, CS24_SW5, CS23_SW5, CS22_SW5}, + {0, CS24_SW6, CS23_SW6, CS22_SW6}, + {0, CS24_SW7, CS23_SW7, CS22_SW7}, + + {0, CS15_SW1, CS14_SW1, CS13_SW1}, + {0, CS15_SW2, CS14_SW2, CS13_SW2}, + {0, CS15_SW3, CS14_SW3, CS13_SW3}, + {0, CS15_SW4, CS14_SW4, CS13_SW4}, + {0, CS15_SW5, CS14_SW5, CS13_SW5}, + {0, CS15_SW6, CS14_SW6, CS13_SW6}, + {0, CS15_SW7, CS14_SW7, CS13_SW7}, + {0, CS15_SW8, CS14_SW8, CS13_SW8}, + {0, CS30_SW1, CS29_SW1, CS28_SW1}, + {0, CS30_SW2, CS29_SW2, CS28_SW2}, + {0, CS30_SW3, CS29_SW3, CS28_SW3}, + {0, CS30_SW4, CS29_SW4, CS28_SW4}, + {0, CS30_SW5, CS29_SW5, CS28_SW5}, + {0, CS30_SW6, CS29_SW6, CS28_SW6}, + {0, CS30_SW7, CS29_SW7, CS28_SW7}, + + {0, CS12_SW1, CS11_SW1, CS10_SW1}, + {0, CS12_SW2, CS11_SW2, CS10_SW2}, + {0, CS12_SW3, CS11_SW3, CS10_SW3}, + {0, CS12_SW4, CS11_SW4, CS10_SW4}, + {0, CS12_SW5, CS11_SW5, CS10_SW5}, + {0, CS12_SW6, CS11_SW6, CS10_SW6}, + {0, CS12_SW7, CS11_SW7, CS10_SW7}, + {0, CS12_SW8, CS11_SW8, CS10_SW8}, + {0, CS33_SW1, CS32_SW1, CS31_SW1}, + {0, CS33_SW2, CS32_SW2, CS31_SW2}, + {0, CS33_SW3, CS32_SW3, CS31_SW3}, + {0, CS33_SW4, CS32_SW4, CS31_SW4}, + {0, CS33_SW5, CS32_SW5, CS31_SW5}, + {0, CS33_SW7, CS32_SW7, CS31_SW7}, + + {0, CS9_SW1, CS8_SW1, CS7_SW1}, + {0, CS9_SW2, CS8_SW2, CS7_SW2}, + {0, CS9_SW3, CS8_SW3, CS7_SW3}, + {0, CS9_SW4, CS8_SW4, CS7_SW4}, + {0, CS9_SW5, CS8_SW5, CS7_SW5}, + {0, CS9_SW6, CS8_SW6, CS7_SW6}, + {0, CS9_SW7, CS8_SW7, CS7_SW7}, + {0, CS9_SW8, CS8_SW8, CS7_SW8}, + {0, CS36_SW1, CS35_SW1, CS34_SW1}, + {0, CS36_SW2, CS35_SW2, CS34_SW2}, + {0, CS36_SW3, CS35_SW3, CS34_SW3}, + {0, CS36_SW4, CS35_SW4, CS34_SW4}, + {0, CS36_SW5, CS35_SW5, CS34_SW5}, + {0, CS36_SW7, CS35_SW7, CS34_SW7}, + + {0, CS3_SW1, CS2_SW1, CS1_SW1}, + {0, CS3_SW2, CS2_SW2, CS1_SW2}, + {0, CS3_SW3, CS2_SW3, CS1_SW3}, + {0, CS3_SW6, CS2_SW6, CS1_SW6}, +// {0, CS39_SW1, CS38_SW1, CS37_SW1}, + {0, CS39_SW2, CS38_SW2, CS37_SW2}, + {0, CS39_SW3, CS38_SW3, CS37_SW3}, + {0, CS39_SW4, CS38_SW4, CS37_SW4}, + {0, CS39_SW5, CS38_SW5, CS37_SW5}, + {0, CS39_SW7, CS38_SW7, CS37_SW7} + +}; +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED,55, 56, 57 }, + { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 } +}, { + {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, + {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, + {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, + {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, + { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } + +}, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1 +} }; + + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) +{ + if (host_keyboard_led_state().caps_lock) + { + rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); + } +} +#endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.h new file mode 100755 index 000000000000..7b3c387fe3dd --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.h @@ -0,0 +1,33 @@ +/* Copyright 2021 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#define XXX KC_NO +#include "quantum.h" +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \ +} + From 7c2f48e55d25209eb5b27fc89d024fe985352142 Mon Sep 17 00:00:00 2001 From: Phooood <81713801+Phooood@users.noreply.github.com> Date: Sun, 8 Aug 2021 20:31:33 -0700 Subject: [PATCH 183/328] [Keyboard] Add Aozora (hotswap) keyboard (#13919) * Initial Commit * added header to hotswap.c * added keymap-specific reamdme.md * minor adjustments * Requested corrections to readme's --- keyboards/aozora/hotswap/config.h | 45 ++++++++++ keyboards/aozora/hotswap/hotswap.c | 17 ++++ keyboards/aozora/hotswap/hotswap.h | 34 ++++++++ keyboards/aozora/hotswap/info.json | 83 +++++++++++++++++++ .../aozora/hotswap/keymaps/default/keymap.c | 35 ++++++++ keyboards/aozora/hotswap/readme.md | 17 ++++ keyboards/aozora/hotswap/rules.mk | 23 +++++ 7 files changed, 254 insertions(+) create mode 100644 keyboards/aozora/hotswap/config.h create mode 100644 keyboards/aozora/hotswap/hotswap.c create mode 100644 keyboards/aozora/hotswap/hotswap.h create mode 100644 keyboards/aozora/hotswap/info.json create mode 100644 keyboards/aozora/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/aozora/hotswap/readme.md create mode 100644 keyboards/aozora/hotswap/rules.mk diff --git a/keyboards/aozora/hotswap/config.h b/keyboards/aozora/hotswap/config.h new file mode 100644 index 000000000000..f1eb193a5070 --- /dev/null +++ b/keyboards/aozora/hotswap/config.h @@ -0,0 +1,45 @@ +/* Copyright 2021 Salmon Cat Studio + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCATS +#define PRODUCT_ID 0x4014 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Salmon Cat Studio +#define PRODUCT Aozora + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * 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 { F6, F5, F4, F1, F0 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D4, D6, D7, B4, B5, B6, C6, C7, F7 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/aozora/hotswap/hotswap.c b/keyboards/aozora/hotswap/hotswap.c new file mode 100644 index 000000000000..f8197c3c00e2 --- /dev/null +++ b/keyboards/aozora/hotswap/hotswap.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Salmon Cat Studio + * + * 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 "hotswap.h" \ No newline at end of file diff --git a/keyboards/aozora/hotswap/hotswap.h b/keyboards/aozora/hotswap/hotswap.h new file mode 100644 index 000000000000..5282aaf81cd3 --- /dev/null +++ b/keyboards/aozora/hotswap/hotswap.h @@ -0,0 +1,34 @@ +/* Copyright 2021 Salmon Cat Studio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3D, K3E, K3F, \ + K40, K41, K42, K44, K48, K49, K4A, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, K42, KC_NO, K44, KC_NO, KC_NO, KC_NO, K48, K49, K4A, KC_NO, KC_NO, K4D, K4E, K4F }, \ +} + diff --git a/keyboards/aozora/hotswap/info.json b/keyboards/aozora/hotswap/info.json new file mode 100644 index 000000000000..9d8e8c51f351 --- /dev/null +++ b/keyboards/aozora/hotswap/info.json @@ -0,0 +1,83 @@ +{ + "keyboard_name": "Aozora", + "url": "https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21", + "maintainer": "Food", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (F6,B0)", "x":0, "y":0}, + {"label":"K01 (F6,B1)", "x":1, "y":0}, + {"label":"K02 (F6,B2)", "x":2, "y":0}, + {"label":"K03 (F6,B3)", "x":3, "y":0}, + {"label":"K04 (F6,B7)", "x":4, "y":0}, + {"label":"K05 (F6,D0)", "x":5, "y":0}, + {"label":"K06 (F6,D1)", "x":6, "y":0}, + {"label":"K07 (F6,D4)", "x":7, "y":0}, + {"label":"K08 (F6,D6)", "x":8, "y":0}, + {"label":"K09 (F6,D7)", "x":9, "y":0}, + {"label":"K0A (F6,B4)", "x":10, "y":0}, + {"label":"K0B (F6,B5)", "x":11, "y":0}, + {"label":"K0C (F6,B6)", "x":12, "y":0}, + {"label":"K0D (F6,C6)", "x":13, "y":0, "w":2}, + {"label":"K0E (F6,C7)", "x":15.25, "y":0}, + {"label":"K0F (F6,F7)", "x":16.25, "y":0}, + {"label":"K10 (F5,B0)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (F5,B1)", "x":1.5, "y":1}, + {"label":"K12 (F5,B2)", "x":2.5, "y":1}, + {"label":"K13 (F5,B3)", "x":3.5, "y":1}, + {"label":"K14 (F5,B7)", "x":4.5, "y":1}, + {"label":"K15 (F5,D0)", "x":5.5, "y":1}, + {"label":"K16 (F5,D1)", "x":6.5, "y":1}, + {"label":"K17 (F5,D4)", "x":7.5, "y":1}, + {"label":"K18 (F5,D6)", "x":8.5, "y":1}, + {"label":"K19 (F5,D7)", "x":9.5, "y":1}, + {"label":"K1A (F5,B4)", "x":10.5, "y":1}, + {"label":"K1B (F5,B5)", "x":11.5, "y":1}, + {"label":"K1C (F5,B6)", "x":12.5, "y":1}, + {"label":"K1D (F5,C6)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1E (F5,C7)", "x":15.25, "y":1}, + {"label":"K1F (F5,F7)", "x":16.25, "y":1}, + {"label":"K20 (F4,B0)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (F4,B1)", "x":1.75, "y":2}, + {"label":"K22 (F4,B2)", "x":2.75, "y":2}, + {"label":"K23 (F4,B3)", "x":3.75, "y":2}, + {"label":"K24 (F4,B7)", "x":4.75, "y":2}, + {"label":"K25 (F4,D0)", "x":5.75, "y":2}, + {"label":"K26 (F4,D1)", "x":6.75, "y":2}, + {"label":"K27 (F4,D4)", "x":7.75, "y":2}, + {"label":"K28 (F4,D6)", "x":8.75, "y":2}, + {"label":"K29 (F4,D7)", "x":9.75, "y":2}, + {"label":"K2A (F4,B4)", "x":10.75, "y":2}, + {"label":"K2B (F4,B5)", "x":11.75, "y":2}, + {"label":"K2D (F4,C6)", "x":12.75, "y":2, "w":2.25}, + {"label":"K30 (F1,B0)", "x":0, "y":3, "w":2.25}, + {"label":"K31 (F1,B1)", "x":2.25, "y":3}, + {"label":"K32 (F1,B2)", "x":3.25, "y":3}, + {"label":"K33 (F1,B3)", "x":4.25, "y":3}, + {"label":"K34 (F1,B7)", "x":5.25, "y":3}, + {"label":"K35 (F1,D0)", "x":6.25, "y":3}, + {"label":"K36 (F1,D1)", "x":7.25, "y":3}, + {"label":"K37 (F1,D4)", "x":8.25, "y":3}, + {"label":"K38 (F1,D6)", "x":9.25, "y":3}, + {"label":"K39 (F1,D7)", "x":10.25, "y":3}, + {"label":"K3A (F1,B4)", "x":11.25, "y":3}, + {"label":"K3D (F1,C6)", "x":12.25, "y":3, "w":2.75}, + {"label":"K3E (F1,C7)", "x":15.25, "y":3}, + {"label":"K3F (F1,F7)", "x":16.25, "y":3}, + {"label":"K40 (F0,B0)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (F0,B1)", "x":1.25, "y":4, "w":1.25}, + {"label":"K42 (F0,B2)", "x":2.5, "y":4, "w":1.25}, + {"label":"K44 (F0,B7)", "x":3.75, "y":4, "w":6.25}, + {"label":"K48 (F0,D6)", "x":10, "y":4, "w":1.25}, + {"label":"K49 (F0,D7)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4A (F0,B4)", "x":12.5, "y":4, "w":1.25}, + {"label":"K4D (F0,C6)", "x":14.25, "y":4}, + {"label":"K4E (F0,C7)", "x":15.25, "y":4}, + {"label":"K4F (F0,F7)", "x":16.25, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/aozora/hotswap/keymaps/default/keymap.c b/keyboards/aozora/hotswap/keymaps/default/keymap.c new file mode 100644 index 000000000000..f941f5dff6dc --- /dev/null +++ b/keyboards/aozora/hotswap/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 Salmon Cat Studio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_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_PSCR, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/aozora/hotswap/readme.md b/keyboards/aozora/hotswap/readme.md new file mode 100644 index 000000000000..201ae3a73822 --- /dev/null +++ b/keyboards/aozora/hotswap/readme.md @@ -0,0 +1,17 @@ +# Aozora + +A 65%-Style 6-Key keyboard featuring a cloud-shaped badge. + +![SCS Aozora](https://i.imgur.com/dL5nonc.jpg) + +* Keyboard Maintainer: [Food](https://github.com/Phooood) +* Hardware Supported: [Aozora](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21) +* Hardware Availability: [salmoncat.studio](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21) | GB is over. + +Make example for this keyboard (after setting up your build environment): + + make aozora/hotswap:default + +To reset, press the button on the back of the PCB. + +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). \ No newline at end of file diff --git a/keyboards/aozora/hotswap/rules.mk b/keyboards/aozora/hotswap/rules.mk new file mode 100644 index 000000000000..63d0199d0be0 --- /dev/null +++ b/keyboards/aozora/hotswap/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + From 59b5c884ff539952fa68df0405ed8ea0f5c652d0 Mon Sep 17 00:00:00 2001 From: jfescobar18 <81986725+jfescobar18@users.noreply.github.com> Date: Mon, 9 Aug 2021 01:17:46 -0500 Subject: [PATCH 184/328] [Keyboard] Undead 60M (#13735) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/undead60m/config.h | 75 ++++++++++++++++++++ keyboards/undead60m/info.json | 18 +++++ keyboards/undead60m/keymaps/default/keymap.c | 51 +++++++++++++ keyboards/undead60m/keymaps/via/keymap.c | 52 ++++++++++++++ keyboards/undead60m/keymaps/via/rules.mk | 1 + keyboards/undead60m/readme.md | 27 +++++++ keyboards/undead60m/rules.mk | 25 +++++++ keyboards/undead60m/undead60m.c | 60 ++++++++++++++++ keyboards/undead60m/undead60m.h | 34 +++++++++ 9 files changed, 343 insertions(+) create mode 100644 keyboards/undead60m/config.h create mode 100644 keyboards/undead60m/info.json create mode 100644 keyboards/undead60m/keymaps/default/keymap.c create mode 100644 keyboards/undead60m/keymaps/via/keymap.c create mode 100644 keyboards/undead60m/keymaps/via/rules.mk create mode 100644 keyboards/undead60m/readme.md create mode 100644 keyboards/undead60m/rules.mk create mode 100644 keyboards/undead60m/undead60m.c create mode 100644 keyboards/undead60m/undead60m.h diff --git a/keyboards/undead60m/config.h b/keyboards/undead60m/config.h new file mode 100644 index 000000000000..a307b5db66f4 --- /dev/null +++ b/keyboards/undead60m/config.h @@ -0,0 +1,75 @@ +/* +Copyright 2021 Franciso Escobar +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D4B // MechanicKeys +#define PRODUCT_ID 0x3C4D +#define DEVICE_VER 0x0001 +#define MANUFACTURER MechanicKeys +#define PRODUCT Undead 60-M + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * 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 { D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B7, B5, B4, D7, D6, B3, B2 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* 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 + +/* RGB Underglow */ +#define RGB_DI_PIN F7 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 16 + #define RGBLIGHT_SLEEP + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_RGB_TEST + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_TWINKLE +#endif + +/* Rotary encoder */ +#define ENCODERS_PAD_A { F6 } +#define ENCODERS_PAD_B { F5 } +#define ENCODER_RESOLUTION 4 diff --git a/keyboards/undead60m/info.json b/keyboards/undead60m/info.json new file mode 100644 index 000000000000..8581f9aa12c2 --- /dev/null +++ b/keyboards/undead60m/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "Undead-60M", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "F1", "x": 0, "y": 0}, {"label": "F2", "x": 1, "y": 0}, {"label": "Esc", "x": 3.5, "y": 0}, {"label": "1", "x": 4.5, "y": 0}, {"label": "2", "x": 5.5, "y": 0}, {"label": "3", "x": 6.5, "y": 0}, {"label": "4", "x": 7.5, "y": 0}, {"label": "5", "x": 8.5, "y": 0}, {"label": "6", "x": 9.5, "y": 0}, {"label": "7", "x": 10.5, "y": 0}, {"label": "8", "x": 11.5, "y": 0}, {"label": "9", "x": 12.5, "y": 0}, {"label": "0", "x": 13.5, "y": 0}, {"label": "-", "x": 14.5, "y": 0}, {"label": "=", "x": 15.5, "y": 0}, {"label": "Backspace", "x": 16.5, "y": 0}, + {"label": "F2", "x": 0, "y": 1}, {"label": "F3", "x": 1, "y": 1}, {"label": "Tab", "x": 3.5, "y": 1}, {"label": "Q", "x": 5, "y": 1}, {"label": "W", "x": 6, "y": 1}, {"label": "E", "x": 7, "y": 1}, {"label": "R", "x": 8, "y": 1}, {"label": "T", "x": 9, "y": 1}, {"label": "Y", "x": 10, "y": 1}, {"label": "U", "x": 11, "y": 1}, {"label": "I", "x": 12, "y": 1}, {"label": "O", "x": 13, "y": 1}, {"label": "P", "x": 14, "y": 1}, {"label": "[", "x": 15, "y": 1}, {"label": "]", "x": 16, "y": 1}, {"label": "|", "x": 17, "y": 1}, + {"label": "F4", "x": 0, "y": 2}, {"label": "F5", "x": 1, "y": 2}, {"label": "Caps", "x": 3.5, "y": 2}, {"label": "A", "x": 5.25, "y": 2}, {"label": "S", "x": 6.25, "y": 2}, {"label": "D", "x": 7.25, "y": 2}, {"label": "F", "x": 8.25, "y": 2}, {"label": "G", "x": 9.25, "y": 2}, {"label": "H", "x": 10.25, "y": 2}, {"label": "J", "x": 11.25, "y": 2}, {"label": "K", "x": 12.25, "y": 2}, {"label": "L", "x": 13.25, "y": 2}, {"label": ";", "x": 14.25, "y": 2}, {"label": "'", "x": 15.25, "y": 2}, {"label": "Enter", "x": 16.25, "y": 2}, + {"label": "F6", "x": 0, "y": 3}, {"label": "F7", "x": 1, "y": 3}, {"label": "Shift", "x": 3.5, "y": 3}, {"label": "Z", "x": 5.5, "y": 3}, {"label": "X", "x": 6.5, "y": 3}, {"label": "C", "x": 7.5, "y": 3}, {"label": "V", "x": 8.5, "y": 3}, {"label": "B", "x": 9.5, "y": 3}, {"label": "N", "x": 10.5, "y": 3}, {"label": "M", "x": 11.5, "y": 3}, {"label": ",", "x": 12.5, "y": 3}, {"label": ".", "x": 13.5, "y": 3}, {"label": "/", "x": 14.5, "y": 3}, {"label": "Shift", "x": 15.5, "y": 3}, + {"label": "F1", "x": 0, "y": 4}, {"label": "F2", "x": 1, "y": 4}, {"label": "Ctrl", "x": 3.5, "y": 4}, {"label": "OS", "x": 4.75, "y": 4}, {"label": "Alt", "x": 6, "y": 4}, {"label": "Space", "x": 7.25, "y": 4}, {"label": "Alt", "x": 13.5, "y": 4}, {"label": "OS", "x": 14.75, "y": 4}, {"label": "Ctrl", "x": 16, "y": 4}, {"label": "Fn", "x": 17.25, "y": 4} + ] + } + } +} diff --git a/keyboards/undead60m/keymaps/default/keymap.c b/keyboards/undead60m/keymaps/default/keymap.c new file mode 100644 index 000000000000..7760a671eeef --- /dev/null +++ b/keyboards/undead60m/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2021 Francisco Escobar + * + * 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( /* 0: qwerty */ + KC_MPLY, KC_P1, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_P2, KC_P3, 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_P4, KC_P5, 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_P6, KC_P7, 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_P8, KC_P9, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(1) + ), + + [1] = LAYOUT( /* 1: fn */ + KC_TRNS, KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, 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, KC_LEFT, KC_DOWN, 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, 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 + ), + + [2] = LAYOUT( /* 2: media */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(3), KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( /*3: RGB */ + RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_HUD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_SAD, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/undead60m/keymaps/via/keymap.c b/keyboards/undead60m/keymaps/via/keymap.c new file mode 100644 index 000000000000..9ab159ab1c80 --- /dev/null +++ b/keyboards/undead60m/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 Francisco Escobar + * + * 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( /* 0: qwerty */ + KC_MPLY, KC_P1, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_P2, KC_P3, 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_P4, KC_P5, 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_P6, KC_P7, 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_P8, KC_P9, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(1) + ), + + [1] = LAYOUT( /* 1: fn */ + KC_TRNS, KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, 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, KC_LEFT, KC_DOWN, 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, 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 + ), + + [2] = LAYOUT( /* 2: media */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(3), KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( /*3: RGB */ + RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_HUD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_SAD, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/undead60m/keymaps/via/rules.mk b/keyboards/undead60m/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/undead60m/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/undead60m/readme.md b/keyboards/undead60m/readme.md new file mode 100644 index 000000000000..6f62d3033378 --- /dev/null +++ b/keyboards/undead60m/readme.md @@ -0,0 +1,27 @@ +# Undead 60M + +![Undead 60M](https://i.imgur.com/0EWBzNth.jpeg) + +![Undead 60M](https://i.imgur.com/m8z1kMVh.jpeg) + +![Undead 60M](https://i.imgur.com/AZIfVzNh.jpeg) + +A 60% PCB with some add-ons + - RGB Underglow + - Macro cluster + - Hotswap + - optional Knob + +* Keyboard Maintainer: [jfescobar18](https://github.com/jfescobar18) +* Hardware Supported: Undead 60M PCB +* Hardware Availability: [MechanicKeys](https://www.facebook.com/MechanicKeys-104963764775280) + +Make example for this keyboard (after setting up your build environment): + + make undead60m/:default + +Flashing example for this keyboard: + + make undead60m: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). diff --git a/keyboards/undead60m/rules.mk b/keyboards/undead60m/rules.mk new file mode 100644 index 000000000000..0cf19a0f67a7 --- /dev/null +++ b/keyboards/undead60m/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +KEYBOARD_LOCK_ENABLE = yes +ENCODER_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/undead60m/undead60m.c b/keyboards/undead60m/undead60m.c new file mode 100644 index 000000000000..5cedd10e8d24 --- /dev/null +++ b/keyboards/undead60m/undead60m.c @@ -0,0 +1,60 @@ + /* Copyright 2021 Francisco Escobar + * + * 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 "undead60m.h" +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case 0: /* Layer 1: Volume */ + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + break; + case 1: /* Layer 2: Scroll */ + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + break; + case 2: /* Layer 3: Change Track */ + if (clockwise) { + tap_code(KC_MPRV); + } else { + tap_code(KC_MNXT); + } + break; + case 3: /* Layer 4: Brightness */ + if (clockwise) { + tap_code(KC_BRID); + } else { + tap_code(KC_BRIU); + } + break; + default: /* Default: Volume */ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } + } + return true; +} diff --git a/keyboards/undead60m/undead60m.h b/keyboards/undead60m/undead60m.h new file mode 100644 index 000000000000..2d71e9640f9d --- /dev/null +++ b/keyboards/undead60m/undead60m.h @@ -0,0 +1,34 @@ +/* Copyright 2021 Francisco Escobar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K43, K44, K48, K4C, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, KC_NO, KC_NO, KC_NO, K48, KC_NO, KC_NO, KC_NO, K4C, K4D, K4E, K4F } \ +} From 79d5b279931cf98d635181235c0301ba7053f9d5 Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 9 Aug 2021 05:25:43 -0400 Subject: [PATCH 185/328] [Keymap] rootiest for planck/rev6/ (#13294) * squashed commits to master * Fix in case of missing user_song_list Substitutes missing songs with safe versions Also updated and added detail to keymap readme * Adjust Readme to match qmk contrib conventions * Update keyboards/planck/keymaps/rootiest/config.h * Update keyboards/planck/keymaps/rootiest/keymap.c * Update keyboards/planck/keymaps/rootiest/keymap.c * Update keyboards/planck/keymaps/rootiest/keymap.c * Update keyboards/planck/keymaps/rootiest/keymap.c * Fixed license header to GPLv2+ * Fix Volume key delay Use a static number instead of removed MEDIA_KEY_DELAY * Use TAP_CODE_DELAY * added license to config.h * Clean up formatting - Fixed markdown in readme - Removed extra commented line from config.h * Update keyboards/planck/keymaps/rootiest/config.h --- keyboards/planck/keymaps/rootiest/config.h | 146 ++ keyboards/planck/keymaps/rootiest/keymap.c | 1928 +++++++++++++++++++ keyboards/planck/keymaps/rootiest/readme.md | 37 + keyboards/planck/keymaps/rootiest/rules.mk | 26 + 4 files changed, 2137 insertions(+) create mode 100644 keyboards/planck/keymaps/rootiest/config.h create mode 100644 keyboards/planck/keymaps/rootiest/keymap.c create mode 100644 keyboards/planck/keymaps/rootiest/readme.md create mode 100644 keyboards/planck/keymaps/rootiest/rules.mk diff --git a/keyboards/planck/keymaps/rootiest/config.h b/keyboards/planck/keymaps/rootiest/config.h new file mode 100644 index 000000000000..fc1fc8176118 --- /dev/null +++ b/keyboards/planck/keymaps/rootiest/config.h @@ -0,0 +1,146 @@ +/* Copyright 2021 Chris Laprade + * + * 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 + +/* + * USB/POWER OPTIONS + */ +// #define USB_MAX_POWER_CONSUMPTION 500 +#define USB_SUSPEND_WAKEUP_DELAY 200 +#define USB_POLLING_INTERVAL_MS 1 + +/* + * MUSIC/AUDIO options + */ +#ifdef AUDIO_ENABLE +# define AUDIO_CLICKY +# define MUSIC_MAP +# define AUDIO_VOICES +# define AUDIO_VOICE_DEFAULT something +# define AUDIO_DAC_SAMPLE_MAX 2732U + +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) } + +/* Plays during keyboard startup */ +# define STARTUP_SONG SONG(NO_SOUND) + +#endif + +/* + * MIDI options + */ +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +#define MIDI_ADVANCED + +/* + * ENCODER options + */ +#define ENCODER_DIRECTION_FLIP +#define ENCODER_RESOLUTION 4 // Define number of stages between detents on encoders +#define ENCODERS_PAD_A \ + { B12 } +#define ENCODERS_PAD_B \ + { B13 } + +/* + * RGB options + */ +#ifdef RGBLIGHT_ENABLE +# define RGBLIGHT_SLEEP // Allows rgb to sleep when the host/keyboard does +# define RGBLIGHT_ANIMATIONS // Enable using rgb animations +# define RGBLIGHT_LAYERS // Enable indicating layers using layered rgb assignments +# define RGBLIGHT_LAYER_BLINK // Allows rgb layers to be blinked (activate for a set amount of time) +# define RGBLIGHT_MAX_LAYERS 32 // Overides the default (8) max number of rgb layers +# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF // Allows rgb layers to work even when rgb is toggled off +#endif + +/* + * UNICODE options + */ +#define UNICODE_SELECTED_MODES UC_WINC, UC_LNX, UC_MAC // Define the methods used for in/outputting unicode + +/* + * TAP-DANCE options + */ +#define TAPPING_TERM 250 // Default time allowed before resetting a Tap-Dance combo +#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped once again. */ +#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */ +#define TAPPING_TOGGLE 3 + +/* + * LEADER-KEY options + */ // Used for on-board chording +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 500 + +/* + * COMBO-KEY options + */ +#define COMBO_COUNT 2 +#define COMBO_TERM 300 +/* + * MACRO per-key options + */ +#define RETRO_TAPPING_PER_KEY // Control Retro-Tap individually by key +#define TAPPING_FORCE_HOLD_PER_KEY // Control Force-Hold individually by key +#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY // Control Mod-Tap-Interrupt individually by key +#define PERMISSIVE_HOLD_PER_KEY // Control Permissive-Hold individually by key + +#define MK_KINETIC_SPEED // Use kinetic acceleration for mouse-keys + +// Fall-back defines to prevent compile errors if user_song_list is missing +#ifndef ZELDA_PUZZLE2 +# define ZELDA_PUZZLE2 Q__NOTE(_G5) +#endif +#ifndef SONIC_RING2 +# define SONIC_RING2 E__NOTE(_E6) +#endif +#ifndef ZELDA_CHEST2 +# define ZELDA_CHEST2 Q__NOTE(_G5) +#endif +#ifndef COIN_SOUND2 +# define COIN_SOUND2 E__NOTE(_A5) +#endif +#ifndef ONE_UP_SOUND2 +# define ONE_UP_SOUND2 Q__NOTE(_E6) +#endif +#ifndef IMPERIAL_MARCH +# define IMPERIAL_MARCH HD_NOTE(_A4) +#endif +#ifndef MARIO_GAMEOVER +# define MARIO_GAMEOVER HD_NOTE(_C5) +#endif +#ifndef LEAD_START_SOUND +# define LEAD_START_SOUND E__NOTE(_C5) +#endif +#ifndef LEAD_SUCCESS_SOUND +# define LEAD_SUCCESS_SOUND E__NOTE(_A5), HD_NOTE(_E6), +#endif +#ifndef LEAD_FAIL_SOUND +# define LEAD_FAIL_SOUND E__NOTE(_A5), HD_NOTE(_E4), +#endif diff --git a/keyboards/planck/keymaps/rootiest/keymap.c b/keyboards/planck/keymaps/rootiest/keymap.c new file mode 100644 index 000000000000..634bf2829e08 --- /dev/null +++ b/keyboards/planck/keymaps/rootiest/keymap.c @@ -0,0 +1,1928 @@ +/* Copyright 2021 Chris Laprade + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "raw_hid.h" +#include "print.h" +#include "muse.h" + +/* + * Define keyboard name to be used by UI. + * This allows for using a different name + * than the one defined by QMK for your board. + */ +#define KEEB_MODEL_NAME "The Rootiest BoogieBoard" + +// Give names to the layers so they are easier to reference +enum custom_layers { + _BASE, + _QWERTY = _BASE, + _COLEMAK, + _DVORAK, + _SYMBLS, + _RAISE = _SYMBLS, + _NUMBRS, + _LOWER = _NUMBRS, + _PLOVER, + _FEATURS, + _ADJUST = _FEATURS, + _NUMPD, + _TABULA, + _MOUSY, +}; + +#define LOWER MO(_NUMBRS) +#define RAISE MO(_SYMBLS) + +// unicode hexes +#define UC_DEG UC(0x00B0) // ° +#define UC_DEGF UC(0x2109) // ℉ + +// Time (ms) to wait between frames for the wake rgb animation +#define WAKE_ANIMATION_TIMER_FREQUENCY 50 + +// Is a display connected +// #define USING_OLED_DISPLAY false + +// wait DELAY ms before unregistering media keys +#define TAP_CODE_DELAY 10 + +// Modifier remover +#define WITHOUT_MODS(...) \ + do { \ + const uint8_t _real_mods = get_mods(); \ + clear_mods(); \ + {__VA_ARGS__} set_mods(_real_mods); \ + } while (0) + +// A whole boatload of audio "songs" defined for use by the keyboard +#ifdef AUDIO_ENABLE +float planck_song[][2] = SONG(PLANCK_SOUND); +float hello_song[][2] = SONG(ONE_UP_SOUND2); +float bye_song[][2] = SONG(GOODBYE_SOUND); +float num_song[][2] = SONG(DVORAK_SOUND); +float qwerty_song[][2] = SONG(QWERTY_SOUND); +float colemak_song[][2] = SONG(COLEMAK_SOUND); +float dvorak_song[][2] = SONG(DVORAK_SOUND); +float funk_song[][2] = SONG(COLEMAK_SOUND); +float workman_song[][2] = SONG(WORKMAN_SOUND); +float term_song[][2] = SONG(TERMINAL_SOUND); +float lover_song[][2] = SONG(PLOVER_SOUND); +float ode_song[][2] = SONG(ODE_TO_JOY); +float rock_song[][2] = SONG(ROCK_A_BYE_BABY); +float clue_song[][2] = SONG(CLUEBOARD_SOUND); +float camp_song[][2] = SONG(CAMPANELLA); +float imp_march_song[][2] = SONG(IMPERIAL_MARCH); +float gameover_song[][2] = SONG(MARIO_GAMEOVER); +float puzzle_song[][2] = SONG(ZELDA_PUZZLE2); +float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); +float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +float slctl_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float slctl_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); +float slalt_on[][2] = SONG(NUM_LOCK_ON_SOUND); +float slalt_off[][2] = SONG(NUM_LOCK_OFF_SOUND); +float leader_started[][2] = SONG(LEAD_START_SOUND); +float leader_succeed[][2] = SONG(LEAD_SUCCESS_SOUND); +float leader_fail[][2] = SONG(LEAD_FAIL_SOUND); +float plover_song[][2] = SONG(PLOVER_SOUND); +float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +// Declare stored memory config +typedef union { + uint32_t raw; + struct { + bool do_wakeup_animation : 1; + uint8_t rgbcon_tracker : 8; + bool do_wakeup_audio : 1; + }; +} user_config_t; + +user_config_t user_config; + +// Initialize variable holding the binary +// representation of active modifiers. +uint8_t mod_state = 0; + +// Declare custom keycodes +enum custom_keycodes { + MO_BASE = SAFE_RANGE, + MO_SYMBLS, + MO_NUMBRS, + MO_FEATURS, + QWERTY, + COLEMAK, + DVORAK, + PLOVER, + BACKLIT, + MUSIC_ON, + MUSIC_OFF, + EXT_PLV, + MY_RGBCON, + MY_DEGREES, + ALT_TAB, + PRINT_WPM_KEY, + IRONY, + WAKE_ANI_TOG, + WAKE_AUD_TOG, + DO_RESET, + KC_PRVWD, + KC_NXTWD, + KC_LSTRT, + KC_LEND, + KC_DLINE, + KC_REDO, + KC_SAVE, + KC_SLCTALL, + KC_ALTF4, + KC_KILL, + KC_LCUT, + KC_LCOPY, + KC_NXTAB, + KC_PRVTAB, +}; + +// Declare unicode map array +enum unicode_names { BANG, SNEK }; +const uint32_t PROGMEM unicode_map[] = { + //[UCD_BANG] = 0x203D, // ‽ + //[UCD_IRONY] = 0x2E2E, // ⸮ + [SNEK] = 0x1F40D, // 🐍 +}; + +enum combo_events { ZC_COPY, XV_PASTE }; + +const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END}; +const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [ZC_COPY] = COMBO_ACTION(copy_combo), + [XV_PASTE] = COMBO_ACTION(paste_combo), +}; + +// Tap Dance key declarations +enum { + TD_DEG_DEGF, + TD_SMILEY, + TD_LSHFT_CAPS, + TD_LCTL_STICKY, + TD_LALT_STICKY, + TD_LOWER, + TD_RAISE, +}; + +// Declare available Tap-Dance states +typedef enum { + TD_NONE, + TD_SINGLE_TAP, + TD_DOUBLE_TAP, + TD_TRIPLE_TAP, + TD_DOUBLE_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_HOLD, + TD_TRIPLE_HOLD, + TD_UNKNOWN, +} td_state_t; + +// Tap-Dance struct +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +// Whether or not to do the wake animation+sound +bool do_wake_animation; + +// Variable to keep track of the rgb mode assigned by the RGB_CON key +static uint8_t rgbcon_tracker = 0; + +// Used by the on-board WPM tracker +char wpm_str[12]; + +// Variables used for the alt-tab key +bool is_alt_tab_active = false; +uint16_t alt_tab_timer = 0; + +// Variables used by the Irony key +#define IRONY_HOLD_DELAY 500 +uint16_t irony_pressed_time; +bool irony_active = false; +bool irony_shifted = false; +char irony_str[4] = "⸮"; +char bang_str[4] = "‽"; + +// Variables used for the rgb wakeup animation +static uint16_t wake_rgb_timer; +static uint8_t wake_rgb_count = 0; +bool waking_up = false; +bool do_wake_audio = false; + +// Muse variables +bool muse_mode = false; +bool musical_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +// Used by Leader key chords +bool did_leader_succeed; +LEADER_EXTERNS(); + +// Tap-Dance stuffs, initializing functions that are coded further below +td_state_t cur_dance(qk_tap_dance_state_t* state); +void sml_finished(qk_tap_dance_state_t* state, void* user_data); +void sml_reset(qk_tap_dance_state_t* state, void* user_data); +void scap_finished(qk_tap_dance_state_t* state, void* user_data); +void scap_reset(qk_tap_dance_state_t* state, void* user_data); +void slctl_finished(qk_tap_dance_state_t* state, void* user_data); +void slctl_reset(qk_tap_dance_state_t* state, void* user_data); +void slalt_finished(qk_tap_dance_state_t* state, void* user_data); +void slalt_reset(qk_tap_dance_state_t* state, void* user_data); +bool lctl_sticky = false; +bool lalt_sticky = false; + +// This function is called when lock indicators (caps-lock led) are changed/toggled/updated +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(10, led_state.caps_lock); +#ifdef AUDIO_ENABLE + static uint8_t caps_state = 0; + if (caps_state != led_state.caps_lock) { + // When the caps-lock led state changes play sounds + led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off); + caps_state = led_state.caps_lock; + } +#endif + return true; +} + +// Define key layout/layers +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Define all the layers + [_BASE] = LAYOUT_planck_mit( // + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, // + LT(_TABULA, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, // + TD(TD_LSHFT_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SFTENT, // + TD(TD_LCTL_STICKY), KC_LEAD, KC_LGUI, TD(TD_LALT_STICKY), MO(_SYMBLS), KC_SPC, MO(_NUMBRS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + /* + Base Layer [0] + * ,-----------------------------------------------------------------------------------. + * |Gr/ESC| Q | W | E | R | T | Y | U | I | O | P |BckSpc| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Tabula| A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |SH/CAP| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | LCtrl|Leader| OS | Alt |Symbol| Space |Number| Left | Dwn | Up | Right| + * `-----------------------------------------------------------------------------------' + */ + + [_COLEMAK] = LAYOUT_planck_mit( // + KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, // + LT(_TABULA, KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, // + TD(TD_LSHFT_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SFTENT, // + TD(TD_LCTL_STICKY), KC_LEAD, KC_LGUI, TD(TD_LALT_STICKY), MO(_SYMBLS), KC_SPC, MO(_NUMBRS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + /* + Colemak Layer [1] + * ,-----------------------------------------------------------------------------------. + * |Gr/ESC| Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Tabula| A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |SH/CAP| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | LCtrl|Leader| OS | Alt |Symbol| Space |Number| Left | Dwn | Up | Right| + * `-----------------------------------------------------------------------------------' + */ + + [_DVORAK] = LAYOUT_planck_mit( // + KC_GESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, // + LT(_TABULA, KC_TAB), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_TRNS, KC_S, KC_SLSH, // + TD(TD_LSHFT_CAPS), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SFTENT, // + TD(TD_LCTL_STICKY), KC_LEAD, KC_LGUI, TD(TD_LALT_STICKY), MO(_SYMBLS), KC_SPC, MO(_NUMBRS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + /* Dvorak Layer [2] + * ,-----------------------------------------------------------------------------------. + * |Gr/ESC| " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Tabula| A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |SH/CAP| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | LCtrl|Leader| OS | Alt |Symbol| Space |Number| Left | Dwn | Up | Right| + * `-----------------------------------------------------------------------------------' + */ + [_SYMBLS] = LAYOUT_planck_mit( // + KC_MPLY, 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_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_LCTL), LSFT(KC_LCTL), KC_HOME, KC_END, KC_TRNS, // + TG(_NUMPD), KC_TRNS, KC_TRNS, KC_TRNS, TO(_BASE), KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + /* + Symbols Layer [3] + * ,-----------------------------------------------------------------------------------. + * | Play | ! | @ | # | $ | % | ^ | & | * | ( | ) |BckSpc| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Delete| F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |LShLCt|LShLCt| Home | End |------| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | TG(7)|------|------|------| Base | ----- | MO(4)| Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + + [_NUMBRS] = LAYOUT_planck_mit( // + KC_MPLY, 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_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, // + TG(_NUMPD), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(_BASE), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + + /* + Numbers Layer [4] + * ,-----------------------------------------------------------------------------------. + * | Play | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |BckSpc| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Delete| F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | # | / | PgUp | PgDwn|------| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | TG(7)|------|------|------| MO(3)| ----- | Base | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + + [_PLOVER] = LAYOUT_planck_mit( // + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, // + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, // + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, // + EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX), + /* Plover Layer [5] + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + + [_FEATURS] = LAYOUT_planck_mit( // + LCTL(LALT(KC_DEL)), DO_RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, TD(TD_DEG_DEGF), TD(TD_SMILEY), KC_DEL, // + RGB_VAI, RGB_VAD, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DF(_BASE), DF(_COLEMAK), DF(_DVORAK), TO(_PLOVER), MY_RGBCON, // + KC_TRNS, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, CK_ON, CK_OFF, KC_ENTER, // + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(_MOUSY), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + /* + Special Features Layer [6] + * ,-----------------------------------------------------------------------------------. + * |C+A+DL| Reset| Debug|RGBTog|RGBMod| Hue+ | Hue- | Sat+ | Sat- |Unicod| Emoji|Delete| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |RGBVAI|RGBVAD|MU_MOD| AU_ON|AU_OFF|RALTGU|SALTGU| Base |Colemk|Dvorak|Plover|RGBCON| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |------|MUV_DE|MUV_IN| MU_ON|MU_OFF| MI_ON|MI_OFF|TERMON|TRMOFF|CLK-ON|CLKOFF|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |------|------|------|------|------| TG(8) |------|------|------|------|------| + * `-----------------------------------------------------------------------------------' + */ + + [_NUMPD] = LAYOUT_planck_mit( // + KC_ESC, KC_HOME, KC_UP, KC_END, KC_PERC, KC_LCBR, KC_RCBR, KC_TAB, KC_P7, KC_P8, KC_P9, KC_BSPC, // + KC_TILD, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSLS, KC_LBRC, KC_RBRC, KC_PSLS, KC_P4, KC_P5, KC_P6, KC_PMNS, // + KC_LSFT, KC_SLSH, KC_CUT, KC_COPY, KC_PASTE, KC_LT, KC_GT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PPLS, // + TO(_BASE), KC_LEAD, KC_LGUI, KC_LALT, KC_LCPO, KC_SPC, KC_RCPC, KC_HASH, KC_P0, KC_PDOT, KC_PENT), + /* + Numpad Layer [7] + * ,-----------------------------------------------------------------------------------. + * | Esc | Home | Up | End | % | { | } | Tab | 7 | 8 | 9 |BckSpc| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | Left | Down | Right| \ | [ | ] | / | 4 | 5 | 6 | - | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| / |Ctrl+X|Ctrl+C|Ctrl+V| < | > | * | 1 | 2 | 3 | + | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Base |Leader| Alt | OS |LCtl/(| Space |)/RCtl| # | 0 | . |Enter | + * `-----------------------------------------------------------------------------------' + */ + [_TABULA] = LAYOUT_planck_mit( // + KC_ESC, KC_ALTF4, VLK_TOG, PRINT_WPM_KEY, WAKE_ANI_TOG, WAKE_AUD_TOG, KC_REDO, UC_MOD, UC_M_WC, CG_TOGG, AG_TOGG, KC_DLINE, // + KC_NXTAB, KC_SLCTALL, KC_SAVE, KC_TRNS, KC_FIND, SH_TG, SH_TG, IRONY, KC_LCUT, KC_LCOPY, KC_TRNS, KC_KILL, // + KC_LSFT, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_PRVWD, KC_NXTWD, TG(_MOUSY), KC_TRNS, KC_HOME, KC_END, KC_SFTENT, // + TO(_BASE), KC_LCTL, KC_LGUI, KC_LALT, KC_LSPO, ALT_TAB, KC_RSPC, KC_PRVWD, KC_BRID, KC_BRIU, KC_NXTWD), + /* Tabular Layer [8] + * ,-----------------------------------------------------------------------------------. + * | Esc |Alt+F4|Veloci| WPM |WakANI|WakAUD|Ctrl+Y|UCMode|UCWinC|CtGUTg|AltGTg| DLine| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab |Ctrl+A|Ctrl+S|------|Ctrl+F| SWAP | SWAP | ⸮^‽ |CutLin|CpyLin|------|DelLin| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift|Ctrl+Z|Ctrl+X|Ctrl+C|Ctrl+V|PrVWin|NxtWin| TG(8)|------| Home | End |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Base | LCtrl| Alt | OS |LSft/(| Alt+Tab |)/RSft|PrvSel|ScrBr-|ScrBr+|NxtSel| + * `-----------------------------------------------------------------------------------' + */ + + [_MOUSY] = LAYOUT_planck_mit( // + KC_ESC, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, UC_MOD, UC_M_WC, CG_TOGG, AG_TOGG, KC_BSPC, // + KC_TAB, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, IRONY, VLK_TOG, KC_TRNS, KC_TRNS, KC_TRNS, // + KC_LSFT, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_PRVWD, KC_NXTWD, KC_TRNS, KC_HOME, KC_BTN3, KC_END, KC_SFTENT, // + TO(_BASE), KC_LCTL, KC_LGUI, KC_LALT, KC_BTN1, ALT_TAB, KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R)}; +/* MousePad Layer [9] + * ,-----------------------------------------------------------------------------------. + * | Esc |MsBtn1| MsUp |MsBtn2|------|------|------|UCMode|UCWinC|CtGUTg|AltGTg|BckSpc| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ |MsLeft|MsDown|MsRigt|------|------|------| ⸮^‽ |Veloci|------|------|------| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift|------|Ctrl+X|Ctrl+C|Ctrl+V|------|------|------| Home |MsBtn3| End |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Base | LCtrl| Alt | OS |MsBtn1| Alt+Tab |MsBtn2|MsWhlL|MsWhlD|MsWhlU|MsWhlR| + * `-----------------------------------------------------------------------------------' + */ + +// Define RGB layers | assign leds and their values for each rgb layer +const rgblight_segment_t PROGMEM my_warning_layer[] = RGBLIGHT_LAYER_SEGMENTS({1, 9, HSV_RED}, {0, 1, HSV_RED}); +const rgblight_segment_t PROGMEM my_allgood_layer[] = RGBLIGHT_LAYER_SEGMENTS({1, 9, HSV_GREEN}, {0, 1, HSV_GREEN}); +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_RED}, {8, 1, HSV_RED}); +const rgblight_segment_t PROGMEM my_number_layer[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_MAGENTA}, {8, 1, HSV_MAGENTA}); +const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_GREEN}, {8, 1, HSV_GREEN}); +const rgblight_segment_t PROGMEM my_tabula_layer[] = RGBLIGHT_LAYER_SEGMENTS({3, 4, HSV_CORAL}, {1, 1, HSV_CORAL}, {8, 1, HSV_CORAL}); +const rgblight_segment_t PROGMEM my_mousy_layer[] = RGBLIGHT_LAYER_SEGMENTS({3, 4, HSV_TURQUOISE}, {1, 1, HSV_TURQUOISE}, {8, 1, HSV_TURQUOISE}, {7, 1, HSV_MAGENTA}); +const rgblight_segment_t PROGMEM my_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({3, 4, HSV_GOLD}, {1, 1, HSV_GOLD}, {8, 1, HSV_GOLD}, {7, 1, HSV_BLUE}); +const rgblight_segment_t PROGMEM my_features_layer[] = RGBLIGHT_LAYER_SEGMENTS({3, 4, HSV_BLUE}, {1, 1, HSV_BLUE}, {8, 1, HSV_BLUE}); +const rgblight_segment_t PROGMEM my_base_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, HSV_BLACK}); +const rgblight_segment_t PROGMEM my_colemak_layer[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_GREEN}); +const rgblight_segment_t PROGMEM my_dvorak_layer[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_ORANGE}); +const rgblight_segment_t PROGMEM my_plover_layer[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_GOLD}); + +// Define the array of rgb layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(my_base_layer, // Base Layer + my_colemak_layer, // Overrides previous layer + my_dvorak_layer, // Overrides previous layers + my_symbol_layer, // Overrides previous layers + my_number_layer, // ...etc my_features_layer, // Overrides layers + my_plover_layer, // + my_features_layer, // + my_numpad_layer, // + my_tabula_layer, // + my_mousy_layer, // + my_capslock_layer, // + my_warning_layer, // + my_allgood_layer); // CapsLock Layer); + +// Configure encoders +bool encoder_update_user(uint8_t index, bool clockwise) { + if (musical_mode) { + if (clockwise) { + tap_code16(MU_MOD); + } else { + tap_code16(MU_MOD); + } + } else { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo += 1; + } else { + muse_tempo -= 1; + } + } + } else { + if (index == 0) { /* First encoder */ + uint16_t held_keycode_timer = timer_read(); + switch (biton32(layer_state)) { + case 0: // Base Layer + if ((get_mods() & MOD_MASK_GUI)) { // GUI-ed + if (clockwise) { + tap_code(KC_RIGHT); + + } else { + tap_code(KC_LEFT); + } + } else if ((get_mods() & MOD_MASK_ALT)) { // Alt-ed + if (clockwise) { + tap_code16(LALT(KC_TAB)); // Alt+Tabbing + } else { + tap_code16(LSA(KC_TAB)); + } + } else if ((get_mods() & MOD_MASK_SHIFT)) { // Shifted + const uint8_t _real_mods = get_mods(); + unregister_code16(KC_LSFT); + unregister_code16(KC_RSFT); + clear_mods(); + if (clockwise) { + tap_code16(KC_MS_WH_DOWN); + } else { + tap_code16(KC_MS_WH_UP); + } + set_mods(_real_mods); + } else if ((get_mods() & MOD_MASK_CTRL)) { // Ctrl-ed + if (clockwise) { + tap_code16(RCTL(KC_TAB)); // Ctrl+Tabbing + } else { + tap_code16(RCS(KC_TAB)); + } + } else { // Normal or unspecified modifiers + if (clockwise) { + // Volume control requires extra timer to function correctly + register_code(KC_VOLU); + while (timer_elapsed(held_keycode_timer) < TAP_CODE_DELAY) { + // no-op + } + unregister_code(KC_VOLD); + } else { + register_code(KC_VOLD); + while (timer_elapsed(held_keycode_timer) < TAP_CODE_DELAY) { + // no-op + } + unregister_code(KC_VOLU); + } + } + return false; + break; + case 3: // Symbols Layer + if (clockwise) { + tap_code(KC_WH_D); // Mouse wheeling + } else { + tap_code(KC_WH_U); + } + return false; + break; + case 4: // Numbers Layer + if (clockwise) { + tap_code(KC_WH_D); // Mouse wheeling + } else { + tap_code(KC_WH_U); + } + return false; + break; + case 6: // Features Layer + if (clockwise) { + tap_code16(KC_DOWN); + } else { + tap_code16(KC_UP); + } + default: // Any other layer + if ((get_mods() & MOD_MASK_CSAG)) { + if (clockwise) { + WITHOUT_MODS({ SEND_STRING(SS_TAP(X_RIGHT)); }); + } else { + WITHOUT_MODS({ SEND_STRING(SS_TAP(X_LEFT)); }); + } + } else { + if (clockwise) { + tap_code(KC_DOWN); // Simple Up/Down + } else { + tap_code(KC_UP); + } + } + return false; + break; + } + } else if (index == 1) { /* Second encoder (if we had one) */ + if (clockwise) { + tap_code16(LCTL(KC_LEFT)); // Ctrl+Left/Right + } else { + tap_code16(LCTL(KC_RIGHT)); + } + } + } + } + return true; +} + +// OLED CONFIGURATION +/* +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00}; + + oled_write_P(qmk_logo, false); +} +*/ + +// Process Combo events +void process_combo_event(uint16_t combo_index, bool pressed) { + switch (combo_index) { + case ZC_COPY: + if (pressed) { + tap_code16(LCTL(KC_C)); + } + break; + case XV_PASTE: + if (pressed) { + tap_code16(LCTL(KC_V)); + } + break; + } +} + +// Runs every time a key is pressed or released +bool process_record_user(uint16_t keycode, keyrecord_t* record) { +#ifdef CONSOLE_ENABLE + dprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); +#endif + // Store the current modifier state in the variable for later reference + mod_state = get_mods(); + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + PLAY_SONG(qwerty_song); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + PLAY_SONG(colemak_song); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + PLAY_SONG(dvorak_song); + } + return false; + break; + case PLOVER: + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); +#endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); +#endif + layer_off(_PLOVER); + } + return false; + break; + case MO_SYMBLS: + if (record->event.pressed) { + layer_on(_SYMBLS); + } else { + layer_off(_SYMBLS); + } + return false; + case MO_NUMBRS: + if (record->event.pressed) { + layer_on(_NUMBRS); + } else { + layer_off(_NUMBRS); + } + return false; + case MO_FEATURS: + if (record->event.pressed) { + layer_on(_FEATURS); + } else { + layer_off(_FEATURS); + } + return false; + case MUSIC_ON: + if (record->event.pressed) { + musical_mode = true; + register_code16(MU_ON); + } else { + unregister_code16(MU_ON); + } + break; + case MUSIC_OFF: + if (record->event.pressed) { + musical_mode = false; + register_code16(MU_OFF); + } else { + unregister_code16(MU_OFF); + } + break; + case KC_PRVWD: // Control+Left + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_LEFT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + } + break; + case KC_NXTWD: // Control+Right + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_RIGHT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + } + break; + case KC_PRVTAB: // Control+Shift+Tab + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_mods(mod_config(MOD_LSFT)); + register_code(KC_TAB); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_mods(mod_config(MOD_LSFT)); + unregister_code(KC_TAB); + } + break; + case KC_NXTAB: // Control+Tab + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_TAB); + } else { + register_mods(mod_config(MOD_LSFT)); + register_code(KC_TAB); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + } + break; + case KC_LSTRT: // Basically just Home + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + // CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + register_code(KC_HOME); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } else { + unregister_code(KC_HOME); + } + } + break; + case KC_LEND: // Basically just End + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + // CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + register_code(KC_END); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } else { + unregister_code(KC_END); + } + } + break; + case KC_DLINE: // Control+BackSpace + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_BSPC); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_BSPC); + } + break; + case KC_COPY: // Copy: Control+C + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_C); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_C); + } + return false; + case KC_PASTE: // Paste: Control+V + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_V); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_V); + } + return false; + case KC_CUT: // Cut: Control+X + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_X); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_X); + } + return false; + break; + case KC_UNDO: // Undo: Control+Z + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_Z); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_Z); + } + return false; + case KC_REDO: // Redo: Control+Y + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_Y); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_Y); + } + break; + case KC_SAVE: // Save: Control+S + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_S); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_S); + } + return false; + case KC_FIND: // Find: Control+F + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_F); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_F); + } + return false; + case KC_SLCTALL: // Select All: Control+A + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_A); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_A); + } + return false; + case KC_KILL: // Kill: Delete Line + if (record->event.pressed) { + tap_code(KC_HOME); + register_mods(mod_config(MOD_LSFT)); + tap_code(KC_END); + unregister_mods(mod_config(MOD_LSFT)); + tap_code(KC_DELETE); + } else { + } + return false; + case KC_LCUT: // Cut Line + if (record->event.pressed) { + tap_code(KC_HOME); + register_mods(mod_config(MOD_LSFT)); + tap_code(KC_END); + unregister_mods(mod_config(MOD_LSFT)); + register_mods(mod_config(MOD_LCTL)); + tap_code(KC_X); + unregister_mods(mod_config(MOD_LCTL)); + } else { + } + return false; + case KC_LCOPY: // Copy Line + if (record->event.pressed) { + tap_code(KC_HOME); + register_mods(mod_config(MOD_LSFT)); + tap_code(KC_END); + unregister_mods(mod_config(MOD_LSFT)); + register_mods(mod_config(MOD_LCTL)); + tap_code(KC_C); + unregister_mods(mod_config(MOD_LCTL)); + tap_code(KC_END); + } else { + } + return false; + case KC_ALTF4: // Close Window: Alt+F4 + if (record->event.pressed) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_F4); + } else { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_F4); + } + return false; + case ALT_TAB: // Change Window: Super ⭍ Alt+Tab + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); +#ifdef CONSOLE_ENABLE + dprint("I've tabbed to another window!\n"); +#endif + } else { + unregister_code(KC_TAB); + } + break; + case KC_BSPC: { + // Initialize a boolean variable that keeps track + // of the delete key status: registered or not? + static bool delkey_registered; + if (record->event.pressed) { + // Detect the activation of either shift keys + if (mod_state & MOD_MASK_SHIFT) { + // First temporarily canceling both shifts so that + // shift isn't applied to the KC_DEL keycode + del_mods(MOD_MASK_SHIFT); + register_code(KC_DEL); + // Update the boolean variable to reflect the status of KC_DEL + delkey_registered = true; + // Reapplying modifier state so that the held shift key(s) + // still work even after having tapped the Backspace/Delete key. + set_mods(mod_state); + return false; + } + } else { // on release of KC_BSPC + // In case KC_DEL is still being sent even after the release of KC_BSPC + if (delkey_registered) { + unregister_code(KC_DEL); + delkey_registered = false; + return false; + } + } + } + // Let QMK process the KC_BSPC keycode as usual outside of shift + return true; + + case DO_RESET: // Reset button with LED indication + if (record->event.pressed) { + rgblight_set_effect_range(0, 9); + rgblight_sethsv_noeeprom(HSV_RED); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_blink_layer(11, 5000); + reset_keyboard(); + } + break; + case WAKE_ANI_TOG: // Toggle the Wakeup RGB animation + if (record->event.pressed) { + user_config.do_wakeup_animation ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + if (user_config.do_wakeup_animation) { + print("Wake animation enabled.\n"); + PLAY_SONG(slctl_on); + + } else { + print("Wake animation disabled.\n"); + PLAY_SONG(slctl_off); + } + } + break; + case WAKE_AUD_TOG: // Toggle the wake-up music + if (record->event.pressed) { + user_config.do_wakeup_audio ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + if (user_config.do_wakeup_audio) { + print("Wake music enabled.\n"); + PLAY_SONG(slctl_on); + + } else { + print("Wake music disabled.\n"); + PLAY_SONG(slctl_off); + } + } + break; + case IRONY: // Outputs Irony/Interrobang symbols + if ((get_mods() & MOD_MASK_SHIFT)) { + irony_shifted = true; + } else { + irony_shifted = false; + } + if (record->event.pressed) { + if (irony_shifted) { + send_unicode_string(bang_str); + } else { + send_unicode_string(irony_str); + } + irony_active = true; + irony_pressed_time = timer_read(); + } else { + irony_active = false; + irony_pressed_time = 0; + irony_shifted = false; + } + return false; + case TG(_NUMPD): // Toggle the NumPad layer + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(hello_song); +#endif + print("I've activated the NumPad!\n"); + } else { + } + break; + case TG(_TABULA): // Toggle the Tabula layer + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(lover_song); +#endif + print("I've activated Tabular!\n"); + } else { + } + break; + case TG(_MOUSY): // Toggle the MouseyPad layer + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(funk_song); +#endif + print("I've activated the MousePad!\n"); + } else { + } + break; + case TO(_BASE): // Return to the base layer + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(planck_song); +#endif + print("I've returned to the Base Layer!\n"); + } else { + } + break; + case PRINT_WPM_KEY: // Prints the current average words-per-minute to the console + sprintf(wpm_str, "Current WPM: %hu", get_current_wpm()); + printf("%s\n", wpm_str); + break; + + case MY_RGBCON: // Cycles through custom RGB animation presets + if (record->event.pressed) { + // when keycode RGB-CON is pressed + user_config.rgbcon_tracker = rgbcon_tracker + 1; // Toggles the status + eeconfig_update_user(user_config.raw); + switch (rgbcon_tracker) { + case 0: + rgblight_set_effect_range(0, 9); + rgblight_sethsv(HSV_BLACK); + rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT); + print("Changed RGB mode to: Disabled RGB\n"); + rgbcon_tracker++; + break; + case 1: + rgblight_set_effect_range(0, 9); + rgblight_sethsv(HSV_WHITE); + rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT); + print("Changed RGB mode to: Static White\n"); + rgbcon_tracker++; + break; + case 2: + rgblight_set_effect_range(0, 9); + rgblight_sethsv(HSV_CYAN); + rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT); + print("Changed RGB mode to: Static Cyan\n"); + rgbcon_tracker++; + break; + case 3: + rgblight_set_effect_range(0, 9); + rgblight_sethsv(HSV_WHITE); + rgblight_mode(RGBLIGHT_MODE_BREATHING); + print("Changed RGB mode to: Breathing Lights\n"); +#ifdef AUDIO_ENABLE + print("Played Marching song!\n"); + PLAY_SONG(imp_march_song); +#endif + rgbcon_tracker++; + break; + case 4: + rgblight_set_effect_range(0, 9); + rgblight_sethsv(HSV_RED); + rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL); + print("Changed RGB mode to: Rainbow Swirl\n"); + rgbcon_tracker++; + break; + case 5: + rgblight_set_effect_range(0, 9); + rgblight_sethsv(HSV_CYAN); + rgblight_mode(RGBLIGHT_MODE_RAINBOW_MOOD); + print("Changed RGB mode to: Rainbow Mood\n"); +#ifdef AUDIO_ENABLE + print("Played Game Over song!\n"); + PLAY_SONG(gameover_song); +#endif + rgbcon_tracker = 0; + break; + case 6: + rgblight_set_effect_range(0, 9); + rgblight_sethsv(HSV_BLACK); + rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT); + print("Changed RGB mode to: Disabled RGB\n"); + rgbcon_tracker = 1; + break; + } + } else { + } + break; + } + return true; +}; + +// Runs *after* a key is pressed +void post_process_record_user(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + case DEBUG: + // Blink the warning layer when the debug key is pressed + rgblight_blink_layer_repeat(debug_enable ? 11 : 12, 1500, 3); + + // Update the console with the debug mode status + if (debug_enable) { + print("Debug mode enabled.\n"); + PLAY_SONG(slctl_on); + + } else { + print("Debug mode disabled.\n"); + PLAY_SONG(slctl_off); + } + break; + } +} + +// RGB Default Layer assignments +layer_state_t default_layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _SYMBLS, _NUMBRS, _FEATURS); + + // Sets the default RGB layer states + rgblight_set_layer_state(0, layer_state_cmp(state, _BASE)); + rgblight_set_layer_state(1, layer_state_cmp(state, _COLEMAK)); + rgblight_set_layer_state(2, layer_state_cmp(state, _DVORAK)); + return state; +} + +// RGB Layer assignments +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _SYMBLS, _NUMBRS, _FEATURS); + + // Sets the RGB layer states + rgblight_set_layer_state(5, layer_state_cmp(state, _PLOVER)); + rgblight_set_layer_state(6, layer_state_cmp(state, _FEATURS)); + rgblight_set_layer_state(3, layer_state_cmp(state, _SYMBLS)); + rgblight_set_layer_state(4, layer_state_cmp(state, _NUMBRS)); + rgblight_set_layer_state(7, layer_state_cmp(state, _NUMPD)); + rgblight_set_layer_state(8, layer_state_cmp(state, _TABULA)); + rgblight_set_layer_state(9, layer_state_cmp(state, _MOUSY)); + return state; +} + +// Runs the wakeup rgb animation + music +void rgb_wakeup_sequence(void) { + if (waking_up) { + if ((timer_elapsed(wake_rgb_timer) > WAKE_ANIMATION_TIMER_FREQUENCY)) { + if (wake_rgb_count < 1) { + rgblight_sethsv_noeeprom(HSV_OFF); + rgblight_set_effect_range(0, 9); + } else if (wake_rgb_count < 2 && wake_rgb_count > 0) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 2); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(2, 9); + } else if (wake_rgb_count < 3 && wake_rgb_count > 1) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 2); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(2, 9); + } else if (wake_rgb_count < 4 && wake_rgb_count > 2) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 3); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(3, 9); + } else if (wake_rgb_count < 5 && wake_rgb_count > 3) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 4); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(4, 9); + } else if (wake_rgb_count < 6 && wake_rgb_count > 4) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 5); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(5, 9); + } else if (wake_rgb_count < 7 && wake_rgb_count > 5) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 6); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(6, 9); + } else if (wake_rgb_count < 8 && wake_rgb_count > 6) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 7); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(7, 9); + } else if (wake_rgb_count < 9 && wake_rgb_count > 7) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 8); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(8, 9); + } else if (wake_rgb_count < 10 && wake_rgb_count > 8) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 0); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(0, 9); + } else if (wake_rgb_count < 11 && wake_rgb_count > 9) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 8); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(8, 9); + } else if (wake_rgb_count < 12 && wake_rgb_count > 10) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 7); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(7, 9); + } else if (wake_rgb_count < 13 && wake_rgb_count > 11) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 6); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(6, 9); + } else if (wake_rgb_count < 14 && wake_rgb_count > 12) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 5); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(5, 9); + } else if (wake_rgb_count < 15 && wake_rgb_count > 13) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 4); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(4, 9); + } else if (wake_rgb_count < 16 && wake_rgb_count > 14) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 3); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(3, 9); + } else if (wake_rgb_count < 17 && wake_rgb_count > 15) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 2); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(2, 9); + } else if (wake_rgb_count < 18 && wake_rgb_count > 16) { + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 1); + rgblight_sethsv_noeeprom(HSV_WHITE); + rgblight_set_effect_range(1, 9); + } else if (wake_rgb_count > 17) { + // Final frame of wake-up rgb animation + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_set_effect_range(0, 9); + waking_up = false; + print("I have awoken!\n"); +#ifdef AUDIO_ENABLE + // Play the wake-up sound *after* we finish the animation + if (do_wake_audio) { + PLAY_SONG(puzzle_song); + } +#endif + } + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + wake_rgb_count++; + wake_rgb_timer = timer_read(); + } + } +} + +// Spits out some unicode special characters in response to a tap-dance +void send_degree_symbol(qk_tap_dance_state_t* state, void* user_data) { + switch (state->count) { + case 4: + // ℃ + unicode_input_start(); + register_hex(0x2103); + unicode_input_finish(); + print("You pressed the Degrees key 4 times!\n"); + reset_tap_dance(state); + break; + case 3: + //℉ + unicode_input_start(); + register_hex(0x2109); + unicode_input_finish(); + print("You pressed the Degrees key 3 times!\n"); + reset_tap_dance(state); + break; + case 2: + // € + unicode_input_start(); + register_hex(0x20AC); + unicode_input_finish(); + print("You pressed the Degrees key 2 times!\n"); + reset_tap_dance(state); + break; + case 1: + // ° + unicode_input_start(); + register_hex(0x00B0); + unicode_input_finish(); + print("You pressed the Degrees key 1 time!\n"); + reset_tap_dance(state); + break; + } +} + +// Handles per-key configuration of Retro-Tapping +bool get_retro_tapping(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + default: + return false; + } +} +// Handles per-key configuration of Mod-Tap-Interrupt +bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + default: + return false; + } +} +// Handles per-key configuration of Tapping Force-Hold +bool get_tapping_force_hold(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + default: + return false; + } +} +// Handles per-key configuration of Permissive-Hold +bool get_permissive_hold(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + default: + return false; + } +} +/* + * The following two functions make leader keys "musical" + * by playing sound at different stages of the leader chord + */ +// Called when you tap the Leader key +void leader_start(void) { +#ifdef AUDIO_ENABLE + PLAY_SONG(leader_started); +#endif +} +// Called when either the leader sequence is completed, or the leader timeout is hit +void leader_end(void) { + if (did_leader_succeed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(leader_succeed); +#endif + } else { +#ifdef AUDIO_ENABLE + PLAY_SONG(leader_fail); +#endif + } +} + +// Monitors and labels the current state of any tap-dances +td_state_t cur_dance(qk_tap_dance_state_t* state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) return TD_SINGLE_TAP; + // Key has not been interrupted, but the key is still held. Means you want to send a 'HOLD'. + else + return TD_SINGLE_HOLD; + } else if (state->count == 2) { + if (state->interrupted) + return TD_DOUBLE_SINGLE_TAP; + else if (state->pressed) + return TD_DOUBLE_HOLD; + else + return TD_DOUBLE_TAP; + } + if (state->count == 3) { + if (state->interrupted || !state->pressed) + return TD_TRIPLE_TAP; + else + return TD_TRIPLE_HOLD; + } else + return TD_UNKNOWN; +} + +// Create an instance of 'td_tap_t' for each tap dance. +static td_tap_t sml_state = {.is_press_action = true, .state = TD_NONE}; +static td_tap_t scap_state = {.is_press_action = true, .state = TD_NONE}; +static td_tap_t slctl_state = {.is_press_action = true, .state = TD_NONE}; +static td_tap_t slalt_state = {.is_press_action = true, .state = TD_NONE}; + +// Left-Shift->Sticky-Caps tap-dance finished +void scap_finished(qk_tap_dance_state_t* state, void* user_data) { + scap_state.state = cur_dance(state); + switch (scap_state.state) { + case TD_SINGLE_HOLD: + register_code(KC_LSFT); + break; + default: + if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { + tap_code(KC_CAPS); + reset_tap_dance(state); + break; + } else { + if ((state->count) >= TAPPING_TOGGLE) { + tap_code(KC_CAPS); + reset_tap_dance(state); + break; + } else { + register_code(KC_LSFT); + break; + } + } + } +} + +// Left-Shift->Sticky-Caps tap-dance reset +void scap_reset(qk_tap_dance_state_t* state, void* user_data) { + unregister_code(KC_LSHIFT); + scap_state.state = TD_NONE; +} + +// Sticky-Left-Control tap-dance finished +void slctl_finished(qk_tap_dance_state_t* state, void* user_data) { + slctl_state.state = cur_dance(state); + switch (slctl_state.state) { + case TD_SINGLE_HOLD: + register_code(KC_LCTL); + break; + default: + if (lctl_sticky) { + unregister_code(KC_LCTL); + lctl_sticky = false; + PLAY_SONG(slctl_off); + reset_tap_dance(state); + break; + } else { + if ((state->count) >= TAPPING_TOGGLE) { + register_code(KC_LCTL); + lctl_sticky = true; + PLAY_SONG(slctl_on); + reset_tap_dance(state); + break; + } else { + register_code(KC_LCTL); + reset_tap_dance(state); + break; + } + } + } +} + +// Sticky-Left-Control tap-dance reset +void slctl_reset(qk_tap_dance_state_t* state, void* user_data) { + if (!lctl_sticky) { + unregister_code(KC_LCTL); + slctl_state.state = TD_NONE; + } else { + slctl_state.state = TD_NONE; + } +} + +// Sticky-Left-Alt tap-dance finished +void slalt_finished(qk_tap_dance_state_t* state, void* user_data) { + slalt_state.state = cur_dance(state); + switch (slalt_state.state) { + case TD_SINGLE_HOLD: + register_code(KC_LALT); + break; + default: + if (lalt_sticky) { + unregister_code(KC_LALT); + lalt_sticky = false; + PLAY_SONG(slalt_off); + reset_tap_dance(state); + break; + } else { + if ((state->count) >= TAPPING_TOGGLE) { + register_code(KC_LALT); + lalt_sticky = true; + PLAY_SONG(slalt_on); + reset_tap_dance(state); + break; + } else { + register_code(KC_LALT); + reset_tap_dance(state); + break; + } + } + } +} + +// Sticky-Left-Alt tap-dance reset +void slalt_reset(qk_tap_dance_state_t* state, void* user_data) { + if (!lalt_sticky) { + unregister_code(KC_LALT); + slalt_state.state = TD_NONE; + } else { + slalt_state.state = TD_NONE; + } +} + +// Smiley key tap-dance finished +void sml_finished(qk_tap_dance_state_t* state, void* user_data) { + sml_state.state = cur_dance(state); + switch (sml_state.state) { + default: + switch (state->count) { + default: + // 👍 + send_unicode_string("👍"); + print("You pressed the Emoji key at least 11 times!\n"); + reset_tap_dance(state); + break; + case 10: + // 👎 + send_unicode_string("👎"); + print("You pressed the Emoji key 10 times!\n"); + reset_tap_dance(state); + break; + case 9: + //🍌 + send_unicode_string("🍌"); + print("You pressed the Emoji key 9 times!\n"); + reset_tap_dance(state); + break; + case 8: + // 🍑 + send_unicode_string("🍑"); + print("You pressed the Emoji key 8 times!\n"); + reset_tap_dance(state); + break; + case 7: + // 🐕 + send_unicode_string("🐕"); + print("You pressed the Emoji key 7 times!\n"); + reset_tap_dance(state); + break; + case 6: + // 🐈 + send_unicode_string("🐈"); + print("You pressed the Emoji key 6 times!\n"); + reset_tap_dance(state); + break; + case 5: + // 🐍 + send_unicode_string("🐍"); + print("You pressed the Emoji key 5 times!\n"); + reset_tap_dance(state); + break; + case 4: + //🐒 + send_unicode_string("🐒"); + print("You pressed the Emoji key 4 times!\n"); + reset_tap_dance(state); + break; + case 3: + // 💩 + send_unicode_string("💩"); + print("You pressed the Emoji key 3 times!\n"); + reset_tap_dance(state); + break; + case 2: + // 🙁 + send_unicode_string("🙁"); + print("You pressed the Emoji key 2 times!\n"); + reset_tap_dance(state); + break; + case 1: + // 🙂 + send_unicode_string("🙂"); + print("You pressed the Emoji key 1 time!\n"); + reset_tap_dance(state); + break; + } + break; + case TD_SINGLE_HOLD: + // 👍 + send_unicode_string("👍"); + print("You single-held the Emoji key!\n"); + reset_tap_dance(state); + break; + case TD_DOUBLE_HOLD: + // 👎 + send_unicode_string("👎"); + print("You double-held the Emoji key!\n"); + reset_tap_dance(state); + break; + case TD_TRIPLE_HOLD: + //🤯 + send_unicode_string("🤯"); + print("You triple-held the Emoji key!\n"); + reset_tap_dance(state); + break; + case TD_NONE: + reset_tap_dance(state); + break; + } +} +void sml_reset(qk_tap_dance_state_t* state, void* user_data) { sml_state.state = TD_NONE; } + +// Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for °, twice for ℉, thrice for ℃ + [TD_DEG_DEGF] = ACTION_TAP_DANCE_FN(send_degree_symbol), // + [TD_LSHFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, scap_finished, scap_reset, 200), // + [TD_LCTL_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, slctl_finished, slctl_reset, 200), // + [TD_LALT_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, slalt_finished, slalt_reset, 200), // + [TD_SMILEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, sml_finished, sml_reset, 500), +}; + +// Dip-Switch controls +void dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: { +#ifdef AUDIO_ENABLE + static bool play_sound = false; +#endif + if (active) { +#ifdef AUDIO_ENABLE + if (play_sound) { + PLAY_SONG(plover_song); + } +#endif + layer_on(_ADJUST); + } else { +#ifdef AUDIO_ENABLE + if (play_sound) { + PLAY_SONG(plover_gb_song); + } +#endif + layer_off(_ADJUST); + } +#ifdef AUDIO_ENABLE + play_sound = true; +#endif + break; + } + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } +} + +// Runs at every complete matrix scan +void matrix_scan_user(void) { + // Some code for controlling MIDI output +#ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } else { + if (muse_counter) { + stop_all_notes(); + muse_counter = 0; + } + } +#endif + // Check the shift-state and hold-time for the Irony key + if (irony_active) { + if ((get_mods() & MOD_MASK_SHIFT)) { + irony_shifted = true; + } else { + irony_shifted = false; + } + if (timer_elapsed(irony_pressed_time) >= IRONY_HOLD_DELAY) { + if (irony_shifted) { + send_unicode_string(bang_str); + } else { + send_unicode_string(irony_str); + } + } + } + + // Monitor and respond to the current Alt+Tab state + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } + // Monitor and perform leader-key chords + LEADER_DICTIONARY() { + did_leader_succeed = leading = false; + + SEQ_ONE_KEY(KC_E) { + SEND_STRING(SS_LCTL(SS_LSFT("t"))); + did_leader_succeed = true; + } + SEQ_ONE_KEY(KC_C) { + SEND_STRING(SS_LGUI("r") SS_DELAY(250) "calc\n"); + did_leader_succeed = true; + } + else SEQ_ONE_KEY(KC_V) { + SEND_STRING(SS_LCTL("v")); + did_leader_succeed = true; + } + else SEQ_TWO_KEYS(KC_E, KC_D) { + SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c")); + did_leader_succeed = true; + } + else SEQ_TWO_KEYS(KC_A, KC_C) { + SEND_STRING(SS_LCTL("a") SS_LCTL("c")); + did_leader_succeed = true; + } + else SEQ_THREE_KEYS(KC_C, KC_A, KC_T) { + send_unicode_string("😸"); + did_leader_succeed = true; + } + else SEQ_THREE_KEYS(KC_B, KC_A, KC_T) { + send_unicode_string("🦇"); + did_leader_succeed = true; + } + else SEQ_THREE_KEYS(KC_D, KC_O, KC_G) { + send_unicode_string("🐶"); + did_leader_succeed = true; + } + else SEQ_FIVE_KEYS(KC_S, KC_M, KC_I, KC_L, KC_E) { + send_unicode_string("🙂"); + did_leader_succeed = true; + } + else SEQ_FOUR_KEYS(KC_H, KC_A, KC_P, KC_Y) { + send_unicode_string("🙂"); + did_leader_succeed = true; + } + else SEQ_FIVE_KEYS(KC_H, KC_A, KC_P, KC_P, KC_Y) { + send_unicode_string("🙂"); + did_leader_succeed = true; + } + else SEQ_THREE_KEYS(KC_S, KC_A, KC_D) { + send_unicode_string("🙁"); + did_leader_succeed = true; + } + else SEQ_THREE_KEYS(KC_Y, KC_E, KC_S) { + send_unicode_string("👍"); + did_leader_succeed = true; + } + else SEQ_TWO_KEYS(KC_N, KC_O) { + send_unicode_string("👎"); + did_leader_succeed = true; + } + else SEQ_THREE_KEYS(KC_W, KC_O, KC_W) { + send_unicode_string("🤯"); + did_leader_succeed = true; + } + else SEQ_THREE_KEYS(KC_P, KC_O, KC_O) { + send_unicode_string("💩"); + did_leader_succeed = true; + } + else SEQ_FOUR_KEYS(KC_P, KC_O, KC_O, KC_P) { + send_unicode_string("💩"); + did_leader_succeed = true; + } + else SEQ_FOUR_KEYS(KC_B, KC_O, KC_A, KC_T) { + send_unicode_string("⛵"); + did_leader_succeed = true; + } + leader_end(); + } + // Run the wake-up RGB animation if performing wake-up + if (do_wake_animation) { + rgb_wakeup_sequence(); + } +} + +// Music mask controls + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} + +void suspend_power_down_user(void) { + // Runs during start of system suspend + print("Going to sleep."); +} + +void suspend_wakeup_init_user(void) { + // Runs during wake from system suspend +} + +void keyboard_post_init_user(void) { + // Print welcome message to console + printf("Welcome to %s!\n", KEEB_MODEL_NAME); + // Read the user config from EEPROM + user_config.raw = eeconfig_read_user(); + do_wake_animation = user_config.do_wakeup_animation; + do_wake_audio = user_config.do_wakeup_audio; + rgbcon_tracker = user_config.rgbcon_tracker; + + // Tell the console the status of saved config + if (user_config.do_wakeup_animation) { + print("Wake animation enabled.\n"); + } else { + print("Wake animation disabled.\n"); + } + if (user_config.do_wakeup_audio) { + print("Wake music enabled.\n"); + } else { + print("Wake music disabled.\n"); + } + switch (user_config.rgbcon_tracker) { + case 2: + print("RGB mode: Static White\n"); + break; + case 3: + print("RGB mode: Static Cyan\n"); + break; + case 4: + print("RGB mode: Breathing Lights\n"); + break; + case 5: + print("RGB mode: Rainbow Swirl\n"); + break; + case 6: + print("RGB mode: Rainbow Mood\n"); + break; + default: + print("RGB mode: Disabled RGB\n"); + break; + } + + // Enable the LED layers + rgblight_enable_noeeprom(); // Enables RGB, without saving settings + rgblight_layers = my_rgb_layers; + + /* + * Initialize the LED crawl wake animation here + * To perform it on just the first wake + */ + wake_rgb_timer = timer_read(); + waking_up = true; + + // Initialize OLED display + /* + if (USING_OLED_DISPLAY) { + print("Initializing display!\n"); + render_logo(); + } + */ +} + +// EEPROM is getting reset! +void eeconfig_init_user(void) { + user_config.raw = 0; + eeconfig_update_user(user_config.raw); // Write default value to EEPROM now +} + +// Communicate 2-way with host via HID_RAW +#ifdef RAW_ENABLE +void raw_hid_receive(uint8_t* data, uint8_t length) { + // Sample code below simply echoes back to the console any data received by the raw_hid process + +# ifdef CONSOLE_ENABLE + dprint("Received USB data from host system:\n"); + dprintf("%s\n", data); +# endif +} +#endif diff --git a/keyboards/planck/keymaps/rootiest/readme.md b/keyboards/planck/keymaps/rootiest/readme.md new file mode 100644 index 000000000000..7932ce3fee3c --- /dev/null +++ b/keyboards/planck/keymaps/rootiest/readme.md @@ -0,0 +1,37 @@ + +![Layout Image](https://github.com/rootiest/rootiest.github.io/raw/main/img/rootiest-planck_legend.png) + +# The Rootiest Planck Layout + +This layout takes advantage of as many QMK features as possible for a huge complicated beast of a keyboard! + +## Features include + +- Encoder functions further extended by layers and modifiers +- Extensive use of the on-board speaker +- Extensive use of the backlight LEDs for startup animations, layer indicators, and bootloader/debug warnings, etc +- Many layers, both toggled and momentary. +- A toggled Numpad layer, with an emphasis on coding/accounting and with arrow keys on WASD +- A "Tabular" layer accessed by holding Tab with frequently used functions, including Alt+Tab via pressing Space +- A toggled Mouse-keys layer that allows full control of the mouse movement and buttons from the keyboard +- Use of Space-Cadet Shift/Ctrl keys on various layers +- Hold enter for Right-Shift +- Shift+BackSpace for Delete +- Grave-Esc in the top-left Esc key position +- Music, Terminal, MIDI, and RGB control on Functions layer +- QWERTY, COLEMAK, DVORAK, and PLOVER layers +- Special keys for common Ctrl+ combos like Ctrl+C, Ctrl+V, etc +- Special keys for Copy-Line, Cut-Line, Delete-Line, etc +- Special keys for Ctrl+Alt+Del, Alt+F4, etc +- Settings like rgb animation state and startup animation/sound are stored in the EEPROM to survive restart +- "Sticky keys" with audible indication allow most modifiers to be locked by pressing multiple times in quick succession +- Sticky-locking the Shift key toggles CapsLock instead of locking Shift +- Unicode characters and emoji can be sent via custom tap-dance keys +- Emoji and app-specific functions can be sent via leader-key chording +- VelociKey and word-per-minute tracking are also included + +See the layout here: [Keyboard Layout](http://www.keyboard-layout-editor.com/#/gists/e48e19bc251a8d07ff8475fc1a16f43b) + +To build and flash this keymap, use this command: + + qmk flash -kb planck/rev6 -km rootiest diff --git a/keyboards/planck/keymaps/rootiest/rules.mk b/keyboards/planck/keymaps/rootiest/rules.mk new file mode 100644 index 000000000000..4b93f7db5f9b --- /dev/null +++ b/keyboards/planck/keymaps/rootiest/rules.mk @@ -0,0 +1,26 @@ +SRC += muse.c +ENCODER_ENABLE = yes # Enables basic encoder support +OLED_DRIVER_ENABLE = yes # Enables support for OLED displays +# UNICODE_ENABLE = yes # Allow inputting basic unicode characters +UNICODEMAP_ENABLE = yes # Enable use of Unicode mapping array +# UCIS_ENABLE = yes # Another method for generating Unicode characters via maps +TAP_DANCE_ENABLE = yes # Enable Tap-Dance +NKRO_ENABLE = yes # Enable N-Key rollover +MOUSEKEY_ENABLE = yes # Enable mouse emulation +EXTRAKEY_ENABLE = yes # Allows audio control and System control +RAW_ENABLE = yes # Enable bi-directional communication to host +CONSOLE_ENABLE = yes # Enable outputting debugging data/logs to terminal +WPM_ENABLE = yes # Enable on-board words-per-minute tracking +VELOCIKEY_ENABLE = yes # Enables dynamically changing rgb animation speed based on WPM +LEADER_ENABLE = yes # Enables Leader-Key +COMBO_ENABLE = yes # Enables combo keys +KEY_LOCK_ENABLE = yes # Enables using lock key to maintain holds +# LTO_ENABLE = yes # Does some optimisation to make firmware size smaller +# SWAP_HANDS_ENABLE = yes # Enables the swap hands function +# DEBOUNCE_TYPE = sym_eager_pk # Change debounce algorithm + +# NOTE: The following requires a lot of memory to include +TERMINAL_ENABLE = yes # Enables a command-line-like interface designed to communicate through a text editor with keystrokes + +# NOTE: The following is not yet available in main qmk branch +KEY_OVERRIDE_ENABLE = yes # Allows overiding modifier combos (change Shift+1 without affecting 1 or Shift's normal operation) From 5eb0e406fdc6e0612db18ea5bde93f98c215808d Mon Sep 17 00:00:00 2001 From: Zach White Date: Mon, 9 Aug 2021 08:27:02 -0700 Subject: [PATCH 186/328] make json imports more robust (#13928) --- lib/python/qmk/json_schema.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/python/qmk/json_schema.py b/lib/python/qmk/json_schema.py index 077dfcaa932a..f3992ee71ae5 100644 --- a/lib/python/qmk/json_schema.py +++ b/lib/python/qmk/json_schema.py @@ -17,9 +17,12 @@ def json_load(json_file): try: return hjson.load(json_file.open(encoding='utf-8')) - except json.decoder.JSONDecodeError as e: + except (json.decoder.JSONDecodeError, hjson.HjsonDecodeError) as e: cli.log.error('Invalid JSON encountered attempting to load {fg_cyan}%s{fg_reset}:\n\t{fg_red}%s', json_file, e) exit(1) + except Exception as e: + cli.log.error('Unknown error attempting to load {fg_cyan}%s{fg_reset}:\n\t{fg_red}%s', json_file, e) + exit(1) def load_jsonschema(schema_name): From e6c171bdd639fef41a68902ce5a379a0565ed99b Mon Sep 17 00:00:00 2001 From: Zach White Date: Mon, 9 Aug 2021 08:28:51 -0700 Subject: [PATCH 187/328] Fix generate api (#13930) * Add missing returncode to exit() * fix the aozora/hotswap vendor id --- keyboards/aozora/hotswap/config.h | 2 +- lib/python/qmk/info.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/aozora/hotswap/config.h b/keyboards/aozora/hotswap/config.h index f1eb193a5070..60277f2635b1 100644 --- a/keyboards/aozora/hotswap/config.h +++ b/keyboards/aozora/hotswap/config.h @@ -19,7 +19,7 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xCATS +#define VENDOR_ID 0xCA75 #define PRODUCT_ID 0x4014 #define DEVICE_VER 0x0001 #define MANUFACTURER Salmon Cat Studio diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 47c8bff7a8cb..d23b3592eea2 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -71,7 +71,7 @@ def info_json(keyboard): except jsonschema.ValidationError as e: json_path = '.'.join([str(p) for p in e.absolute_path]) cli.log.error('Invalid API data: %s: %s: %s', keyboard, json_path, e.message) - exit() + exit(1) # Make sure we have at least one layout if not info_data.get('layouts'): From be72a64cf603946102cc2144822b75fa9f92a2ec Mon Sep 17 00:00:00 2001 From: Michele Ferri Date: Mon, 9 Aug 2021 19:04:00 +0200 Subject: [PATCH 188/328] [Keyboard] Add TouhouPad (#13915) * Touhoupad rev 2 * cleanup for PR * fixes after review --- keyboards/pimentoso/touhoupad/config.h | 52 +++++++++++++++++++ keyboards/pimentoso/touhoupad/info.json | 12 +++++ .../touhoupad/keymaps/default/keymap.c | 25 +++++++++ .../touhoupad/keymaps/default/readme.md | 1 + keyboards/pimentoso/touhoupad/readme.md | 19 +++++++ keyboards/pimentoso/touhoupad/rules.mk | 22 ++++++++ keyboards/pimentoso/touhoupad/touhoupad.c | 16 ++++++ keyboards/pimentoso/touhoupad/touhoupad.h | 23 ++++++++ 8 files changed, 170 insertions(+) create mode 100644 keyboards/pimentoso/touhoupad/config.h create mode 100644 keyboards/pimentoso/touhoupad/info.json create mode 100644 keyboards/pimentoso/touhoupad/keymaps/default/keymap.c create mode 100644 keyboards/pimentoso/touhoupad/keymaps/default/readme.md create mode 100644 keyboards/pimentoso/touhoupad/readme.md create mode 100644 keyboards/pimentoso/touhoupad/rules.mk create mode 100644 keyboards/pimentoso/touhoupad/touhoupad.c create mode 100644 keyboards/pimentoso/touhoupad/touhoupad.h diff --git a/keyboards/pimentoso/touhoupad/config.h b/keyboards/pimentoso/touhoupad/config.h new file mode 100644 index 000000000000..8fd4e78116be --- /dev/null +++ b/keyboards/pimentoso/touhoupad/config.h @@ -0,0 +1,52 @@ +/* Copyright 2021 Michele Ferri + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xD00D +#define PRODUCT_ID 0x0031 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Pimentoso +#define PRODUCT TouhouPad rev2 + +#define MATRIX_ROWS 1 +#define MATRIX_COLS 10 + +#define MATRIX_ROW_PINS { D4 } +#define MATRIX_COL_PINS { C6,D7,E6,B4,B6,B2,B3,B1,F7,F6 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN F4 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 12 + #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 */ + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 + #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 + #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +#define DEBOUNCE 5 diff --git a/keyboards/pimentoso/touhoupad/info.json b/keyboards/pimentoso/touhoupad/info.json new file mode 100644 index 000000000000..71698cee9e6e --- /dev/null +++ b/keyboards/pimentoso/touhoupad/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "TouhouPad", + "url": "https://github.com/Pimentoso/TouhouPad_v2", + "maintainer": "Pimentoso", + "width": 8.25, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"label":"esc", "x":5.25, "y":0}, {"label":"enter", "x":6.25, "y":0}, {"label":"slow", "x":0, "y":1}, {"label":"fire", "x":1, "y":1}, {"label":"rapid", "x":2, "y":1}, {"label":"up", "x":6.25, "y":1.75}, {"label":"left", "x":5.25, "y":2.75}, {"label":"down", "x":6.25, "y":2.75}, {"label":"right", "x":7.25, "y":2.75}, {"label":"bomb", "x":3.25, "y":3}] + } + } +} diff --git a/keyboards/pimentoso/touhoupad/keymaps/default/keymap.c b/keyboards/pimentoso/touhoupad/keymaps/default/keymap.c new file mode 100644 index 000000000000..0d1005511057 --- /dev/null +++ b/keyboards/pimentoso/touhoupad/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2021 Michele Ferri + * + * 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] = { + LAYOUT( /* Base */ + KC_LSFT, KC_Z, KC_C, KC_X, KC_LEFT, KC_DOWN, KC_RIGHT, KC_UP, KC_ENT, LT(1, KC_ESC) + ), + LAYOUT( /* RGB controls */ + KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_VAD, RGB_MOD, RGB_VAI, KC_NO, KC_NO + ) +}; diff --git a/keyboards/pimentoso/touhoupad/keymaps/default/readme.md b/keyboards/pimentoso/touhoupad/keymaps/default/readme.md new file mode 100644 index 000000000000..00bf43cb990f --- /dev/null +++ b/keyboards/pimentoso/touhoupad/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for 4pack diff --git a/keyboards/pimentoso/touhoupad/readme.md b/keyboards/pimentoso/touhoupad/readme.md new file mode 100644 index 000000000000..7e122c327b7a --- /dev/null +++ b/keyboards/pimentoso/touhoupad/readme.md @@ -0,0 +1,19 @@ +# TouhouPad + +![TouhouPad](https://i.imgur.com/JeEqeEs.png) + +A 10 key gamepad specifically for playing Touhou danmaku games. + +You can find building instructions and gerber files to print the circuit board on the [project page.](https://github.com/Pimentoso/TouhouPad_v2) + +* Keyboard Maintainer: [Michele Ferri](https://github.com/Pimentoso) +* Hardware Supported: Paddino02 PCB rev1, rev2 + Arduino Pro Micro +* Hardware Availability: the PCB is open source and can be freely printed at websites such as [JLCPCB](https://jlcpcb.com/) + +Make example for this keyboard (after setting up your build environment): + + make pimentoso/touhoupad:default + +The gamepad case is completely exposed on the underside, so to enter bootloader mode, just short the RST and GND pins of the pro micro using a metal object. + +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). diff --git a/keyboards/pimentoso/touhoupad/rules.mk b/keyboards/pimentoso/touhoupad/rules.mk new file mode 100644 index 000000000000..806a19af3853 --- /dev/null +++ b/keyboards/pimentoso/touhoupad/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/pimentoso/touhoupad/touhoupad.c b/keyboards/pimentoso/touhoupad/touhoupad.c new file mode 100644 index 000000000000..a7c7fa073fec --- /dev/null +++ b/keyboards/pimentoso/touhoupad/touhoupad.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Michele Ferri + * + * 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 "touhoupad.h" diff --git a/keyboards/pimentoso/touhoupad/touhoupad.h b/keyboards/pimentoso/touhoupad/touhoupad.h new file mode 100644 index 000000000000..5a5f233e3657 --- /dev/null +++ b/keyboards/pimentoso/touhoupad/touhoupad.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Michele Ferri + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT(k00, k01, k02, k03, k04, k05, k06, k07, k08, k09) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 } \ +} From 9a1a35f6817d425ee8ee07f031848607d187e18b Mon Sep 17 00:00:00 2001 From: Pascal Pfeil Date: Mon, 9 Aug 2021 19:04:40 +0200 Subject: [PATCH 189/328] [Keymap] Add kbd67 mkiirgb keymap (#13884) Co-authored-by: Spaceman Co-authored-by: Drashna Jaelre --- .../mkiirgb/keymaps/pascalpfeil/config.h | 37 ++++++++++++++ .../mkiirgb/keymaps/pascalpfeil/keymap.c | 48 +++++++++++++++++++ .../mkiirgb/keymaps/pascalpfeil/rules.mk | 2 + 3 files changed, 87 insertions(+) create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/config.h create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/keymap.c create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/rules.mk diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/config.h b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/config.h new file mode 100644 index 000000000000..e5b7c718a2cc --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/config.h @@ -0,0 +1,37 @@ +/* Copyright 2021 Pascal Pfeil + * + * 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 + +/* 1000Hz USB polling */ +#define USB_POLLING_INTERVAL_MS 1 + +/* Send up to 4 key press events per scan */ +#define QMK_KEYS_PER_SCAN 4 + +/* Force NKRO on boot up */ +#define FORCE_NKRO + + +#ifdef RGB_MATRIX_ENABLE + +#undef RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + +#undef RGB_DISABLE_TIMEOUT +#define RGB_DISABLE_TIMEOUT 900000 + +#endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/keymap.c new file mode 100644 index 000000000000..21f991df3cca --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2021 Pascal Pfeil + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + 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_PSCR, + 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_BSLASH, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_65_ansi_blocker( + 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, BS_NORM, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BS_SWAP, RGB_HUI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, AG_NORM, AG_SWAP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_65_ansi_blocker( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes From 8936d0ae4b81ade2ff0224d606f7287e3ab6abf8 Mon Sep 17 00:00:00 2001 From: Edvard Sire Date: Mon, 9 Aug 2021 19:06:25 +0200 Subject: [PATCH 190/328] [Keymap] new keymap for nui_mini (#13924) --- keyboards/niu_mini/keymaps/edvard/keymap.c | 194 ++++++++++++++++++++ keyboards/niu_mini/keymaps/edvard/readme.md | 5 + 2 files changed, 199 insertions(+) create mode 100644 keyboards/niu_mini/keymaps/edvard/keymap.c create mode 100644 keyboards/niu_mini/keymaps/edvard/readme.md diff --git a/keyboards/niu_mini/keymaps/edvard/keymap.c b/keyboards/niu_mini/keymaps/edvard/keymap.c new file mode 100644 index 000000000000..aca4a86b0ef2 --- /dev/null +++ b/keyboards/niu_mini/keymaps/edvard/keymap.c @@ -0,0 +1,194 @@ +/* Copyright 2021 Edvard Sire + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _NUMPAD, + _ARROWS, + _SPECIAL, + _FPS, + _FIGHTING, + _MOBA, + _MOBA2, + _MOUSE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * ,--------------------------------------------------------------------------------------, + * |Esc/~ | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+-------+------+------+--------+------+--------------------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+-------+------+------+--------+------+--------------------| + * |Numpad| Z | X | C | V | B | N | M | , | . | / |Arrows| + * |------+------+------+------+-------+------+---------------+------+--------------------| + * | Ctrl | GUI | | Alt |Special| Space |RS/Enter|Mouse | | Fps | Del | + * `--------------------------------------------------------------------------------------` + */ +[_QWERTY] = LAYOUT_planck_mit( + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + MO(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(2), + KC_LCTL, KC_LGUI, KC_TRNS, KC_LALT, MO(3), KC_SPC, KC_SFTENT, MO(8), KC_TRNS, TO(4), KC_DEL +), + +/* NUMPAD + * ,-----------------------------------------------------------------------------------. + * | | |Power | |RGBmoG| | | 7 | 8 | 9 | | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | Prev | Play | Next | | | 4 | 5 | 6 | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Trns | |RGBmo-|RBGmd+|RGBtog| | | 1 | 2 | 3 | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | Space | 0 | , | . | |Reset | + * `-----------------------------------------------------------------------------------' + */ +[_NUMPAD] = LAYOUT_planck_mit( + KC_NO, KC_NO, KC_PWR, KC_NO, RGB_M_G, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_NO, KC_BSPC, + KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_NO, KC_NO, + KC_TRNS, KC_NO, RGB_RMOD, RGB_MOD, RGB_TOG, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_0, KC_COMM, KC_DOT, KC_NO, RESET +), + +/* ARROWS + * ,-----------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | | | | Up | | | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F5 | F6 | F7 | F8 | | | Left | Down |Right | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F9 | F10 | F11 | F12 | | | | | | | Trns | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |LCtrl | F13 | F14 | F15 | F16 | Left Alt | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ARROWS] = LAYOUT_planck_mit( + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_BSPC, + KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, + KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_LCTL, KC_F13, KC_F14, KC_F15, KC_F16, KC_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO +), + +/* SPECIAL + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | * | ( | ) | \ | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | [ | | | | & | | - | [ | ] | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | = | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | Trns | Space |LShift| | | | | + * `-----------------------------------------------------------------------------------' + */ +[_SPECIAL] = LAYOUT_planck_mit( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSLS, KC_BSPC, + KC_NO, KC_LBRC, KC_NO, KC_NO, KC_NO, KC_AMPR, KC_NO, KC_MINS, KC_LBRC, KC_RBRC, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_EQL, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_SPC, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO +), + +/* FPS + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |QWERTY| + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |RShift| Q | W | E | R | T | Y |QWERTY| | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Tab | A | S | D | G | B | ` | | | | MOBA | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |LCtrl | Z | X | LAlt |LShift| Space |Enter | | | Trns |FIGHTI| + * `-----------------------------------------------------------------------------------' + */ +[_FPS] = LAYOUT_planck_mit( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, TO(0), + KC_RSFT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, TO(0), KC_NO, KC_NO, KC_NO, KC_NO, + KC_TAB, KC_A, KC_S, KC_D, KC_G, KC_B, KC_GRV, KC_NO, KC_NO, KC_NO, TO(6), KC_NO, + KC_LCTL, KC_Z, KC_X, KC_LALT, KC_LSFT, KC_SPC, KC_ENT, KC_NO, KC_NO, KC_TRNS, TO(5) +), + +/* FIGHTING + * ,-----------------------------------------------------------------------------------. + * | Esc | | W | | | | | | | | |QWERTY| + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | | | | J | K | L | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |LCtrl | | | | H | Space | | | | | Trns | + * `-----------------------------------------------------------------------------------' + */ +[_FIGHTING] = LAYOUT_planck_mit( + KC_ESC, KC_NO, KC_W, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_TAB, KC_A, KC_S, KC_D, KC_NO, KC_NO, KC_NO, KC_J, KC_K, KC_L, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_H, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS +), + +/* MOBA + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | | | |QWERTY| + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |RShift| Q | W | E | R | T | Y |QWERTY| | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Tab | A | S | D | F | G | B | | | | Trns | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |LCtrl | Z | X | LAlt |MOBA2 | Space |Enter | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_MOBA] = LAYOUT_planck_mit( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_RSFT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, TO(0), KC_NO, KC_NO, KC_NO, KC_NO, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_B, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, + KC_LCTL, KC_Z, KC_X, KC_LALT, MO(7), KC_SPC, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO + ), + +/* MOBA2 + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | Trns | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_MOBA2] = LAYOUT_planck_mit( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO +), + +/* MOBA2 + * ,-----------------------------------------------------------------------------------. + * | | | | MUp | | | | MWUp |MWDown| | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | |MLeft |MDown |MRight| | |Mouse1|Mouse2| | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Trns | | | | + * `-----------------------------------------------------------------------------------' + */ +[_MOUSE] = LAYOUT_planck_mit( + KC_NO, KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_WH_D, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_BTN1, KC_BTN2, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO + ) +}; diff --git a/keyboards/niu_mini/keymaps/edvard/readme.md b/keyboards/niu_mini/keymaps/edvard/readme.md new file mode 100644 index 000000000000..32846b4a55bc --- /dev/null +++ b/keyboards/niu_mini/keymaps/edvard/readme.md @@ -0,0 +1,5 @@ +# Edvard's layout + +An efficient 40% keyboard layout + +[Writeup](https://github.com/EdvardSire/keyboard) From 5a59363e2826a49ae6dc97d5296f17dc89fd4c7e Mon Sep 17 00:00:00 2001 From: Stick <8531041+nstickney@users.noreply.github.com> Date: Mon, 9 Aug 2021 13:34:36 -0400 Subject: [PATCH 191/328] [User] changes to nstickney's keymaps (#11456) 0) Built a Bastyl, gave away the ErgoDoxEZ 1) UNICODEMAP 2) Iris left is now Elite-C 3) New QMK flashing instructions --- .../hidtech/bastyl/keymaps/nstickney/keymap.c | 70 +++++++++ .../keebio/iris/keymaps/nstickney/README.md | 47 ------ .../keebio/iris/keymaps/nstickney/config.h | 50 +++--- .../keebio/iris/keymaps/nstickney/keymap.c | 118 ++++----------- .../keebio/iris/keymaps/nstickney/rules.mk | 1 - layouts/community/ergodox/nstickney/keymap.c | 142 ------------------ users/nstickney/config.h | 63 ++++++++ users/nstickney/nstickney.c | 112 ++++++++++---- users/nstickney/nstickney.h | 46 ++++-- users/nstickney/readme.md | 49 ++++++ users/nstickney/rules.mk | 35 ++++- users/nstickney/unicodemap.h | 106 +++++++++++++ 12 files changed, 477 insertions(+), 362 deletions(-) create mode 100644 keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/nstickney/README.md delete mode 100644 keyboards/keebio/iris/keymaps/nstickney/rules.mk delete mode 100644 layouts/community/ergodox/nstickney/keymap.c create mode 100644 users/nstickney/config.h create mode 100644 users/nstickney/readme.md create mode 100644 users/nstickney/unicodemap.h diff --git a/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c b/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c new file mode 100644 index 000000000000..507dd0b151d9 --- /dev/null +++ b/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Quentin LEBASTARD + * Copyright 2020 Anthony MARIN + * Copyright 2021 Stick + * + * 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 "nstickney.h" +#include "unicodemap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BASE] = LAYOUT(KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //-------------------------------// + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + //-------------------------------// + CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT, + //-------------------------------// + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + //-------------------------------// + AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL, + //-------------------------------// + KC_LBRC, TD(LOCKS), TD(LAYERS), KC_RBRC), + + [SYMB] = LAYOUT(_______, XP(IEX, SS1), X(SS2), X(SS3), XP(CUR, GBP), X(EUR), X(V14), X(V12), X(V34), XP(LSQ, LDQ), XP(RSQ, RDQ), _______, + //-------------------------------// + _______, XP(A_D, AXD), XP(A_R, ACR), XP(E_A, ECA), XP(REG, CPL), X(THR), XP(U_D, UCD), XP(U_A, UCA), XP(I_A, ICA), XP(O_A, OCA), XP(O_D, OCD), _______, + //-------------------------------// + _______, XP(A_A, ACA), XP(S_S, SEC), XP(ETH, ETC), X(EMD), _______, _______, _______, _______, XP(O_S, OCS), XP(PLC, DEG), XP(ACT, DIS), + //-------------------------------// + _______, XP(AEL, AEC), _______, XP(CPR, CNT), _______, _______, _______, _______, XP(N_T, NCT), X(MCR), XP(C_C, CCC), _______, + //-------------------------------// + X(IQM), XP(NOT, BKB), _______, _______, X(YEN), XP(MLT, DIV), + //-------------------------------// + _______, _______, _______, _______), + + [NUMP] = LAYOUT(_______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, + //-------------------------------// + _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, + //-------------------------------// + _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, + //-------------------------------// + _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, + //-------------------------------// + _______, _______, _______, KC_PENT, _______, _______, + //-------------------------------// + _______, _______, _______, _______), + + [FCTN] = LAYOUT(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ, + //-------------------------------// + KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_LOCK, KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS, + //-------------------------------// + KC_PAUS, RGB_VAI, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR, + //-------------------------------// + _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______, + //-------------------------------// + RESET, _______, _______, _______, _______, RESET, + //-------------------------------// + _______, KC_F11, KC_F12, _______)}; diff --git a/keyboards/keebio/iris/keymaps/nstickney/README.md b/keyboards/keebio/iris/keymaps/nstickney/README.md deleted file mode 100644 index 8124fe1cd69c..000000000000 --- a/keyboards/keebio/iris/keymaps/nstickney/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# nstickney's Iris Layout - - > Familiar layout for users who regularly switch between Iris and more standard layouts. - -[![Keymap](https://i.imgur.com/hKs7fYr.jpg)](http://www.keyboard-layout-editor.com/#/gists/aa6093ea2eb9c750ab941b92adae7036) - -[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme) - -## Install - -For instructions on building and installing this keymap, see the [docs](https://docs.qmk.fm/#/getting_started_make_guide). Below is the command for me; it may be different for you. - -```sh -$ make keebio/iris/rev2:nstickney:avrdude -``` - -## Usage - -0. QWERTY `BASE` layer. - * `/`, `\`, ` `, `[ENTER]`, `-`, and `=` on the thumb clusters. - * `CAPSLOCK` replaced by `ESC`; hold it down for `CTRL`. `'` can also be held for `CTRL`. - * [Space-Cadet Shift](https://docs.qmk.fm/#/feature_space_cadet_shift) is enabled, so the `SHIFT` keys send `(` and `)` when tapped. - * Hold down `/` or `=` for `ALT`. - * Hold down `\` or `-` to access the functions layer. - * Upper-center thumb keys are `GUI` and `MENU`. - * Tapping `GUI` 2, 3, or 4 times will toggle `NUMLOCK`, `CAPSLOCK`, or `SCROLLLOCK`, respectively. - * Tapping `MENU` 2, 3, or 4 times will toggle the `NUMP`, `SYMB`, and `SYSH` layers, respectively. -0. Unicode-input symbols on `SYMB` and `SYSH` layers. Based (loosely) on US-International layout. -0. `NUMP` layer has number pads on each hand. Number pad `7`-`8`-`9` align with QWERTY `7`-`8`-`9` on right hand. -0. Function, arrow, media, and miscellaneous keys on `FCTN` layer. - * `F1` through `F10` on `1`-`10`. `F11` is on `GUI` and `F12` is on `MENU`. - * Brackets (`[` and `]`) available on `U` and `I`; braces (`{` and `}`) on `O` and `P`. - * Arrow keys on `ESDF` and `HJKL`; familiar for both Vim users and FPS gamers. - * `W` is `HOME`; `R` is `END`. `T` is `PAGE UP` and `G` is `PAGE DOWN`. - * Music controls on lower row of left hand. - * Volume and screen brightness on lower row of right hand. - * `PRINT SCREEN`, `PAUSE`, `SYSREQ`, `INSERT`, and `CLEAR` also mapped, as intelligently as possible. - * `A` toggles the RGB underglow (which changes color to indicate active layer). - * `Q` toggles the Unicode input through Linux, WinCompose, and MacOS. - -## Contribute - -If you are using this layout and think you've found a better way to do something, I'd appreciate an [issue](https://github.com/nstickney/qmk_firmware/issues), or better yet a [pull request](https://github.com/nstickney/qmk_firmware/pulls). - -## License - -Copyright © 2016-2019 @nstickney. Released under [GPL-2.0](/LICENSE). diff --git a/keyboards/keebio/iris/keymaps/nstickney/config.h b/keyboards/keebio/iris/keymaps/nstickney/config.h index f4899781e50a..da682cb921bb 100644 --- a/keyboards/keebio/iris/keymaps/nstickney/config.h +++ b/keyboards/keebio/iris/keymaps/nstickney/config.h @@ -1,36 +1,20 @@ -/* -Copyright 2017 Danny Nguyen - -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 . -*/ +/* Copyright 2021 @nstickney + * + * 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 -/* Use I2C or Serial, not both */ - -#define USE_SERIAL -// #define USE_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -// #undef RGBLED_NUM -// #define RGBLIGHT_ANIMATIONS -// #define RGBLED_NUM 12 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 \ No newline at end of file +#define RGBLED_NUM 12 +#define RGBLIGHT_SPLIT diff --git a/keyboards/keebio/iris/keymaps/nstickney/keymap.c b/keyboards/keebio/iris/keymaps/nstickney/keymap.c index 16b2d0de3339..bbf560fc3e0c 100644 --- a/keyboards/keebio/iris/keymaps/nstickney/keymap.c +++ b/keyboards/keebio/iris/keymaps/nstickney/keymap.c @@ -1,99 +1,33 @@ +/* Copyright 2021 @nstickney + * + * 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 "nstickney.h" +#include "unicodemap.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT( -// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, TD(LOCKS), TD(LAYERS),KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, -// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘ - AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL -// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘ - ), + [BASE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, TD(LOCKS), TD(LAYERS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL + ), - [SYMB] = LAYOUT( -// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ - UC(0x00EF),UC(0x00A1),UC(0x00B2),UC(0x00B3),UC(0x00A4),UC(0x20AC), UC(0x00BC),UC(0x00BD),UC(0x00BE),UC(0x2018),UC(0x2019),_______, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, UC(0x00E4),UC(0x00E5),UC(0x00E9),UC(0x00AE),UC(0x00FE), UC(0x00FC),UC(0x00FA),UC(0x00ED),UC(0x00F3),UC(0x00F6),_______, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, UC(0x00E1),UC(0x00DF),UC(0x00F0),UC(0x00EC),UC(0x00ED), UC(0x00EE),UC(0x00E0),UC(0x00E2),UC(0x00F8),UC(0x00B6),UC(0x00B4), -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, UC(0x00E6),UC(0x00E8),UC(0x00A9),UC(0x00EA),UC(0x00EB),_______, _______, UC(0x00F1),UC(0x00FD),UC(0x00E7),UC(0x00F4),UC(0x00BF),_______, -// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘ - UC(0x00BF),_______, UC(0x00AC), UC(0x00B1),_______, UC(0x00D7) -// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘ - ), + [SYMB] = LAYOUT(_______, XP(IEX, SS1), X(SS2), X(SS3), XP(CUR, GBP), X(EUR), X(V14), X(V12), X(V34), XP(LSQ, LDQ), XP(RSQ, RDQ), _______, _______, XP(A_D, AXD), XP(A_R, ACR), XP(E_A, ECA), XP(REG, CPL), X(THR), XP(U_D, UCD), XP(U_A, UCA), XP(I_A, ICA), XP(O_A, OCA), XP(O_D, OCD), _______, _______, XP(A_A, ACA), XP(S_S, SEC), XP(ETH, ETC), X(EMD), _______, _______, _______, _______, XP(O_S, OCS), XP(PLC, DEG), XP(ACT, DIS), _______, XP(AEL, AEC), _______, XP(CPR, CNT), _______, _______, _______, _______, XP(N_T, NCT), X(MCR), XP(C_C, CCC), _______, _______, _______, X(IQM), XP(NOT, BKB), _______, _______, X(YEN), XP(MLT, DIV)), - [SYSH] = LAYOUT( -// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ - UC(0x00CF),UC(0x00B9),UC(0x2200),UC(0x2201),UC(0x00A3),UC(0x00A5), UC(0x00B5),UC(0x00AB),UC(0x00BB),UC(0x201C),UC(0x201D),_______, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, UC(0x00C4),UC(0x00C5),UC(0x00C9),UC(0x2122),UC(0x00DE), UC(0x00DC),UC(0x00DA),UC(0x00CD),UC(0x00D3),UC(0x00D6),_______, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, UC(0x00C1),UC(0x00A7),UC(0x00D0),UC(0x00CC),UC(0x00CD), UC(0x00CE),UC(0x00C1),UC(0x00C2),UC(0x00D8),UC(0x00B0),UC(0x00A8), -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, UC(0x00C6),UC(0x00C8),UC(0x00A2),UC(0x00CA),UC(0x00CB),_______, _______, UC(0x00D1),UC(0x00DD),UC(0x00C7),UC(0x00D4),UC(0x203D),_______, -// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘ - UC(0x203D),_______, UC(0x00A6), UC(0x00AA),_______, UC(0x00F7) -// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘ - ), + [NUMP] = LAYOUT(_______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, _______, _______, _______, KC_PENT, _______, _______), - [NUMP] = LAYOUT( -// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ - _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, -// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘ - _______, _______, _______, KC_PENT, _______, _______ -// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘ - ), - - [FCTN] = LAYOUT( -// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - KC_PSCR, UC_MOD, KC_HOME, KC_UP, KC_END, KC_PGUP, UC(0x2014),KC_LBRC, KC_RBRC, S(KC_LBRC),S(KC_RBRC),KC_INS, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - KC_PAUS, RGB_TOG, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR, -// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ - _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_F11, KC_F12, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______, -// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘ - _______, _______, _______, _______, _______, _______ -// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘ - ) -}; - -// Initialize rgblight -void keyboard_post_init_user(void) { - rgblight_enable_noeeprom(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - layer_state_set_user(layer_state); - uint16_t user_hue = rgblight_get_hue(); - for (uint16_t i = 0; i < 256; ++i) { - rgblight_sethsv_noeeprom( (i + user_hue) % 256, 255, 255); - wait_ms(5); - } - layer_state_set_user(layer_state); -}; - -// Turn on RGB underglow according to active layer -uint32_t layer_state_set_user(uint32_t state) { - switch (biton32(state)) { - case FCTN: rgblight_sethsv_noeeprom(96, 255, 255); break; - case NUMP: rgblight_sethsv_noeeprom(162, 255, 255); break; - case SYMB: - case SYSH: rgblight_sethsv_noeeprom(227, 255, 255); break; - default: rgblight_sethsv_noeeprom(13, 255, 255); break; - } - return state; -}; + [FCTN] = LAYOUT(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ, KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_LOCK, KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS, KC_PAUS, RGB_VAI, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR, _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_F11, KC_F12, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______, _______, _______, _______, _______, _______, _______)}; diff --git a/keyboards/keebio/iris/keymaps/nstickney/rules.mk b/keyboards/keebio/iris/keymaps/nstickney/rules.mk deleted file mode 100644 index 7ad666d1a383..000000000000 --- a/keyboards/keebio/iris/keymaps/nstickney/rules.mk +++ /dev/null @@ -1 +0,0 @@ -RGBLIGHT_ENABLE = yes \ No newline at end of file diff --git a/layouts/community/ergodox/nstickney/keymap.c b/layouts/community/ergodox/nstickney/keymap.c deleted file mode 100644 index a37bc5f9642b..000000000000 --- a/layouts/community/ergodox/nstickney/keymap.c +++ /dev/null @@ -1,142 +0,0 @@ -#include "nstickney.h" - -/* - * This keymap simulates the key limitations of an Iris on an ErgoDox. See the - * matching iris layout (/keyboards/keebio/iris/keymaps/nstickney) for further - * information. - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT_ergodox( - // left hand - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, - CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AC_SLSH, - TD(LOCKS), XXXXXXX, - XXXXXXX, - FC_BSLS, KC_SPC, XXXXXXX, - // right hand - XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT, - XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, - AC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, TD(LAYERS), - XXXXXXX, - XXXXXXX, KC_ENT, FC_MINS - ), - - [SYMB] = LAYOUT_ergodox( - // left hand - UC(0x00EF), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), _______, - _______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______, - _______, UC(0x00E1), UC(0x00DF), UC(0x00F0), UC(0x00EC), UC(0x00ED), - _______, UC(0x00E6), UC(0x00E8), UC(0x00A9), UC(0x00EA), UC(0x00EB), _______, - _______, _______, _______, _______, UC(0x00BF), - _______, _______, - _______, - _______, UC(0x00AC), _______, - // right hand - _______, UC(0x00BC), UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), _______, - _______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______, - UC(0x00EE), UC(0x00E0), UC(0x00E2), UC(0x00F8), UC(0x00B6), UC(0x00B4), - _______, UC(0x00F1), UC(0x00FD), UC(0x00E7), UC(0x00F4), UC(0x00BF), _______, - UC(0x00D7), _______, _______, _______, _______, - _______, _______, - _______, - _______, UC(0x00B1), _______ - ), - - [SYSH] = LAYOUT_ergodox( - // left hand - UC(0x00CF), UC(0x00B9), UC(0x2200), UC(0x2201), UC(0x00A3), UC(0x00A5), _______, - _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), UC(0x2122), UC(0x00DE), _______, - _______, UC(0x00C1), UC(0x00A7), UC(0x00D0), UC(0x00CC), UC(0x00CD), - _______, UC(0x00C6), UC(0x00C8), UC(0x00A2), UC(0x00CA), UC(0x00CB), _______, - _______, _______, _______, _______, UC(0x203D), - _______, _______, - _______, - _______, UC(0x00A6), _______, - // right hand - _______, UC(0x00B5), UC(0x00AB), UC(0x00BB), UC(0x201C), UC(0x201D), _______, - _______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______, - UC(0x00CE), UC(0x00C1), UC(0x00C2), UC(0x00D8), UC(0x00B0), UC(0x00A8), - _______, UC(0x00D1), UC(0x00DD), UC(0x00C7), UC(0x00D4), UC(0x203D), _______, - UC(0x00F7), _______, _______, _______, _______, - _______, _______, - _______, - _______, UC(0x00AA), _______ - ), - - [NUMP] = LAYOUT_ergodox( - // left hand - _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, - _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, - _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, - _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______, _______, _______, - // right hand - _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, - _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, - _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, - _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______, KC_PENT, _______ - ), - - [FCTN] = LAYOUT_ergodox( - // left hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, - KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, - KC_PAUS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, - _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, _______, - _______, _______, _______, _______, _______, - KC_F11, _______, - _______, - _______, _______, _______, - // right hand - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ, - _______, UC(0x2014), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR, - _______, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______, - _______, _______, _______, _______, _______, - _______, KC_F12, - _______, - _______, _______, _______ - ), -}; - -// Runs just one time when the keyboard initializes. -void matrix_init_user (void) { - ergodox_board_led_off(); -}; - -// Runs constantly in the background, in a loop. -void matrix_scan_user (void) { - - if (IS_LAYER_ON(SYMB) || IS_LAYER_ON(SYSH)) { - ergodox_right_led_1_on(); - } else { - ergodox_right_led_1_off(); - } - - if (IS_LAYER_ON(NUMP)) { - ergodox_right_led_2_on(); - } else { - ergodox_right_led_2_off(); - } - - if (IS_LAYER_ON(FCTN)) { - ergodox_right_led_3_on(); - } else { - ergodox_right_led_3_off(); - } - -}; \ No newline at end of file diff --git a/users/nstickney/config.h b/users/nstickney/config.h new file mode 100644 index 000000000000..b853038c2162 --- /dev/null +++ b/users/nstickney/config.h @@ -0,0 +1,63 @@ +/* Copyright 2021 @nstickney + * + * 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 . + */ + +// Changes from Bastyl defaults +#ifdef MASTER_RIGHT +# undef MASTER_RIGHT +#endif + +// Turn off RGB lights when computer is sleeping +#define RGBLIGHT_SLEEP + +// https://beta.docs.qmk.fm/developing-qmk/qmk-reference/config_options#features-that-can-be-disabled +#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +// Turn off all possible RGB animations +#ifdef RGB_ANIMATIONS +# undef RGB_ANIMATIONS +#endif +#ifdef RGB_EFFECT_ALTERNATING +# undef RGB_EFFECT_ALTERNATING +#endif +#ifdef RGB_EFFECT_BREATHING +# undef RGB_EFFECT_BREATHING +#endif +#ifdef RGB_EFFECT_CHRISTMAS +# undef RGB_EFFECT_CHRISTMAS +#endif +#ifdef RGB_EFFECT_KNIGHT +# undef RGB_EFFECT_KNIGHT +#endif +#ifdef RGB_EFFECT_RAINBOW_MOOD +# undef RGB_EFFECT_RAINBOW_MOOD +#endif +#ifdef RGB_EFFECT_RAINBOW_SWIRL +# undef RGB_EFFECT_RAINBOW_SWIRL +#endif +#ifdef RGB_EFFECT_RGB_TEST +# undef RGB_EFFECT_RGB_TEST +#endif +#ifdef RGB_EFFECT_SNAKE +# undef RGB_EFFECT_SNAKE +#endif +#ifdef RGB_EFFECT_STATIC_GRADIENT +# undef RGB_EFFECT_STATIC_GRADIENT +#endif +#ifdef RGB_EFFECT_TWINKLE +# undef RGB_EFFECT_TWINKLE +#endif diff --git a/users/nstickney/nstickney.c b/users/nstickney/nstickney.c index 3e18e5c8383b..8222e7289d86 100644 --- a/users/nstickney/nstickney.c +++ b/users/nstickney/nstickney.c @@ -1,34 +1,73 @@ +/* Copyright 2021 @nstickney + * + * 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 "nstickney.h" // Tap Dancing -void dance_layer (qk_tap_dance_state_t *state, void *user_data) { - switch (state -> count) { - case 1: tap_code(KC_APP); break; - case 2: layer_invert(NUMP); break; - case 3: layer_invert(SYMB); break; - case 4: layer_invert(SYSH); break; - default: break; - } +void dance_layer(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + tap_code(KC_APP); + break; + case 2: + layer_invert(NUMP); + break; + case 3: + layer_invert(SYMB); + break; + default: + break; + } }; -void dance_lock_finished (qk_tap_dance_state_t *state, void *user_data) { - switch (state->count) { - case 1: register_code(KC_LGUI); break; - case 2: register_code(KC_NLCK); break; - case 3: register_code(KC_CAPS); break; - case 4: register_code(KC_SLCK); break; - default: break; - } +void dance_lock_finished(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + register_code(KC_LGUI); + break; + case 2: + register_code(KC_NLCK); + break; + case 3: + register_code(KC_CAPS); + break; + case 4: + register_code(KC_SLCK); + break; + default: + break; + } }; -void dance_lock_reset (qk_tap_dance_state_t *state, void *user_data) { - switch (state->count) { - case 1: unregister_code(KC_LGUI); break; - case 2: unregister_code(KC_NLCK); break; - case 3: register_code(KC_CAPS); break; - case 4: register_code(KC_SLCK); break; - default: break; - } +void dance_lock_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + unregister_code(KC_LGUI); + break; + case 2: + register_code(KC_NLCK); + break; + case 3: + register_code(KC_CAPS); + break; + case 4: + register_code(KC_SLCK); + break; + default: + break; + } }; qk_tap_dance_action_t tap_dance_actions[] = { @@ -36,9 +75,22 @@ qk_tap_dance_action_t tap_dance_actions[] = { [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer) }; -void eeconfig_init_user (void) { - set_unicode_input_mode(UC_LNX); // Linux - //set_unicode_input_mode(UC_OSX); // Mac OSX - //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki) - //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki) -}; \ No newline at end of file +// RGB underglow per-layer hue values +const uint16_t LAYER_HUE[] = {6, 197, 133, 69}; + +// Initialize RGB underglow (colorful) +void keyboard_post_init_user(void) { + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + for (uint16_t i = 0; i < 256; ++i) { + rgblight_sethsv_noeeprom((i + LAYER_HUE[BASE]) % 256, 255, 136); + wait_ms(8); + } +}; + +// Turn on RGB underglow according to active layer +layer_state_t layer_state_set_user(layer_state_t state) { + uint8_t user_val = rgblight_get_val(); + rgblight_sethsv_noeeprom(LAYER_HUE[get_highest_layer(state)], 255, user_val); + return state; +}; diff --git a/users/nstickney/nstickney.h b/users/nstickney/nstickney.h index d3f5a7c6fc35..2b596b25e525 100644 --- a/users/nstickney/nstickney.h +++ b/users/nstickney/nstickney.h @@ -1,20 +1,22 @@ -#include QMK_KEYBOARD_H - +/* Copyright 2021 @nstickney + * + * 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 USE_SERIAL -#define MASTER_LEFT - -#undef UNICODE_SELECTED_MODES -#define UNICODE_SELECTED_MODES UC_OSX, UC_LNX, UC_WINC - -// Layers -#define BASE 0 // Base layer -#define SYMB 1 // Symbols -#define SYSH 2 // Symbols, shifted -#define NUMP 3 // Numpad -#define FCTN 4 // Function +#include QMK_KEYBOARD_H -// Make keymaps more clear +// Specialty keycodes #define CC_ESC LCTL_T(KC_ESC) #define CC_QUOT RCTL_T(KC_QUOT) #define AC_SLSH LALT_T(KC_SLSH) @@ -22,4 +24,16 @@ #define FC_BSLS LT(FCTN, KC_BSLS) #define FC_MINS LT(FCTN, KC_MINS) -enum tap_dances {LOCKS = 0, LAYERS = 1}; \ No newline at end of file +// Layers +enum { + BASE, // Base layer + SYMB, // Symbols + NUMP, // Numpad + FCTN // Function +}; + +// Tap dance +enum { + LOCKS, // Activate NUM/CAPS/SCROLL lock + LAYERS // Activate NUMP and SYMB layers +}; diff --git a/users/nstickney/readme.md b/users/nstickney/readme.md new file mode 100644 index 000000000000..b62264d68700 --- /dev/null +++ b/users/nstickney/readme.md @@ -0,0 +1,49 @@ +# nstickney's Ortholinear Layout + + > Familiar layout for users who regularly switch between Bastyl/Iris and standard QWERTY. + +## Install + +For instructions on building and installing this keymap, see the [docs](https://docs.qmk.fm/#/getting_started_make_guide). +Below is the command for me; it may be different for you. +Note that my Iris keyboard has an Elite-C on the left half and a ProMicro on the right half. + +- Bastyl: `make hidtech/bastyl:nstickney:dfu` +- Iris + - Elite-C: `make keebio/iris/rev2:nstickney:dfu` + - ProMicro: `make keebio/iris/rev2:nstickney:avrdude` + +## Usage + +0. QWERTY `BASE` layer. + * `/`, `\`, `[SPACE]`, `[ENTER]`, `-`, and `=` on the thumb clusters. + * `[` and `]` added on Bastyl. + * `CAPSLOCK` replaced by `ESC`; hold it down for `CTRL`. + * `'` can also be held for `CTRL`. + * [Space-Cadet Shift](https://beta.docs.qmk.fm/using-qmk/advanced-keycodes/feature_space_cadet) is enabled, so the `SHIFT` keys send `(` and `)` when tapped. + * Hold down `/` or `=` for `ALT`. + * Hold down `\` or `-` to access the functions layer. + * Farthest thumb keys are `GUI` (left) and `MENU` (right). + * Tapping `GUI` 2, 3, or 4 times will toggle `NUMLOCK`, `CAPSLOCK`, or `SCROLLLOCK`, respectively. + * Tapping `MENU` 2 or 3 times will toggle the `NUMP` and `SYMB` layers, respectively. +0. Unicode-input symbols on `SYMB` layer. Based (loosely) on US-International layout. +0. `NUMP` layer has number pads on each hand. Number pad `7`-`8`-`9` align with QWERTY `7`-`8`-`9` on right hand. +0. Function, arrow, media, and miscellaneous keys on `FCTN` layer. + * `F1` through `F10` on `1`-`10`. `F11` is on `GUI` and `F12` is on `MENU`. + * Brackets (`[` and `]`) available on `U` and `I`; braces (`{` and `}`) on `O` and `P`. + * Arrow keys on `ESDF` and `HJKL`; familiar for both Vim users and FPS gamers. + * `W` is `HOME`; `R` is `END`. `T` is `PAGE UP` and `G` is `PAGE DOWN`. + * Music controls on lower row of left hand. + * Volume and screen brightness on lower row of right hand. + * `PRINT SCREEN`, `PAUSE`, `SYSREQ`, `INSERT`, and `CLEAR` also mapped, as intelligently as possible. + * `Q` toggles the RGB underglow (which changes color to indicate active layer). + * `A` increases RGB underglow brightness (with `SHIFT`, decreases brightness). + * `Y` is mapped to [`KC_LOCK`](https://beta.docs.qmk.fm/using-qmk/software-features/feature_key_lock). + +## Contribute + +If you are using this layout and think you've found a better way to do something, I'd appreciate an [issue](https://github.com/nstickney/qmk_firmware/issues), or better yet a [pull request](https://github.com/nstickney/qmk_firmware/pulls). + +## License + +Copyright © 2016-2021 @nstickney. Released under [GPL-2.0](/LICENSE). diff --git a/users/nstickney/rules.mk b/users/nstickney/rules.mk index f52371c79189..0f189e8a4fe3 100644 --- a/users/nstickney/rules.mk +++ b/users/nstickney/rules.mk @@ -1,4 +1,37 @@ +# Copyright 2021 @nstickney +# +# 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 . SRC += nstickney.c +KEY_LOCK_ENABLE = yes +RGBLIGHT_ENABLE = yes TAP_DANCE_ENABLE = yes -UNICODE_ENABLE = yes \ No newline at end of file +UNICODE_ENABLE = no +UNICODEMAP_ENABLE = yes +UCIS_ENABLE = no + +# https://github.com/qmk/qmk_firmware/issues/3224#issuecomment-399769416 +LTO_ENABLE = yes + +# https://beta.docs.qmk.fm/developing-qmk/qmk-reference/getting_started_make_guide#rules-mk-options +API_SYSEX_ENABLE = no +AUDIO_ENABLE = no +BOOTMAGIC_ENABLE = no +COMMAND_ENABLE = no +CONSOLE_ENABLE = no +MOUSEKEY_ENABLE = no +MIDI_ENABLE = no +NKRO_ENABLE = no +SLEEP_LED_ENABLE = no +VARIABLE_TRACE = no diff --git a/users/nstickney/unicodemap.h b/users/nstickney/unicodemap.h new file mode 100644 index 000000000000..3b7d9e305398 --- /dev/null +++ b/users/nstickney/unicodemap.h @@ -0,0 +1,106 @@ +/* Copyright 2021 @nstickney + * + * 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 + +enum { + // Used on base + + // Used on US-International + IEX, SS2, SS3, CUR, EUR, V14, V12, V34, LSQ, RSQ, YEN, MLT, + A_D, A_R, E_A, REG, THR, U_D, U_A, I_A, O_A, O_D, LDA, RDA, NOT, + A_A, S_S, ETH, EMD, OEL, O_S, PLC, ACT, + AEL, CPR, N_T, MCR, C_C, IQM, + + // Used on US-International with Shift + SS1, GBP, DIV, + AXD, ACR, ECA, UCD, UCA, ICA, OCA, OCD, BKB, + ACA, SEC, ETC, OEC, OCS, DEG, DIS, + AEC, CNT, NCT, CCC, + + // Added to US-International + + // Added to US-International with Shift + LDQ, RDQ, + CPL +}; + +const uint32_t PROGMEM unicode_map[] = { + [IEX] = 0xA1, // ¡ + [SS2] = 0xB2, // ² + [SS3] = 0xB3, // ³ + [CUR] = 0xA4, // ¤ + [EUR] = 0x20AC, // € + [V14] = 0xBC, // ¼ + [V12] = 0xBD, // ½ + [V34] = 0xBE, // ¾ + [LSQ] = 0x2018, // ‘ + [RSQ] = 0x2019, // ’ + [YEN] = 0xA5, // ¥ + [MLT] = 0xD7, // × + [A_D] = 0xE4, // ä + [A_R] = 0xE5, // å + [E_A] = 0xE9, // é + [REG] = 0xAE, // ® + [THR] = 0xFE, // þ + [U_D] = 0xFC, // ü + [U_A] = 0xFA, // ú + [I_A] = 0xED, // í + [O_A] = 0xF3, // ó + [O_D] = 0xF6, // ö + [LDA] = 0xAB, // « + [RDA] = 0xBB, // » + [NOT] = 0xAC, // ¬ + [A_A] = 0xE1, // á + [S_S] = 0xDF, // ß + [ETH] = 0xF0, // ð + [EMD] = 0x2014, // — + [OEL] = 0x153, // œ + [O_S] = 0xF8, // ø + [PLC] = 0xB6, // ¶ + [ACT] = 0xB4, // ´ + [AEL] = 0xE6, // æ + [CPR] = 0xA9, // © + [N_T] = 0xF1, // ñ + [MCR] = 0xB5, // µ + [C_C] = 0xE7, // ç + [IQM] = 0xBF, // ¿ + [SS1] = 0xB9, // ¹ + [GBP] = 0xA3, // £ + [DIV] = 0xF7, // ÷ + [AXD] = 0xC4, // Ä + [ACR] = 0xC5, // Å + [ECA] = 0xC9, // É + [UCD] = 0xDC, // Ü + [UCA] = 0xDA, // Ú + [ICA] = 0xCD, // Í + [OCA] = 0xD3, // Ó + [OCD] = 0xD6, // Ö + [BKB] = 0xA6, // ¦ + [ACA] = 0xC1, // Á + [SEC] = 0xA7, // § + [ETC] = 0xD0, // Ð + [OEC] = 0x152, // Œ + [OCS] = 0xD8, // Ø + [DEG] = 0xB0, // ° + [DIS] = 0xA8, // ¨ + [AEC] = 0xC6, // Æ + [CNT] = 0xA2, // ¢ + [NCT] = 0xD1, // Ñ + [CCC] = 0xC7, // Ç + [LDQ] = 0x201C, // “ + [RDQ] = 0x201D, // ” + [CPL] = 0x1F12F // 🄯 +}; From 23becac3a650ac06e202bac8158b058a8b7b48f2 Mon Sep 17 00:00:00 2001 From: Pierre Chevalier Date: Mon, 9 Aug 2021 19:23:15 +0100 Subject: [PATCH 192/328] Support all the 0.2 Ferris variants (#12653) * Support all the 0.2 Ferris variants For the Compact, the High and the Mini, create a new directory so each keyboard may have the correct USB descriptor and a readme with more specific information about it. For the Bling, also add support for the underglow functionality. Change the "MANUFACTURER" string to "Cuddly Keyboards Ltd.", the name of the company I incorporated to sell keyboards, and change the default descriptor from "Ferris the keeb" to "Ferris 0.2" which is more descriptive. I didn't update the 0.1 variants as I don't intend to sell these kits with "Cuddly Keyboards". The firmware is mostly there to support existing users. Update the "hardware availability" to point to my new website: cuddlykeyboards.com. * Add RGB mode toggle to my keymap and to the default keymap * Improve wording in the readme --- keyboards/ferris/0_2/bling/bling.c | 77 +++++++++++++++++++ keyboards/ferris/0_2/bling/config.h | 34 ++++++++ keyboards/ferris/0_2/bling/readme.md | 16 ++++ keyboards/ferris/0_2/bling/rules.mk | 2 + keyboards/ferris/0_2/compact/config.h | 23 ++++++ keyboards/ferris/0_2/compact/readme.md | 17 ++++ keyboards/ferris/0_2/compact/rules.mk | 0 keyboards/ferris/0_2/config.h | 4 +- keyboards/ferris/0_2/high/config.h | 23 ++++++ keyboards/ferris/0_2/high/readme.md | 17 ++++ keyboards/ferris/0_2/high/rules.mk | 0 keyboards/ferris/0_2/mini/config.h | 23 ++++++ keyboards/ferris/0_2/mini/readme.md | 18 +++++ keyboards/ferris/0_2/mini/rules.mk | 0 keyboards/ferris/0_2/readme.md | 7 +- keyboards/ferris/keymaps/default/config.h | 8 ++ keyboards/ferris/keymaps/default/keymap.json | 4 +- keyboards/ferris/keymaps/pierrec83/config.h | 8 ++ .../ferris/keymaps/pierrec83/keymap.json | 4 +- keyboards/ferris/keymaps/test/config.h | 8 ++ keyboards/ferris/readme.md | 6 +- 21 files changed, 288 insertions(+), 11 deletions(-) create mode 100644 keyboards/ferris/0_2/bling/bling.c create mode 100644 keyboards/ferris/0_2/bling/config.h create mode 100644 keyboards/ferris/0_2/bling/readme.md create mode 100644 keyboards/ferris/0_2/bling/rules.mk create mode 100644 keyboards/ferris/0_2/compact/config.h create mode 100644 keyboards/ferris/0_2/compact/readme.md create mode 100644 keyboards/ferris/0_2/compact/rules.mk create mode 100644 keyboards/ferris/0_2/high/config.h create mode 100644 keyboards/ferris/0_2/high/readme.md create mode 100644 keyboards/ferris/0_2/high/rules.mk create mode 100644 keyboards/ferris/0_2/mini/config.h create mode 100644 keyboards/ferris/0_2/mini/readme.md create mode 100644 keyboards/ferris/0_2/mini/rules.mk diff --git a/keyboards/ferris/0_2/bling/bling.c b/keyboards/ferris/0_2/bling/bling.c new file mode 100644 index 000000000000..28ca92893fd1 --- /dev/null +++ b/keyboards/ferris/0_2/bling/bling.c @@ -0,0 +1,77 @@ +/* +Copyright 2021 Pierre Chevalier + +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" + +#include "drivers/issi/is31fl3731.h" + +/* +| Left || Right | +| | 3 | | 0 || 0 | | 3 | | +| 5 | | | || | | | 6 | +| | | | || | | | | +| | | | 1 || 1 | | | | +| | 4 | | || | | 4 | | +| 6 | | | 2 || 2 | | | 5 | +*/ +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + /* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C9_10, C8_10, C7_10}, // Left RGB 5 + {0, C9_12, C8_12, C7_12}, // Left RGB 3 + {0, C9_15, C8_15, C6_14}, // Left RGB 0 + {1, C1_2, C2_2, C4_3}, // Right RGB 0 + {1, C1_5, C2_5, C3_5}, // Right RGB 3 + {1, C1_8, C2_8, C3_8}, // Right RGB 6 + {1, C1_7, C2_7, C3_7}, // Right RGB 5 + {1, C1_6, C2_6, C3_6}, // Right RGB 4 + {1, C1_3, C2_3, C3_3}, // Right RGB 1 + {1, C1_4, C2_4, C3_4}, // Right RGB 2 + {0, C9_13, C8_13, C7_13}, // Left RGB 2 + {0, C9_14, C8_14, C7_14}, // Left RGB 1 + {0, C9_11, C8_11, C7_11}, // Left RGB 4 + {0, C9_9, C8_9, C7_9}, // Left RGB 6 +}; +// clang-format off +led_config_t g_led_config = { + // Key Matrix to LED Index + { + {}, + }, { + // LED Index to Physical Position. The unit is roughly milimiters in the real world + // | Left || Right | + // x->| 10 | 32 | 64 || 160 | 192 | 214 | + // y |_____|_____|____||_____|_____|_____| + // 0 | | 1 | 2 || 3 | 4 | | + // 16 | 0 | | || | | 5 | + // 35 | | | 11 || 8 | | | + // 45 | | 12 | || | 7 | | + // 50 | 13 | | 10 || 9 | | 6 | + // 0 1 2 3 4 5 + {10, 16}, {32, 0}, {64, 0}, {160, 0}, {192, 0}, {214, 16}, + // 6 7 8 9 + {214, 50}, {192, 45}, {160, 35}, {160, 50}, + // 10 11 12 13 + {64, 50}, {64, 35}, {32, 45}, {10, 50}, + }, { + // LED Index to Flag + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 + } +}; diff --git a/keyboards/ferris/0_2/bling/config.h b/keyboards/ferris/0_2/bling/config.h new file mode 100644 index 000000000000..bed489ca08f1 --- /dev/null +++ b/keyboards/ferris/0_2/bling/config.h @@ -0,0 +1,34 @@ +/* +Copyright 2021 Pierre Chevalier + +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 + +#undef PRODUCT_ID +#define PRODUCT_ID 0x0002 +#undef PRODUCT +#define PRODUCT Ferris 0.2 - Bling + + + +/* LED Drivers */ +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110101 +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 7 +#define DRIVER_2_LED_TOTAL 7 +#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + diff --git a/keyboards/ferris/0_2/bling/readme.md b/keyboards/ferris/0_2/bling/readme.md new file mode 100644 index 000000000000..c20be1edd140 --- /dev/null +++ b/keyboards/ferris/0_2/bling/readme.md @@ -0,0 +1,16 @@ +# Ferris 0.2 - Bling + +![Ferris 0.2 - Bling](https://i.imgur.com/8dmm5Mrh.jpg) + +Ferris 0.2 with RGB underglow. + +* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83) +* Hardware Supported: + * Ferris 0.2 - Bling: (STM32F072 MCU on the left, MCP23017 on the right, IS31FL3731 led driver chip on each side) +* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com) + +Make examples for this keyboard (after setting up your build environment): + + make ferris/0_2/bling:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ferris/0_2/bling/rules.mk b/keyboards/ferris/0_2/bling/rules.mk new file mode 100644 index 000000000000..e04c8e467099 --- /dev/null +++ b/keyboards/ferris/0_2/bling/rules.mk @@ -0,0 +1,2 @@ +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3731 diff --git a/keyboards/ferris/0_2/compact/config.h b/keyboards/ferris/0_2/compact/config.h new file mode 100644 index 000000000000..ee465b9acd6a --- /dev/null +++ b/keyboards/ferris/0_2/compact/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2021 Pierre Chevalier + +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 + +#undef PRODUCT_ID +#define PRODUCT_ID 0x0003 +#undef PRODUCT +#define PRODUCT Ferris 0.2 - Compact diff --git a/keyboards/ferris/0_2/compact/readme.md b/keyboards/ferris/0_2/compact/readme.md new file mode 100644 index 000000000000..b17b59bfae29 --- /dev/null +++ b/keyboards/ferris/0_2/compact/readme.md @@ -0,0 +1,17 @@ +# Ferris 0.2 - Compact + +![Ferris 0.2 - Compact, top view](https://i.imgur.com/V2ZLKjih.jpg) +![Ferris 0.2 - Compact, bottom view](https://i.imgur.com/3icP8pzh.jpg) + +Ferris 0.2 - Compact with Kailh Choc support and Choc spacing. + +* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83) +* Hardware Supported: + * Ferris 0.2 - Compact: (STM32F072 MCU on the left, MCP23017 on the right) +* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com) + +Make examples for this keyboard (after setting up your build environment): + + make ferris/0_2/compact:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ferris/0_2/compact/rules.mk b/keyboards/ferris/0_2/compact/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ferris/0_2/config.h b/keyboards/ferris/0_2/config.h index 958cf4356ddf..89eac7ed1660 100644 --- a/keyboards/ferris/0_2/config.h +++ b/keyboards/ferris/0_2/config.h @@ -21,8 +21,8 @@ along with this program. If not, see . #define VENDOR_ID 0xC2AB #define PRODUCT_ID 0x0001 #define DEVICE_VER 0x0002 -#define MANUFACTURER Pierre -#define PRODUCT Ferris the keeb +#define MANUFACTURER Cuddly Keyboards Ltd. +#define PRODUCT Ferris 0.2 /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/ferris/0_2/high/config.h b/keyboards/ferris/0_2/high/config.h new file mode 100644 index 000000000000..67786241b42e --- /dev/null +++ b/keyboards/ferris/0_2/high/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2021 Pierre Chevalier + +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 + +#undef PRODUCT_ID +#define PRODUCT_ID 0x0005 +#undef PRODUCT +#define PRODUCT Ferris 0.2 - High diff --git a/keyboards/ferris/0_2/high/readme.md b/keyboards/ferris/0_2/high/readme.md new file mode 100644 index 000000000000..2f01b2b26029 --- /dev/null +++ b/keyboards/ferris/0_2/high/readme.md @@ -0,0 +1,17 @@ +# Ferris 0.2 - High + +![Ferris 0.2 - High, top view](https://i.imgur.com/aOqVmvph.jpg) +![Ferris 0.2 - High, bottom view](https://i.imgur.com/Nuqy5uJh.jpg) + +Ferris 0.2 - High with Cherry MX support. + +* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83) +* Hardware Supported: + * Ferris 0.2 - High: (STM32F072 MCU on the left, MCP23017 on the right) +* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com) + +Make examples for this keyboard (after setting up your build environment): + + make ferris/0_2/high:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ferris/0_2/high/rules.mk b/keyboards/ferris/0_2/high/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ferris/0_2/mini/config.h b/keyboards/ferris/0_2/mini/config.h new file mode 100644 index 000000000000..e357cabe0bd0 --- /dev/null +++ b/keyboards/ferris/0_2/mini/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2021 Pierre Chevalier + +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 + +#undef PRODUCT_ID +#define PRODUCT_ID 0x0004 +#undef PRODUCT +#define PRODUCT Ferris 0.2 - Mini diff --git a/keyboards/ferris/0_2/mini/readme.md b/keyboards/ferris/0_2/mini/readme.md new file mode 100644 index 000000000000..dd5cf5a718f0 --- /dev/null +++ b/keyboards/ferris/0_2/mini/readme.md @@ -0,0 +1,18 @@ +# Ferris 0.2 - Mini + +![Ferris 0.2 - Mini, top view](https://i.imgur.com/s3luptVh.jpg) +![Ferris 0.2 - Mini, bottom view](https://i.imgur.com/D4GxLQvh.jpg) + + +Ferris 0.2 - Mini with Kailh Choc Mini support and Choc spacing. + +* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83) +* Hardware Supported: + * Ferris 0.2 - Mini: (STM32F072 MCU on the left, MCP23017 on the right) +* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com) + +Make examples for this keyboard (after setting up your build environment): + + make ferris/0_2/mini:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ferris/0_2/mini/rules.mk b/keyboards/ferris/0_2/mini/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ferris/0_2/readme.md b/keyboards/ferris/0_2/readme.md index bd98ce8ad1ed..3d1ad0c1f264 100644 --- a/keyboards/ferris/0_2/readme.md +++ b/keyboards/ferris/0_2/readme.md @@ -1,14 +1,13 @@ # Ferris 0.2 -![Ferris 0.2 - bling, top view](https://i.imgur.com/LwKlmnzh.jpg) -![Ferris 0.2 - bling, bottom view](https://i.imgur.com/qGnYGVOh.jpg) +![Ferris 0.2 family](https://i.imgur.com/SDVOlyZ.jpg) -An stm32f072 based split 34 keys column staggered keyboard named and decorated after the rustlang mascott. All PCB files and some thoughts on the design are available on the [project's github page](https://github.com/pierrechevalier83/ferris) +An STM32F072-based split 34-key column-staggered keyboard named and decorated after the Rust mascot. All PCB files and some thoughts on the design are available on the [project's github page](https://github.com/pierrechevalier83/ferris). * Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83) * Hardware Supported: * Ferris 0.2: stm32f072 chip. Comes in 4 variants: bling, mini, high and compact -* Hardware Availability: Pierre Chevalier has been selling keyboard kits (see the #ferris channel in the 40% discord chat). Wider availability is on the horizon. +* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com) Make examples for this keyboard (after setting up your build environment): diff --git a/keyboards/ferris/keymaps/default/config.h b/keyboards/ferris/keymaps/default/config.h index cf0fb7478ef0..5d13cc596b09 100644 --- a/keyboards/ferris/keymaps/default/config.h +++ b/keyboards/ferris/keymaps/default/config.h @@ -37,3 +37,11 @@ along with this program. If not, see . #define PERMISSIVE_HOLD #define IGNORE_MOD_TAP_INTERRUPT #define TAPPING_FORCE_HOLD + +// Underglow configuration +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_ANIMATIONS + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/ferris/keymaps/default/keymap.json b/keyboards/ferris/keymaps/default/keymap.json index 5fe1b9e00a48..f651b2d8c829 100644 --- a/keyboards/ferris/keymaps/default/keymap.json +++ b/keyboards/ferris/keymaps/default/keymap.json @@ -50,8 +50,8 @@ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS", - "KC_TRNS" , "KC_TRNS", - "KC_TRNS" , "KC_TRNS" + "RGB_RMOD" , "KC_TRNS", + "KC_TRNS" , "RGB_MOD" ], ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", diff --git a/keyboards/ferris/keymaps/pierrec83/config.h b/keyboards/ferris/keymaps/pierrec83/config.h index cf0fb7478ef0..5d13cc596b09 100644 --- a/keyboards/ferris/keymaps/pierrec83/config.h +++ b/keyboards/ferris/keymaps/pierrec83/config.h @@ -37,3 +37,11 @@ along with this program. If not, see . #define PERMISSIVE_HOLD #define IGNORE_MOD_TAP_INTERRUPT #define TAPPING_FORCE_HOLD + +// Underglow configuration +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_ANIMATIONS + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/ferris/keymaps/pierrec83/keymap.json b/keyboards/ferris/keymaps/pierrec83/keymap.json index 1f2c166b9cf7..f42259be90ba 100644 --- a/keyboards/ferris/keymaps/pierrec83/keymap.json +++ b/keyboards/ferris/keymaps/pierrec83/keymap.json @@ -50,8 +50,8 @@ "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "LGUI(KC_LEFT)" , "KC_TRNS", - "KC_TRNS" , "LGUI(KC_RGHT)" + "RGB_RMOD" , "KC_TRNS", + "KC_TRNS" , "RGB_MOD" ], ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS", diff --git a/keyboards/ferris/keymaps/test/config.h b/keyboards/ferris/keymaps/test/config.h index f784af4d11a3..821bf7c03f2f 100644 --- a/keyboards/ferris/keymaps/test/config.h +++ b/keyboards/ferris/keymaps/test/config.h @@ -18,3 +18,11 @@ along with this program. If not, see . #pragma once #define DEBUG_MATRIX_SCAN_RATE + +// Underglow configuration +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_ANIMATIONS + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/ferris/readme.md b/keyboards/ferris/readme.md index 84ac85b57f44..0d1fe284fda7 100644 --- a/keyboards/ferris/readme.md +++ b/keyboards/ferris/readme.md @@ -9,12 +9,16 @@ A split 34 keys column staggered keyboard named and decorated after the rustlang * Ferris 0.1 (With atmega32u4 chip. Comes in 4 variants: base, low, high and compact) * Ferris 0.2 (With stm32f072 chip. Comes in 4 variants: bling, mini, high and compact) * Ferris sweep (With pro-micro. Comes in a couple of PCB edge cuts shapes, but with identical pinout) -* Hardware Availability: Pierre Chevalier has been selling keyboard kits (see the #ferris channel in the 40% discord chat). Wider availability is on the horizon. +* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com) Make examples for this keyboard (after setting up your build environment): make ferris/0_1:default make ferris/0_2:default + make ferris/0_2/bling:default + make ferris/0_2/compact:default + make ferris/0_2/mini:default + make ferris/0_2/high:default make ferris/sweep:default:avrdude-split-right See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 26ea090190b815862f108903e5f41f20c6d16d66 Mon Sep 17 00:00:00 2001 From: Daniil Yastremskiy Date: Mon, 9 Aug 2021 21:32:35 +0300 Subject: [PATCH 193/328] Limit RGB max brightness on KPrepublic BM-series keyboards (#13132) --- keyboards/bm40hsrgb/config.h | 4 +++- keyboards/bm43a/config.h | 5 ++++- keyboards/bm60poker/config.h | 5 ++++- keyboards/bm60rgb/config.h | 8 ++++++-- keyboards/bm60rgb_iso/config.h | 9 ++++++--- keyboards/bm68rgb/config.h | 8 ++++++-- 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/keyboards/bm40hsrgb/config.h b/keyboards/bm40hsrgb/config.h index 167a5667a441..dd66d3b396ab 100755 --- a/keyboards/bm40hsrgb/config.h +++ b/keyboards/bm40hsrgb/config.h @@ -48,8 +48,10 @@ #define RGB_DI_PIN E2 #define DRIVER_LED_TOTAL 53 #ifdef RGB_DI_PIN - #define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value #endif #ifndef RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value #endif diff --git a/keyboards/bm43a/config.h b/keyboards/bm43a/config.h index 2ab84781b446..e08561d91653 100644 --- a/keyboards/bm43a/config.h +++ b/keyboards/bm43a/config.h @@ -55,7 +55,7 @@ along with this program. If not, see . #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_LIMIT_VAL 180 // Limit to vendor-recommended value #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== all animations enable ==*/ #define RGBLIGHT_ANIMATIONS @@ -70,3 +70,6 @@ along with this program. If not, see . // #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_ALTERNATING #endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value +#endif diff --git a/keyboards/bm60poker/config.h b/keyboards/bm60poker/config.h index 4fbec4f9bd48..831a1a1b8c62 100644 --- a/keyboards/bm60poker/config.h +++ b/keyboards/bm60poker/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LIMIT_VAL 5 /* The maximum brightness level */ + #define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== all animations enable ==*/ #define RGBLIGHT_ANIMATIONS @@ -68,3 +68,6 @@ along with this program. If not, see . // #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_ALTERNATING #endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value +#endif diff --git a/keyboards/bm60rgb/config.h b/keyboards/bm60rgb/config.h index 3eee00e51edc..bbb38e24fd79 100644 --- a/keyboards/bm60rgb/config.h +++ b/keyboards/bm60rgb/config.h @@ -50,8 +50,12 @@ along with this program. If not, see . #define RGB_DI_PIN E2 #define DRIVER_LED_TOTAL 69 #ifdef RGB_DI_PIN - #define RGBLED_NUM 69 - #define RGB_MATRIX_KEYPRESSES +# define RGBLED_NUM 69 +# define RGB_MATRIX_KEYPRESSES +# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value +#endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value #endif // generated by KBFirmware JSON to QMK Parser diff --git a/keyboards/bm60rgb_iso/config.h b/keyboards/bm60rgb_iso/config.h index 61d30cd83cea..17cf1436d480 100644 --- a/keyboards/bm60rgb_iso/config.h +++ b/keyboards/bm60rgb_iso/config.h @@ -50,12 +50,12 @@ along with this program. If not, see . #define RGB_DI_PIN E2 #define DRIVER_LED_TOTAL 70 #ifdef RGB_DI_PIN - #define RGBLED_NUM 70 - #define RGB_MATRIX_KEYPRESSES +# define RGBLED_NUM 70 +# define RGB_MATRIX_KEYPRESSES // #define RGBLIGHT_HUE_STEP 8 // #define RGBLIGHT_SAT_STEP 8 // #define RGBLIGHT_VAL_STEP 8 - // #define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */ +# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== all animations enable ==*/ // #define RGBLIGHT_ANIMATIONS @@ -70,3 +70,6 @@ along with this program. If not, see . // #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_ALTERNATING #endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value +#endif diff --git a/keyboards/bm68rgb/config.h b/keyboards/bm68rgb/config.h index 1923192e5f32..48844c295f45 100644 --- a/keyboards/bm68rgb/config.h +++ b/keyboards/bm68rgb/config.h @@ -56,8 +56,12 @@ along with this program. If not, see . // The number of LEDs connected #define DRIVER_LED_TOTAL 74 #ifdef RGB_DI_PIN - #define RGBLED_NUM 74 - #define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGBLED_NUM 74 +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value +#endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value #endif /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ From 760caaa9af9082a4502b3b2346f23d35a44b22bd Mon Sep 17 00:00:00 2001 From: Brandon Lewis <64657834+blewis308@users.noreply.github.com> Date: Mon, 9 Aug 2021 16:14:33 -0500 Subject: [PATCH 194/328] Ristretto - Update bootloader (#13933) * updated bootloader for 32u4 mcu Should be atmel-dfu instead of caterina as the mcu is integrated instead of on a pro-micro/elite-c --- keyboards/ristretto/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ristretto/rules.mk b/keyboards/ristretto/rules.mk index 96bf291a0dda..7bc093c1da36 100644 --- a/keyboards/ristretto/rules.mk +++ b/keyboards/ristretto/rules.mk @@ -2,7 +2,7 @@ MCU = atmega32u4 # Bootloader selection -BOOTLOADER = caterina +BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable From 8ef58e3291cc98f6bd8b9ea360ea2264f1ab4c44 Mon Sep 17 00:00:00 2001 From: Ryuki <36336987+kryuki@users.noreply.github.com> Date: Mon, 9 Aug 2021 23:07:14 -0500 Subject: [PATCH 195/328] adding my keymap "vayashiko" (#13049) * adding my keymap * changed some bugs * removed include keymap.h --- keyboards/crkbd/keymaps/vayashiko/config.h | 42 +++++ keyboards/crkbd/keymaps/vayashiko/keymap.c | 182 +++++++++++++++++++++ keyboards/crkbd/keymaps/vayashiko/rules.mk | 31 ++++ 3 files changed, 255 insertions(+) create mode 100644 keyboards/crkbd/keymaps/vayashiko/config.h create mode 100644 keyboards/crkbd/keymaps/vayashiko/keymap.c create mode 100644 keyboards/crkbd/keymaps/vayashiko/rules.mk diff --git a/keyboards/crkbd/keymaps/vayashiko/config.h b/keyboards/crkbd/keymaps/vayashiko/config.h new file mode 100644 index 000000000000..dd6cca89e45e --- /dev/null +++ b/keyboards/crkbd/keymaps/vayashiko/config.h @@ -0,0 +1,42 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + + + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 42 +#define RGBLIGHT_LIMIT_VAL 120 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/crkbd/keymaps/vayashiko/keymap.c b/keyboards/crkbd/keymaps/vayashiko/keymap.c new file mode 100644 index 000000000000..e9befa5551b3 --- /dev/null +++ b/keyboards/crkbd/keymaps/vayashiko/keymap.c @@ -0,0 +1,182 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H +#include "keymap_jp.h" + +enum custom_layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LCTRL, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT + //`--------------------------' `--------------------------' + + ), + + [_LOWER] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_DELETE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_7, KC_8, KC_9, JP_MINS,KC_DELETE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LALT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, KC_4, KC_5, KC_6, JP_PLUS,LSFT(KC_CAPS), + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LCTRL, _______, KC_SPC, KC_ENT, MO(3), KC_RALT + //`--------------------------' `--------------------------' + ), + + [_RAISE] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, JP_EXLM, JP_DQT, JP_HASH, KC_DLR, JP_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_MINS, JP_CIRC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_GRV, XXXXXXX, XXXXXXX, KC_MHEN, KC_G, XXXXXXX, KC_HENK, JP_LBRC, JP_RBRC, XXXXXXX, JP_YEN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_EQL,JP_AT,LSFT(JP_LBRC),LSFT(JP_RBRC),XXXXXXX,JP_UNDS, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_HOME, KC_S, XXXXXXX, KC_END, KC_G, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DOWN, XXXXXXX, XXXXXXX, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_master) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_LOWER 2 +#define L_RAISE 4 +#define L_ADJUST 8 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case L_RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + case L_ADJUST: + case L_ADJUST|L_LOWER: + case L_ADJUST|L_RAISE: + case L_ADJUST|L_LOWER|L_RAISE: + oled_write_ln_P(PSTR("Adjust"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_master) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/vayashiko/rules.mk b/keyboards/crkbd/keymaps/vayashiko/rules.mk new file mode 100644 index 000000000000..16deaf45d1de --- /dev/null +++ b/keyboards/crkbd/keymaps/vayashiko/rules.mk @@ -0,0 +1,31 @@ + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +SWAP_HANDS_ENABLE = no # Enable one-hand typing + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +# If you want to change the display of OLED, you need to change here +SRC += ./lib/glcdfont.c \ + ./lib/rgb_state_reader.c \ + ./lib/layer_state_reader.c \ + ./lib/logo_reader.c \ + ./lib/keylogger.c \ + # ./lib/mode_icon_reader.c \ + # ./lib/host_led_state_reader.c \ + # ./lib/timelogger.c \ From 076c8cc45fe9af215dc5211ca0e8a731718864ae Mon Sep 17 00:00:00 2001 From: rate Date: Tue, 10 Aug 2021 14:23:25 +0900 Subject: [PATCH 196/328] [Keyboard] Added pistachio_pro (#13466) * Added pistachio_pro * Apply suggestions from code review * Apply suggestions from code review --- keyboards/pistachio_pro/config.h | 108 ++++++++ keyboards/pistachio_pro/info.json | 101 +++++++ .../pistachio_pro/keymaps/default/keymap.c | 123 +++++++++ .../pistachio_pro/keymaps/default/readme.md | 1 + keyboards/pistachio_pro/keymaps/rate/keymap.c | 125 +++++++++ .../pistachio_pro/keymaps/rate/readme.md | 1 + keyboards/pistachio_pro/keymaps/via/keymap.c | 141 ++++++++++ keyboards/pistachio_pro/keymaps/via/readme.md | 1 + keyboards/pistachio_pro/keymaps/via/rules.mk | 1 + keyboards/pistachio_pro/lib/bme280.c | 255 ++++++++++++++++++ keyboards/pistachio_pro/lib/bme280.h | 22 ++ keyboards/pistachio_pro/lib/glcdfont.c | 232 ++++++++++++++++ keyboards/pistachio_pro/matrix.c | 151 +++++++++++ keyboards/pistachio_pro/pistachio_pro.c | 17 ++ keyboards/pistachio_pro/pistachio_pro.h | 42 +++ keyboards/pistachio_pro/readme.md | 21 ++ keyboards/pistachio_pro/rules.mk | 28 ++ 17 files changed, 1370 insertions(+) create mode 100644 keyboards/pistachio_pro/config.h create mode 100644 keyboards/pistachio_pro/info.json create mode 100644 keyboards/pistachio_pro/keymaps/default/keymap.c create mode 100644 keyboards/pistachio_pro/keymaps/default/readme.md create mode 100644 keyboards/pistachio_pro/keymaps/rate/keymap.c create mode 100644 keyboards/pistachio_pro/keymaps/rate/readme.md create mode 100644 keyboards/pistachio_pro/keymaps/via/keymap.c create mode 100644 keyboards/pistachio_pro/keymaps/via/readme.md create mode 100644 keyboards/pistachio_pro/keymaps/via/rules.mk create mode 100644 keyboards/pistachio_pro/lib/bme280.c create mode 100644 keyboards/pistachio_pro/lib/bme280.h create mode 100644 keyboards/pistachio_pro/lib/glcdfont.c create mode 100644 keyboards/pistachio_pro/matrix.c create mode 100644 keyboards/pistachio_pro/pistachio_pro.c create mode 100644 keyboards/pistachio_pro/pistachio_pro.h create mode 100644 keyboards/pistachio_pro/readme.md create mode 100644 keyboards/pistachio_pro/rules.mk diff --git a/keyboards/pistachio_pro/config.h b/keyboards/pistachio_pro/config.h new file mode 100644 index 000000000000..6c95e0f8081b --- /dev/null +++ b/keyboards/pistachio_pro/config.h @@ -0,0 +1,108 @@ +/* +Copyright 2021 rate + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5255 +#define PRODUCT_ID 0xF40C +#define DEVICE_VER 0x0001 +#define MANUFACTURER rate +#define PRODUCT PistachioPro + +#define ENCODERS_PAD_A {D2} +#define ENCODERS_PAD_B {D3} + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +#define MATRIX_ROW_PINS { D4, C6, D7, B3, B4, B5 } +#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, B6, D6, D5,} +#define UNUSED_PINS +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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 + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +/* OLED */ +#define OLED_DISPLAY_128X64 +#define OLED_FONT_H "keyboards/pistachio_pro/lib/glcdfont.c" + +#define OLED_FONT_WIDTH 6 +#define OLED_FONT_HEIGHT 6 + +#define OLED_UPDATE_INTERVAL 1000 + +#define OLED_TIMEOUT 0 + +#define OLED_BRIGHTNESS 255 diff --git a/keyboards/pistachio_pro/info.json b/keyboards/pistachio_pro/info.json new file mode 100644 index 000000000000..81035fe79807 --- /dev/null +++ b/keyboards/pistachio_pro/info.json @@ -0,0 +1,101 @@ +{ + "keyboard_name": "PistachioPro", + "url": "https://rates.booth.pm/items/2925303", + "maintainer": "rate", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + {"label":"E/J", "x":0, "y":1.5}, + {"label":"!", "x":1, "y":1.5}, + {"label":"\"", "x":2, "y":1.5}, + {"label":"#", "x":3, "y":1.5}, + {"label":"$", "x":4, "y":1.5}, + {"label":"%", "x":5, "y":1.5}, + {"label":"&", "x":6, "y":1.5}, + {"label":"'", "x":7, "y":1.5}, + {"label":"(", "x":8, "y":1.5}, + {"label":")", "x":9, "y":1.5}, + {"label":"", "x":10, "y":1.5}, + {"label":"=", "x":11, "y":1.5}, + {"label":"~", "x":12, "y":1.5}, + {"label":"|", "x":13, "y":1.5}, + {"label":"BS", "x":14, "y":1.5}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"`", "x":11.5, "y":2.5}, + {"label":"{", "x":12.5, "y":2.5}, + {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":"+", "x":10.75, "y":3.5}, + {"label":"*", "x":11.75, "y":3.5}, + {"label":"}", "x":12.75, "y":3.5}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":"<", "x":9.25, "y":4.5}, + {"label":">", "x":10.25, "y":4.5}, + {"label":"?", "x":11.25, "y":4.5}, + {"label":"_", "x":12.25, "y":4.5}, + {"label":"Shift", "x":13.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.5}, + {"label":"Alt", "x":2.25, "y":5.5, "w":1.25}, + {"x":3.5, "y":5.5}, + {"x":4.5, "y":5.5, "w":2.25}, + {"x":6.75, "y":5.5, "w":2.25}, + {"label":"kana", "x":9, "y":5.5, "w":1.25}, + {"x":10.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":11.5, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.75, "y":5.5}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/pistachio_pro/keymaps/default/keymap.c b/keyboards/pistachio_pro/keymaps/default/keymap.c new file mode 100644 index 000000000000..a79b9a2b52e8 --- /dev/null +++ b/keyboards/pistachio_pro/keymaps/default/keymap.c @@ -0,0 +1,123 @@ +/* Copyright 2021 rate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include +#include "keymap_jp.h" +#include "lib/bme280.h" + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, + KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_DEL, KC_END, KC_PGDN, + JP_EISU, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, + KC_LCTRL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, KC_SPC, LT(_FN, JP_HENK), JP_KANA, KC_RALT, KC_APP, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, JP_DOT, JP_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +/* OLED */ +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' ' +}; + +static void print_airstate(void) { + char airstate_str[32]; + double temp; + double press; + double hum; + + temp = bme280_getTemp(); + press = bme280_getPress(); + hum = bme280_getHum(); + + oled_write_ln_P(PSTR("\nTemp Press Hum"), false); + snprintf(airstate_str, sizeof(airstate_str), "%ddeg %dhPa %d%% \n", (int)temp, (int)press, (int)hum ); + oled_write(airstate_str, false); + + return; +} + +static keyrecord_t keylog_record; +static void print_keylog(void) { + char keylog_str[32]; + + oled_write_ln_P(PSTR("\nKeylog"), false); + snprintf(keylog_str, sizeof(keylog_str), "row:%d col:%d", keylog_record.event.key.row, keylog_record.event.key.col ); + oled_write(keylog_str, false); + + return; +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +void oled_task_user(void) { + oled_write_ln_P(PSTR(" - PistachioPro -"), false); + print_airstate(); + print_keylog(); + + return; +} + +/* Encoder */ +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + + return true; +} + +/* Keyboard */ +void keyboard_post_init_user(void) { + bme280_init(); +} + +void housekeeping_task_user(void) { + bme280_exec(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + keylog_record = *record; + } + + return true; +} \ No newline at end of file diff --git a/keyboards/pistachio_pro/keymaps/default/readme.md b/keyboards/pistachio_pro/keymaps/default/readme.md new file mode 100644 index 000000000000..2bc50be9dd06 --- /dev/null +++ b/keyboards/pistachio_pro/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for pistachio_mp diff --git a/keyboards/pistachio_pro/keymaps/rate/keymap.c b/keyboards/pistachio_pro/keymaps/rate/keymap.c new file mode 100644 index 000000000000..e08e1677001e --- /dev/null +++ b/keyboards/pistachio_pro/keymaps/rate/keymap.c @@ -0,0 +1,125 @@ +/* Copyright 2021 rate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include +#include "keymap_jp.h" +#include "lib/bme280.h" + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, + KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_DEL, KC_END, KC_PGDN, + KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, + KC_LCTRL, KC_LGUI, KC_LALT, KC_DEL, KC_SPC, KC_SPC, LT(_FN, KC_ESC), JP_KANA, KC_RALT, KC_APP, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, JP_DOT, JP_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + + + +/* OLED */ +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' ' +}; + +static void print_airstate(void) { + char airstate_str[32]; + double temp; + double press; + double hum; + + temp = bme280_getTemp(); + press = bme280_getPress(); + hum = bme280_getHum(); + + oled_write_ln_P(PSTR("\nTemp Press Hum"), false); + snprintf(airstate_str, sizeof(airstate_str), "%ddeg %dhPa %d%% \n", (int)temp, (int)press, (int)hum ); + oled_write(airstate_str, false); + + return; +} + +static keyrecord_t keylog_record; +static void print_keylog(void) { + char keylog_str[32]; + + oled_write_ln_P(PSTR("\nKeylog"), false); + snprintf(keylog_str, sizeof(keylog_str), "row:%d col:%d", keylog_record.event.key.row, keylog_record.event.key.col ); + oled_write(keylog_str, false); + + return; +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +void oled_task_user(void) { + oled_write_ln_P(PSTR(" - PistachioPro -"), false); + print_airstate(); + print_keylog(); + + return; +} + +/* Encoder */ +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + + return true; +} + +/* Keyboard */ +void keyboard_post_init_user(void) { + bme280_init(); +} + +void housekeeping_task_user(void) { + bme280_exec(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + keylog_record = *record; + } + + return true; +} \ No newline at end of file diff --git a/keyboards/pistachio_pro/keymaps/rate/readme.md b/keyboards/pistachio_pro/keymaps/rate/readme.md new file mode 100644 index 000000000000..b355dced2319 --- /dev/null +++ b/keyboards/pistachio_pro/keymaps/rate/readme.md @@ -0,0 +1 @@ +# The rate's keymap for pistachio_mp diff --git a/keyboards/pistachio_pro/keymaps/via/keymap.c b/keyboards/pistachio_pro/keymaps/via/keymap.c new file mode 100644 index 000000000000..833bbb8eccab --- /dev/null +++ b/keyboards/pistachio_pro/keymaps/via/keymap.c @@ -0,0 +1,141 @@ +/* Copyright 2021 rate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include +#include "keymap_jp.h" +#include "lib/bme280.h" + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _RESERVE_0, + _RESERVE_1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, + KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_DEL, KC_END, KC_PGDN, + JP_EISU, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, + KC_LCTRL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, KC_SPC, LT(_FN, JP_HENK), JP_KANA, KC_RALT, KC_APP, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, JP_DOT, JP_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_RESERVE_0] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_RESERVE_1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +/* OLED */ +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' ' +}; + +static void print_airstate(void) { + char airstate_str[32]; + double temp; + double press; + double hum; + + temp = bme280_getTemp(); + press = bme280_getPress(); + hum = bme280_getHum(); + + oled_write_ln_P(PSTR("\nTemp Press Hum"), false); + snprintf(airstate_str, sizeof(airstate_str), "%ddeg %dhPa %d%% \n", (int)temp, (int)press, (int)hum ); + oled_write(airstate_str, false); + + return; +} + +static keyrecord_t keylog_record; +static void print_keylog(void) { + char keylog_str[32]; + + oled_write_ln_P(PSTR("\nKeylog"), false); + snprintf(keylog_str, sizeof(keylog_str), "row:%d col:%d", keylog_record.event.key.row, keylog_record.event.key.col ); + oled_write(keylog_str, false); + + return; +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +void oled_task_user(void) { + oled_write_ln_P(PSTR(" - PistachioPro -"), false); + print_airstate(); + print_keylog(); + + return; +} + +/* Encoder */ +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + + return true; +} + +/* Keyboard */ +void keyboard_post_init_user(void) { + bme280_init(); +} + +void housekeeping_task_user(void) { + bme280_exec(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + keylog_record = *record; + } + + return true; +} \ No newline at end of file diff --git a/keyboards/pistachio_pro/keymaps/via/readme.md b/keyboards/pistachio_pro/keymaps/via/readme.md new file mode 100644 index 000000000000..b768049ccc07 --- /dev/null +++ b/keyboards/pistachio_pro/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for pistachio_mp diff --git a/keyboards/pistachio_pro/keymaps/via/rules.mk b/keyboards/pistachio_pro/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/pistachio_pro/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/pistachio_pro/lib/bme280.c b/keyboards/pistachio_pro/lib/bme280.c new file mode 100644 index 000000000000..f3dc231dc54b --- /dev/null +++ b/keyboards/pistachio_pro/lib/bme280.c @@ -0,0 +1,255 @@ +/* Copyright 2021 rate + * + * 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 +#include "bme280.h" +#include "i2c_master.h" + +#define BME280_ADDRESS (0x76<<1) + +#define BME280_REG_CALIB00 (0x88) +#define BME280_REG_CALIB25 (0xA1) +#define BME280_REG_CALIB26 (0xE1) +#define BME280_REG_CTRL_HUM (0xF2) +#define BME280_REG_CTRL_MEAS (0xF4) +#define BME280_REG_CONFIG (0xF5) +#define BME280_REG_PRESS_MSB (0xf7) + +#define I2C_BME280_TIMEOUT (20) + +/* BME280 configurator values */ +/* [2:0] Humidity oversampling + * 000 Skipped + * 001 oversampling x1 + * 010 oversampling x2 + * 011 oversampling x4 + * 100 oversampling x8 + * 101,others oversampling x16 + */ +#define BME280_CTRL_HUM_VAL (0x01) + + +/* [7:5] Pressure oversampling + * 000 Skipped + * 001 oversampling x1 + * 010 oversampling x2 + * 011 oversampling x4 + * 100 oversampling x8 + * 101,others oversampling x16 + * [4:2] Temperature oversampling + * 000 Skipped + * 001 oversampling x1 + * 010 oversampling x2 + * 011 oversampling x4 + * 100 oversampling x8 + * 101,others oversampling x16 + * [1:0] Mode + * 00 Sleep mode + * 11 Normal mode + */ +#define BME280_CTRL_MEAS_VAL (0x27) + +/* [7:5] t_standby[ms] + * 000 0.5 + * 001 62.5 + * 010 125 + * 011 250 + * 100 500 + * 101 1000 + * 110 10 + * 111 20 + * [4:2] Filter corefficient + * 000 Filter off + * 001 2 + * 010 4 + * 011 8 + * 100,others 16 + * [0] SPI interface + * 0 4-wire + * 1 3-wire + */ +#define BME280_CONFIG_VAL (0xA0) + +static void readTrim(void); +static void readData(void); +static int32_t calibration_T(int32_t adc_T); +static uint32_t calibration_P(int32_t adc_P); +static uint32_t calibration_H(int32_t adc_H); + +static uint32_t hum_raw,temp_raw,pres_raw; +static uint16_t dig_T1; +static int16_t dig_T2, dig_T3; +static uint16_t dig_P1; +static int16_t dig_P2, dig_P3, dig_P4, dig_P5, dig_P6, dig_P7, dig_P8, dig_P9; +static uint8_t dig_H1, dig_H3; +static int16_t dig_H2, dig_H4, dig_H5; +static int8_t dig_H6; +static int32_t t_fine; + +/* Private */ +static void readTrim(void) { + uint8_t data[32]; + + i2c_readReg(BME280_ADDRESS, BME280_REG_CALIB00, &data[0], 24, I2C_BME280_TIMEOUT); + i2c_readReg(BME280_ADDRESS, BME280_REG_CALIB25, &data[25], 1, I2C_BME280_TIMEOUT); + i2c_readReg(BME280_ADDRESS, BME280_REG_CALIB26, &data[25], 7, I2C_BME280_TIMEOUT); + + dig_T1 = (data[1] << 8) | data[0]; + dig_T2 = (data[3] << 8) | data[2]; + dig_T3 = (data[5] << 8) | data[4]; + dig_P1 = (data[7] << 8) | data[6]; + dig_P2 = (data[9] << 8) | data[8]; + dig_P3 = (data[11]<< 8) | data[10]; + dig_P4 = (data[13]<< 8) | data[12]; + dig_P5 = (data[15]<< 8) | data[14]; + dig_P6 = (data[17]<< 8) | data[16]; + dig_P7 = (data[19]<< 8) | data[18]; + dig_P8 = (data[21]<< 8) | data[20]; + dig_P9 = (data[23]<< 8) | data[22]; + dig_H1 = data[24]; + dig_H2 = (data[26]<< 8) | data[25]; + dig_H3 = data[27]; + dig_H4 = (data[28]<< 4) | (0x0F & data[29]); + dig_H5 = (data[30] << 4) | ((data[29] >> 4) & 0x0F); + dig_H6 = data[31]; + + return; +} + +static void readData(void) { + uint8_t data[8]; + + i2c_readReg(BME280_ADDRESS, 0xF7, &data[0], 8, I2C_BME280_TIMEOUT); + + pres_raw = data[0]; + pres_raw = (pres_raw<<8) | data[1]; + pres_raw = (pres_raw<<4) | (data[2] >> 4); + + temp_raw = data[3]; + temp_raw = (temp_raw<<8) | data[4]; + temp_raw = (temp_raw<<4) | (data[5] >> 4); + + hum_raw = data[6]; + hum_raw = (hum_raw << 8) | data[7]; + + return; +} + +static int32_t calibration_T(int32_t adc_T) { + int32_t var1, var2, T; + var1 = ((((adc_T >> 3) - ((int32_t)dig_T1<<1))) * ((int32_t)dig_T2)) >> 11; + var2 = (((((adc_T >> 4) - ((int32_t)dig_T1)) * ((adc_T>>4) - ((int32_t)dig_T1))) >> 12) * ((int32_t)dig_T3)) >> 14; + + t_fine = var1 + var2; + T = (t_fine * 5 + 128) >> 8; + + return T; +} + +static uint32_t calibration_P(int32_t adc_P) { + int32_t var1, var2; + uint32_t P; + + var1 = (((int32_t)t_fine)>>1) - (int32_t)64000; + var2 = (((var1>>2) * (var1>>2)) >> 11) * ((int32_t)dig_P6); + var2 = var2 + ((var1*((int32_t)dig_P5))<<1); + var2 = (var2>>2)+(((int32_t)dig_P4)<<16); + var1 = (((dig_P3 * (((var1>>2)*(var1>>2)) >> 13)) >>3) + ((((int32_t)dig_P2) * var1)>>1))>>18; + var1 = ((((32768+var1))*((int32_t)dig_P1))>>15); + if (var1 == 0) { + return 0; + } + P = (((uint32_t)(((int32_t)1048576)-adc_P)-(var2>>12)))*3125; + if( P < 0x80000000 ) { + P = (P << 1) / ((uint32_t) var1); + } else { + P = (P / (uint32_t)var1) * 2; + } + var1 = (((int32_t)dig_P9) * ((int32_t)(((P>>3) * (P>>3))>>13)))>>12; + var2 = (((int32_t)(P>>2)) * ((int32_t)dig_P8))>>13; + P = (uint32_t)((int32_t)P + ((var1 + var2 + dig_P7) >> 4)); + + return P; +} + +static uint32_t calibration_H(int32_t adc_H) { + int32_t v_x1; + + v_x1 = (t_fine - ((int32_t)76800)); + v_x1 = (((((adc_H << 14) -(((int32_t)dig_H4) << 20) - (((int32_t)dig_H5) * v_x1)) + + ((int32_t)16384)) >> 15) * (((((((v_x1 * ((int32_t)dig_H6)) >> 10) * + (((v_x1 * ((int32_t)dig_H3)) >> 11) + ((int32_t) 32768))) >> 10) + (( int32_t)2097152)) * + ((int32_t) dig_H2) + 8192) >> 14)); + v_x1 = (v_x1 - (((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((int32_t)dig_H1)) >> 4)); + v_x1 = (v_x1 < 0 ? 0 : v_x1); + v_x1 = (v_x1 > 419430400 ? 419430400 : v_x1); + + return (uint32_t)(v_x1 >> 12); +} + +/* Public */ +void bme280_init(void) { + uint8_t ctrl_hum_reg; + uint8_t ctrl_meas_reg; + uint8_t config_reg; + + ctrl_hum_reg = BME280_CTRL_HUM_VAL; + ctrl_meas_reg = BME280_CTRL_MEAS_VAL; + config_reg = BME280_CONFIG_VAL; + + i2c_init(); + i2c_writeReg(BME280_ADDRESS, BME280_REG_CTRL_HUM, &ctrl_hum_reg, 1, I2C_BME280_TIMEOUT); + i2c_writeReg(BME280_ADDRESS, BME280_REG_CTRL_MEAS, &ctrl_meas_reg, 1, I2C_BME280_TIMEOUT); + i2c_writeReg(BME280_ADDRESS, BME280_REG_CONFIG, &config_reg, 1, I2C_BME280_TIMEOUT); + readTrim(); + + return; +} + +void bme280_exec(void) { + readData(); + + return; +} + +double bme280_getTemp(void) { + double temp_act; + int32_t temp_cal; + + temp_cal = calibration_T(temp_raw); + temp_act = (double)temp_cal / 100.0; + + return temp_act; +} + +double bme280_getPress(void) { + double press_act; + uint32_t press_cal; + + press_cal = calibration_P(pres_raw); + press_act = (double)press_cal / 100.0; + + return press_act; +} + +double bme280_getHum(void) { + double hum_act; + uint32_t hum_cal; + + hum_cal = calibration_H(hum_raw); + hum_act = (double)hum_cal / 1024.0; + + return hum_act; +} diff --git a/keyboards/pistachio_pro/lib/bme280.h b/keyboards/pistachio_pro/lib/bme280.h new file mode 100644 index 000000000000..eb503038d399 --- /dev/null +++ b/keyboards/pistachio_pro/lib/bme280.h @@ -0,0 +1,22 @@ +/* Copyright 2021 rate + * + * 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 + +void bme280_init(void); +void bme280_exec(void); +double bme280_getTemp(void); +double bme280_getPress(void); +double bme280_getHum(void); diff --git a/keyboards/pistachio_pro/lib/glcdfont.c b/keyboards/pistachio_pro/lib/glcdfont.c new file mode 100644 index 000000000000..41041f12bb3f --- /dev/null +++ b/keyboards/pistachio_pro/lib/glcdfont.c @@ -0,0 +1,232 @@ +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. + +#include "progmem.h" + +// Standard ASCII 5x7 font +const unsigned char font[] PROGMEM = { +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, 0xC0, 0xE0, +0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0, +0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, +0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, +0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, +0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, +0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, +0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0, +0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, +0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, +0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, +0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, +0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, +0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, +0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, +0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, +0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, +0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, +0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, +0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, +0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFE, +0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x81, +0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF, +0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF, +0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, +0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, +0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, +0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, +0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, +0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, +0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, +0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, +0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, +0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, +0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, +0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, +0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, +0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, +0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, +0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x03, 0x07, 0x07, +0x07, 0x07, 0x07, 0x07, 0x07, 0x07, +0x03, 0x01, 0x00, 0x00, 0x00, 0x00, +0x01, 0x03, 0x07, 0x07, 0x07, 0x07, +0x07, 0x07, 0x07, 0x07, 0x03, 0x01, +0x00, 0x00, 0x00, 0x07, 0x07, 0x07, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x07, 0x07, 0x07, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x07, 0x07, +0x07, 0x00, 0x00, 0x00, 0x01, 0x03, +0x07, 0x07, 0x07, 0x07, 0x07, 0x07, +0x07, 0x07, 0x03, 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, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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/pistachio_pro/matrix.c b/keyboards/pistachio_pro/matrix.c new file mode 100644 index 000000000000..6cbfb6dfea18 --- /dev/null +++ b/keyboards/pistachio_pro/matrix.c @@ -0,0 +1,151 @@ +/* +Copyright 2012-2018 Jun Wako, Jack Humbert, Yiancar + +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 +#include +#include "matrix.h" +#include "quantum.h" + +static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +static inline void setPinOutput_writeLow(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinLow(pin); + } +} + +static inline void setPinInputHigh_atomic(pin_t pin) { + ATOMIC_BLOCK_FORCEON { setPinInputHigh(pin); } +} + +static void select_row(uint8_t row) { + setPinOutput_writeLow(row_pins[row]); +} + +static void unselect_row(uint8_t row) { + setPinInputHigh_atomic(row_pins[row]); +} + +static void unselect_rows(void) { + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh_atomic(row_pins[x]); + } +} + +static void select_col(uint8_t col) { + setPinOutput_writeLow(col_pins[col]); +} + +static void unselect_col(uint8_t col) { + setPinInputHigh_atomic(col_pins[col]); +} + +static void unselect_cols(void) { + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh_atomic(col_pins[x]); + } +} + +static void init_pins(void) { + unselect_rows(); + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh_atomic(col_pins[x]); + } + unselect_cols(); + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh_atomic(row_pins[x]); + } +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Select row + select_row(current_row); + matrix_io_delay(); + + // For each col... + for (uint8_t col_index = 0; col_index < MATRIX_COLS / 2; col_index++) { + // Check row pin state + if (readPin(col_pins[col_index])) { + // Pin HI, clear col bit + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << col_index); + } else { + // Pin LO, set col bit + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << col_index); + } + } + + // Unselect row + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) { + bool matrix_changed = false; + + // Select col + select_col(current_col); + matrix_io_delay(); + + // For each row... + for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[row_index]; + + // Check row pin state + if (readPin(row_pins[row_index])) { + // Pin HI, clear col bit + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << ( current_col + MATRIX_COLS/2)); + } else { + // Pin LO, set col bit + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << ( current_col + MATRIX_COLS/2)); + } + + // Determine if the matrix changed state + if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) { + matrix_changed = true; + } + } + + // Unselect col + unselect_col(current_col); + + return matrix_changed; +} + +void matrix_init_custom(void) { + init_pins(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool changed = false; + + // Set row, read cols + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { + changed |= read_cols_on_row(current_matrix, current_row); + } + // Set col, read rows + for (uint8_t current_col = 0; current_col < (MATRIX_COLS/2); current_col++) { + changed |= read_rows_on_col(current_matrix, current_col); + } + + return (uint8_t)changed; +} diff --git a/keyboards/pistachio_pro/pistachio_pro.c b/keyboards/pistachio_pro/pistachio_pro.c new file mode 100644 index 000000000000..fda14471b728 --- /dev/null +++ b/keyboards/pistachio_pro/pistachio_pro.c @@ -0,0 +1,17 @@ +/* Copyright 2021 rate + * + * 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 "pistachio_pro.h" diff --git a/keyboards/pistachio_pro/pistachio_pro.h b/keyboards/pistachio_pro/pistachio_pro.h new file mode 100644 index 000000000000..42de95ea8799 --- /dev/null +++ b/keyboards/pistachio_pro/pistachio_pro.h @@ -0,0 +1,42 @@ +/* Copyright 2021 rate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k413, \ + k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k510, k511, k512, k513 ) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, KC_NO, KC_NO }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k413, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k510, k511, k512, k513, KC_NO, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/pistachio_pro/readme.md b/keyboards/pistachio_pro/readme.md new file mode 100644 index 000000000000..b224c874e61e --- /dev/null +++ b/keyboards/pistachio_pro/readme.md @@ -0,0 +1,21 @@ +# PistachioPro + +![PistachioPro](https://ratelog.net/wp-content/uploads/2021/07/PistachioPro-scaled.jpg) + +This is a JIS layout TKL keyboard with 89 keys, encoder and OLED. + +* Keyboard Maintainer: [rate](https://github.com/7-rate) +* Hardware Supported: PistachioPro PCB, +* Hardware Availability: [Booth Shop](https://rates.booth.pm/items/2925303) + +Make example for this keyboard (after setting up your build environment): + + make pistachio_pro:default + +Flashing example for this keyboard: + + make pistachio_pro:default:flash + +To reset the keyboard into bootloader mode, press the reset switch on the underside. + +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). diff --git a/keyboards/pistachio_pro/rules.mk b/keyboards/pistachio_pro/rules.mk new file mode 100644 index 000000000000..48e745a631b2 --- /dev/null +++ b/keyboards/pistachio_pro/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +OLED_DRIVER_ENABLE = yes +ENCODER_ENABLE = yes + +CUSTOM_MATRIX = lite +SRC += matrix.c +SRC += ./lib/bme280.c \ No newline at end of file From d3932a104cb1db7e9436f5c16ee58cf3684e8b3a Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 10 Aug 2021 18:03:04 +1000 Subject: [PATCH 197/328] Add padding to LUFA-MS .BIN files (#13922) --- tmk_core/avr.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 690154535bc6..d0a1b86ca4b7 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -239,7 +239,12 @@ bootloadHID: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware # Convert hex to bin. bin: $(BUILD_DIR)/$(TARGET).hex +ifeq ($(BOOTLOADER),lufa-ms) + $(eval BIN_PADDING=$(shell n=`expr 32768 - $(BOOTLOADER_SIZE)` && echo $$(($$n)) || echo 0)) + $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin --pad-to $(BIN_PADDING) +else $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin +endif $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; # copy bin to FLASH.bin From aeff347a074495f5aea77612bb083f79f7fcaf17 Mon Sep 17 00:00:00 2001 From: Stefan Subich <20615740+su-stefan@users.noreply.github.com> Date: Tue, 10 Aug 2021 05:14:14 -0400 Subject: [PATCH 198/328] Update feature_wpm.md (#13936) Fix example markdown code formatting --- docs/feature_wpm.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/feature_wpm.md b/docs/feature_wpm.md index c8ec3a7f3274..e2fac1ecea05 100644 --- a/docs/feature_wpm.md +++ b/docs/feature_wpm.md @@ -45,6 +45,7 @@ bool wpm_keycode_user(uint16_t keycode) { Additionally, if `WPM_ALLOW_COUNT_REGRESSION` is defined, there is the `uint8_t wpm_regress_count(uint16_t keycode)` function that allows you to decrease the WPM. This is useful if you want to be able to penalize certain keycodes (or even combinations). +```c __attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) { bool weak_modded = (keycode >= QK_LCTL && keycode < QK_LSFT) || (keycode >= QK_RCTL && keycode < QK_RSFT); @@ -60,3 +61,4 @@ __attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) { return 1; } } +``` From 9a0118c603e8a773ca468c2382204e475e5bf7d4 Mon Sep 17 00:00:00 2001 From: Zach White Date: Tue, 10 Aug 2021 07:47:53 -0700 Subject: [PATCH 199/328] Architecture documentation for Configurator and API (#13935) * Architecture documentation for the configurator and api * Apply suggestions from code review Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- docs/_summary.md | 1 + docs/configurator_architecture.md | 61 +++++++++++++++++++++++++++++++ docs/configurator_diagram.drawio | 1 + docs/configurator_diagram.svg | 3 ++ 4 files changed, 66 insertions(+) create mode 100644 docs/configurator_architecture.md create mode 100644 docs/configurator_diagram.drawio create mode 100644 docs/configurator_diagram.svg diff --git a/docs/_summary.md b/docs/_summary.md index 9798ef5127d0..8347805a2fee 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -19,6 +19,7 @@ * [Overview](newbs_building_firmware_configurator.md) * [Step by Step](configurator_step_by_step.md) * [Troubleshooting](configurator_troubleshooting.md) + * [Architecture](configurator_architecture.md) * QMK API * [Overview](api_overview.md) * [API Documentation](api_docs.md) diff --git a/docs/configurator_architecture.md b/docs/configurator_architecture.md new file mode 100644 index 000000000000..0d7fc8a73b4f --- /dev/null +++ b/docs/configurator_architecture.md @@ -0,0 +1,61 @@ +# QMK Configurator Architecture + +This page describes the web architecture behind QMK Configurator at a high level. If you are interested in the architecture of the QMK Configurator code itself you should start at the [qmk_configurator](https://github.com/qmk/qmk_configurator) repository. + +# Overview + +![QMK Configurator Architecture Diagram](configurator_diagram.svg) + +# Detailed Description + +QMK Configurator is a [Single Page Application](https://en.wikipedia.org/wiki/Single-page_application) that allows users to create custom keymaps for their QMK-compatible keyboard. They can export JSON representation of their keymaps and compile firmware binaries that can be flashed to their keyboard using a tool like [QMK Toolbox](https://github.com/qmk/qmk_toolbox). + +Configurator gets metadata about keyboards from the Keyboard Metadata store and submits compile requests to the QMK API. The results of those compile requests will be made available on [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces/), an S3-compatible data store. + +## Configurator Frontend + +Address: + +The [Configurator Frontend](https://config.qmk.fm) is compiled into a set of static files that are served by Github Pages. This action happens every time a commit is pushed to the [qmk_configurator `master`](https://github.com/qmk/qmk_configurator) branch. You can view the status of these jobs on the [qmk_configurator actions tab](https://github.com/qmk/qmk_configurator/actions/workflows/build.yml). + +## Keyboard Metadata + +Address: + +The Keyboard Metadata is generated every time a keyboard in [qmk_firmware](https://github.com/qmk/qmk_firmware) changes. The resulting JSON files are uploaded to Spaces and used by Configurator to generate UI for each keyboard. You can view the status of this job on the [qmk_firmware actions tab](https://github.com/qmk/qmk_firmware/actions/workflows/api.yml). If you are a QMK Collaborator you can manually run this job using the `workflow_dispatch` event trigger. + +## QMK API + +Address: + +The QMK API accepts `keymap.json` files for compilation. These are the same files you can use directly with `qmk compile` and `qmk flash`. When a `keymap.json` is submitted the browser will poll the status of the job periodically (every 2 seconds or longer, preferably) until the job has completed. The final status JSON will contain pointers to source and binary downloads for the keymap. + +QMK API always presents the source and binary downloads side-by-side to comply with the GPL. + +There are 3 non-error status responses from the API- + +1. Compile Job Queued +2. Compile Job Running +3. Compile Job Finished + +### Compile Job Queued + +This status indicates that the job has not yet been picked up by a [QMK Compiler](#qmk-compiler) node. Configurator shows this status as "Waiting for an oven". + +### Compile Job Running + +This status indicates that the job has started compiling. Configurator shows this status as "Baking". + +### Compile Job Finished + +This status indicates that the job has completed. There will be keys in the status JSON for source and binary downloads. + +## Redis/RQ + +QMK API uses RQ to distribute jobs to the available [QMK Compiler](#qmk-compiler) nodes. When a `keymap.json` is received it's put into the RQ queue, where a `qmk_compiler` node will pick it up from. + +## QMK Compiler + +[QMK Compiler](https://github.com/qmk/qmk_compiler) is what actually performs the compilation of the `keymap.json`. It does so by checking out the requested `qmk_firmware` branch, running `qmk compile keymap.json`, and then uploading the resulting source and binary to Digital Ocean Spaces. + +When users download their source/binary, API will redirect them to the authenticated Spaces download URL. diff --git a/docs/configurator_diagram.drawio b/docs/configurator_diagram.drawio new file mode 100644 index 000000000000..091a3a76b8c3 --- /dev/null +++ b/docs/configurator_diagram.drawio @@ -0,0 +1 @@ +5VvbcqM4EP2a1O4+hOLqy2Ni5zKX1CTxzszOU0oG2dZEIBZEYu/XbwuEDQg7csZ2vFlXjQca0RLdR+eohXPiDML5VYLi2Q0LMD2xzWB+4gxPbNvqezb8JywLaTFtr7BMExJI28owIv/gsqG0ZiTAaa0hZ4xyEteNPosi7POaDSUJe643mzBa7zVGU6wYRj6iqvU7CfissPY8c2W/xmQ6K3u2THklRGVjaUhnKGDPFZNzceIMEsZ4cRTOB5iK6JVxKe67XHN1ObAER1znhgfT76Zzxxp3Z49j5+7zjw/z+NSS+XlCNJNPLEfLF2UIcAARkacs4TM2ZRGiFyvrecKyKMCiHxPOVm0+MxaD0QLjT8z5QqYXZZyBacZDKq/iKDgTyYLTiEW4sFwSSqXLAKWz3L9orD64jEXKssTHG57WlQBCyRTzTVGRDsWTV3qQcb3CLMQ8WUCDBFPEyVMdK0hCbrpst8oKHMjEbJEk9+UckTDHcTWm0jQk4RR6pWQM3z4l8QNKuDhkYZxxnKRw/J0ljymHJ2HRg2X35vDPiKPp2kA/4YTj+cbIyKunjmv0zMpHeljSQXH6XJla0jSrzKrStvPIei9Hdgm9HNoZpyTCgyXZmPWYI0qmERz7EDGcgIGiMaa3LCUittULIoQEaOZzo8GYcc7CSoMz6ZKLqXQOJBKLgYXzqSBc4xmPKcy11JgSPsvG0GLCIn6JQkJFiK8xfcLCjbwgJyDM+uJ8wChL8ud0ivSILnjCHnHblQlMyIp9kn/ADkMJCK55G14OL4YXmybrFhhyOzXQtKEGdMVwVeBUzDvHTjmKjdS54jWfojQlfpP3YCR/CRwZXnn6o3ptOJcgK84W8gwma8JVz7lZ0qZVI9Ff401PkzddTdqsJM5rme6lTZtdZQ+3jMCTLXFjlRkqyaZJI8Vzy7uqytl01Gk4chqOisAojnJYLR/7F5BWTpkV0gZUTDjgbnOUxTEorqCosxO7QyGG5+MEjqbiaDBLoPsTGzo2L0mCJ2yuNhri9FHQi21+iehCAfHzjHA8ilEOkWegnTqGm0QVkiDIVwU5950j/3Garw9Kdsjd7YYZlmurkhlUYrDNFoB19qUnltPCCUW40xhFZcBnnIvl65noTChxNCFT4+/w0ZiEZXOwV+9Qk9bmd0SiKYTeNm+F9AM2RKTX3tno4iN6QiM/IbFYHXz7eqHeOJI8AeM2YbTQDL4fiuFnCeIs0RvmNUt54eWqUK1iwOnaZ28Asr7cfC0894E/q2PYehDs7w2CGqtFdbndqklVRaoI1BpN2tEaXVdryql2JGKzTKiEgvdasXHchqNDi01XAz/vpiK0tOHW0YTbYUpC6/1ULj9TuH0XlWZ93riOuhjotsz/rmf09pWkjpKkuvI/4sWYoSRIG+K/ks9PsgV4ucEcBYgjXV2ekCR8hoiq7a+uoeGZX+RN3PQ1BsdiwXB2+wG+h629rFR7SKDaRPSLj4VIm7n2ptsuG2voPKRIu7Zt9N9apHtbiXRr7VirASVHVgtAc4cFoDZNekclypZnWK5p9Tp9y+v1up1y73nRQMbWBWHdz3LP90ASbav14HuW6L4m9spsHotE95Us3d18Kkm2mS5KSZziik76lGXBy+XNLpTTq8O5Y6rKadkts3Rv27JlZ2uFE8VkrWTeX4z+nGS0DLSeWILDTYp3jyJ/Bqsf2xRrFXP4Bb6+3fy2tegdUuc6pqenct29pVFjkfryDulhtzDLWXskCnbarCtd75WadaoUlpqqBelBi0qzWDRINwzZanTkOObmkTVv8Pq1G+CgGMNuRVSl53csonZXV0R7RyWitrobIasPMMoCRGF4WY807b+PnD+OS3idXh347fuHrdrbt8qWu4+5WpzU1RcE81QocLTwHcMPIiMoUsJEPtI8+obPWqRZRlNK7+kLoqskejut3UWCeg1msh3L6PYrn54qsf2WbO3thYOjrpTeTGK1Oea4ikSQ/EaSX7t1qwiZfeC9W6ft9dO71TSn/D3YS3hz7KPSNEct3+/vlDyVciS2/FLOEnwYSWpskXS7ai3YOSjB2WqwcEDEm+9cjEwRuqaGfGTineJdhrOW3c/2AjApnO6/BNxBkpqVXrfz1pWes91Lx73KkPZ+UTkP31qHyiw26zFt2fEacGiWiPtWHXWNXvwuIIwpETNmDbPhuZhhAcvG+RWrJj3Wm2x99Vt+QXLYrS9XXdAVu4YDCCehIpztbHefRVH+a07dX22sc/efoLy+/daU5+pswh+I8vRXQt3joDyZVbeW015ztaxLgHU3/eZbnT3Tn6uuULYGwoF/z+lo7wYdF16AHes00GuuO/V3Qxui2bP0ULP1bqjTYK5yS2Gvm5vu/6sQ1IVzKa67KwTXEJK3GVu6KLWd14H0ZRjB6eovj4rmqz/gci7+BQ== \ No newline at end of file diff --git a/docs/configurator_diagram.svg b/docs/configurator_diagram.svg new file mode 100644 index 000000000000..bcf0bf76d1ec --- /dev/null +++ b/docs/configurator_diagram.svg @@ -0,0 +1,3 @@ + + +
Clients Supported:
Chrome, Firefox
Desktop Only
Clients Supported:...
https://config.qmk.fm
Single Page Site
JavaScript/VUE
Source: qmk/qmk_configurator
Host: Github Pages
https://config.qmk.fm...
https://keyboards.qmk.fm
Keyboard Metadata
Source: qmk/qmk_firmware
GH Action: Update API Data
Host: DigitalOcean Spaces
https://keyboards.qmk.fm...
QMK API
QMK API
https://api.qmk.fm
RESTful API
Source: qmk/qmk_api
Host: Rancher on DO VM's
https://api.qmk.fm...
Digital Ocean
Spaces
(S3)
Digital Ocean...
https://qmk-api.nyc3.cdn.digitaloceanspaces.com
Space: qmk-api
Host: Digital Ocean
https://qmk-api.nyc3.cdn.digitaloceanspaces.com...
RQ
RQ
Redis / RQ
Job Queue
Source: qmk/qmk_redis
Host: Rancher on DO VM's
Redis / RQ...
qmk_complier
qmk_complier
QMK Compiler
Job Runners
Source: qmk/qmk_compiler
Host: Rancher on DO VM's
QMK Compiler...
Viewer does not support full SVG 1.1
\ No newline at end of file From ed84a4e7e3e65d1ef090117cdb9c6d70ed554a28 Mon Sep 17 00:00:00 2001 From: Zach White Date: Tue, 10 Aug 2021 07:48:22 -0700 Subject: [PATCH 200/328] Improve the qmk lint readme check (#13941) * improve lint readme check * improve if --- lib/python/qmk/cli/lint.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index a164dba63244..02b31fbc41fe 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -4,7 +4,7 @@ from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.info import info_json -from qmk.keyboard import keyboard_completer +from qmk.keyboard import find_readme, keyboard_completer from qmk.keymap import locate_keymap from qmk.path import is_keyboard, keyboard @@ -31,7 +31,8 @@ def lint(cli): ok = True keyboard_path = keyboard(cli.config.lint.keyboard) keyboard_info = info_json(cli.config.lint.keyboard) - readme_path = keyboard_path / 'readme.md' + readme_path = find_readme(cli.config.lint.keyboard) + missing_readme_path = keyboard_path / 'readme.md' # Check for errors in the info.json if keyboard_info['parse_errors']: @@ -43,9 +44,9 @@ def lint(cli): cli.log.error('Warnings found when generating info.json (Strict mode enabled.)') # Check for a readme.md and warn if it doesn't exist - if not readme_path.exists(): + if not readme_path: ok = False - cli.log.error('Missing %s', readme_path) + cli.log.error('Missing %s', missing_readme_path) # Keymap specific checks if cli.config.lint.keymap: From 817fcfdc9a146f949e1edeba088866eff8cbcde2 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Tue, 10 Aug 2021 19:56:08 -0400 Subject: [PATCH 201/328] Fix shell port bug in computation of QMK_FIRMWARE_DIR (#13950) Previous code would fail if cd echoes the tathet directory to stdout, which is pretty common. Redirecting its output to /dev/null solves the problem. --- util/qmk_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/qmk_install.sh b/util/qmk_install.sh index 06eb4f022842..5f22ba0ad5ad 100755 --- a/util/qmk_install.sh +++ b/util/qmk_install.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -QMK_FIRMWARE_DIR=$(cd -P -- "$(dirname -- "$0")/.." && pwd -P) +QMK_FIRMWARE_DIR=$(cd -P -- "$(dirname -- "$0")/.." >/dev/null && pwd -P) QMK_FIRMWARE_UTIL_DIR=$QMK_FIRMWARE_DIR/util if [ "$1" = "-y" ]; then SKIP_PROMPT='-y' From 8d4fcd678a083f3c6694b86b654ffe65b537929b Mon Sep 17 00:00:00 2001 From: Ananya Kirti Date: Wed, 11 Aug 2021 06:00:56 +0530 Subject: [PATCH 202/328] Hp69 - Update led logic (#13940) Co-authored-by: zvecr --- keyboards/hp69/keymaps/via/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/hp69/keymaps/via/keymap.c b/keyboards/hp69/keymaps/via/keymap.c index d72bdbf0b131..a4743af6237b 100644 --- a/keyboards/hp69/keymaps/via/keymap.c +++ b/keyboards/hp69/keymaps/via/keymap.c @@ -54,6 +54,6 @@ void matrix_scan_user(void) { } bool led_update_user(led_t led_state) { - writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); + writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock); return false; }; From 04b92866054bd27abc424ea19c9a4d82456d4068 Mon Sep 17 00:00:00 2001 From: jpuerto96 Date: Tue, 10 Aug 2021 22:09:59 -0400 Subject: [PATCH 203/328] [Keyboard] Gorthage Truck - Rotary Encoder Switch Position (#13942) Co-authored-by: Ryan --- keyboards/gorthage_truck/gorthage_truck.h | 12 ++++++------ keyboards/gorthage_truck/info.json | 8 ++++---- keyboards/gorthage_truck/keymaps/10u/keymap.c | 5 ++--- keyboards/gorthage_truck/keymaps/7u/keymap.c | 5 ++--- keyboards/gorthage_truck/keymaps/default/keymap.c | 5 ++--- 5 files changed, 16 insertions(+), 19 deletions(-) diff --git a/keyboards/gorthage_truck/gorthage_truck.h b/keyboards/gorthage_truck/gorthage_truck.h index 2b9c3b9834aa..9d9ddb4f077c 100644 --- a/keyboards/gorthage_truck/gorthage_truck.h +++ b/keyboards/gorthage_truck/gorthage_truck.h @@ -27,7 +27,7 @@ * represents the switch matrix. */ #define LAYOUT_3u( \ - k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k46, k47, k48, \ + k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k45, k46, k47, k48, \ k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \ k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \ k30, k31, k32, k34, k70, k71, k73, k74, k75, k76, k77, k78 \ @@ -36,14 +36,14 @@ { k10, k11, k12, k13, k14, k15, k16, k17 }, \ { k20, k21, k22, k23, k24, k25, k26, k27 }, \ { k30, k31, k32, KC_NO, k34, KC_NO, KC_NO, KC_NO }, \ - { k40, k41, k42, k43, k44, KC_NO, k46, k47, k48 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ { k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \ { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ { k70, k71, KC_NO, k73, k74, k75, k76, k77, k78} \ } #define LAYOUT_7u( \ - k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k46, k47, k48, \ + k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k45, k46, k47, k48, \ k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \ k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \ k30, k31, k32, k37, k73, k74, k75, k76, k77, k78 \ @@ -52,14 +52,14 @@ { k10, k11, k12, k13, k14, k15, k16, k17 }, \ { k20, k21, k22, k23, k24, k25, k26, k27 }, \ { k30, k31, k32, KC_NO, KC_NO, KC_NO, KC_NO, k37 }, \ - { k40, k41, k42, k43, k44, KC_NO, k46, k47, k48 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ { k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \ { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ { KC_NO, KC_NO, KC_NO, k73, k74, k75, k76, k77, k78} \ } #define LAYOUT_10u( \ - k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k46, k47, k48, \ + k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k45, k46, k47, k48, \ k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \ k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \ k30, k36, k73, k74, k75, k76, k77, k78 \ @@ -68,7 +68,7 @@ { k10, k11, k12, k13, k14, k15, k16, k17 }, \ { k20, k21, k22, k23, k24, k25, k26, k27 }, \ { k30, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k36, KC_NO }, \ - { k40, k41, k42, k43, k44, KC_NO, k46, k47, k48 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ { k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \ { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ { KC_NO, KC_NO, KC_NO, k73, k74, k75, k76, k77, k78} \ diff --git a/keyboards/gorthage_truck/info.json b/keyboards/gorthage_truck/info.json index 25afcc76eeed..840832b6d817 100644 --- a/keyboards/gorthage_truck/info.json +++ b/keyboards/gorthage_truck/info.json @@ -7,10 +7,10 @@ "layouts": { "LAYOUT_3u": { "layout": [ - {"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, + {"label": "KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, {"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1}, {"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2}, - {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, + {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, {"label":"KC_MPLY", "x":13.5, "y":0.5}, {"label":"KC_LCTL", "x":0, "y":3, "w":1.25}, {"label":"KC_LALT", "x":1.25, "y":3, "w":1.25}, {"label":"KC_LGUI", "x":2.5, "y":3}, {"label":"KC_SPC", "x":3.5, "y":3, "w":3}, {"label":"KC_ENT", "x":6.5, "y":3, "w":3}, {"label":"KC_RGUI", "x":9.5, "y":3, "w":1.25}, {"label":"KC_RALT", "x":10.75, "y":3, "w":1.25} ] }, @@ -19,7 +19,7 @@ {"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, {"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1}, {"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2}, - {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, + {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, {"label":"KC_MPLY", "x":13.5, "y":0.5}, {"label":"KC_LCTL", "x":0, "y":3, "w":1.25}, {"label":"KC_LALT", "x":1.25, "y":3, "w":1.25}, {"label":"KC_LGUI", "x":2.5, "y":3, "w":1.25}, {"label":"KC_SPC", "x":3.75, "y":3, "w":7}, {"label":"KC_RGUI", "x":10.75, "y":3, "w":1.25} ] }, @@ -28,7 +28,7 @@ {"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, {"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1}, {"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2}, - {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, + {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, {"label":"KC_MPLY", "x":13.5, "y":0.5}, {"label":"KC_LCTL", "x":0, "y":3}, {"label":"KC_SPC", "x":1, "y":3, "w":10}, {"label":"KC_RGUI", "x":11, "y":3} ] } diff --git a/keyboards/gorthage_truck/keymaps/10u/keymap.c b/keyboards/gorthage_truck/keymaps/10u/keymap.c index 01c6c3d7b31c..89e628defa36 100644 --- a/keyboards/gorthage_truck/keymaps/10u/keymap.c +++ b/keyboards/gorthage_truck/keymaps/10u/keymap.c @@ -17,14 +17,13 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - _BASE, - _FN + _BASE }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT_10u( -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_MINUS, KC_1, KC_2, KC_3, +KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_MINUS, KC_MPLY, KC_1, KC_2, KC_3, 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_EQUAL, KC_4, KC_5, KC_6, KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9, KC_LGUI, KC_RSFT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0 diff --git a/keyboards/gorthage_truck/keymaps/7u/keymap.c b/keyboards/gorthage_truck/keymaps/7u/keymap.c index 45289d2d8c3d..224580c30b94 100644 --- a/keyboards/gorthage_truck/keymaps/7u/keymap.c +++ b/keyboards/gorthage_truck/keymaps/7u/keymap.c @@ -17,14 +17,13 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - _BASE, - _FN + _BASE }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT_7u( -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_MINUS, KC_1, KC_2, KC_3, +KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_MINUS, KC_MPLY, KC_1, KC_2, KC_3, 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_EQUAL, KC_4, KC_5, KC_6, KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9, KC_LGUI, KC_LCTL, KC_LSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0 diff --git a/keyboards/gorthage_truck/keymaps/default/keymap.c b/keyboards/gorthage_truck/keymaps/default/keymap.c index 877540276a4a..c1cb087b8612 100644 --- a/keyboards/gorthage_truck/keymaps/default/keymap.c +++ b/keyboards/gorthage_truck/keymaps/default/keymap.c @@ -17,14 +17,13 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - _BASE, - _FN + _BASE }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT_3u( -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_MINUS, KC_1, KC_2, KC_3, +KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_MINUS, KC_MPLY, KC_1, KC_2, KC_3, KC_SLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_EQUAL, KC_4, KC_5, KC_6, KC_NLCK, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9, KC_CLCK, KC_LCTL, KC_LSFT, KC_SPC, KC_RSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0 From 83a1c4763a5b1bda577d26892479462bd1457a6e Mon Sep 17 00:00:00 2001 From: Fernando Rodrigues Date: Tue, 10 Aug 2021 23:11:19 -0300 Subject: [PATCH 204/328] [Keyboard] Added split plus layout to Cospad (#13938) --- keyboards/cospad/cospad.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/keyboards/cospad/cospad.h b/keyboards/cospad/cospad.h index f5ae8961f1d5..1e3b6c42760d 100644 --- a/keyboards/cospad/cospad.h +++ b/keyboards/cospad/cospad.h @@ -125,6 +125,37 @@ { k50, ___, k52, ___ } \ } +/* 6x4 numpad layout with split Plus + * ,-------------------. + * | 00 | 01 | 02 | 03 | + * |----|----|----|----| + * | 10 | 11 | 12 | 13 | + * |----|----|----|----| + * | 20 | 21 | 22 | 23 | + * |----|----|----|----| + * | 30 | 31 | 32 | 33 | + * |----|----|----|----| + * | 40 | 41 | 42 | | + * |----|----|----| 43 | + * | 50 | 52 | | + * `-------------------' + */ +#define LAYOUT_numpad_6x4_split_plus( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, k33, \ + k40, k41, k42, \ + k50, k52, k43 \ +) \ +{ \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, k23 }, \ + { k30, k31, k32, k33 }, \ + { k40, k41, k42, k43 }, \ + { k50, ___, k52, ___ } \ +} /* 6x4 numpad with split Plus and 0 keys * ,-------------------. From af3627db255752fdb49d2461d2c1fa3ae136d4cc Mon Sep 17 00:00:00 2001 From: Kyle Xiao <56144092+txkyel@users.noreply.github.com> Date: Wed, 11 Aug 2021 03:19:19 -0400 Subject: [PATCH 205/328] [Userspace] Add custom tap dancing function (#13963) --- users/txkyel/config.h | 18 ++++ users/txkyel/readme.md | 20 +++++ users/txkyel/rules.mk | 5 ++ users/txkyel/tap_dance.c | 51 +++++++++++ users/txkyel/tap_dance.h | 33 ++++++++ users/txkyel/tap_dance.md | 173 ++++++++++++++++++++++++++++++++++++++ users/txkyel/txkyel.c | 56 ++++++++++++ users/txkyel/txkyel.h | 58 +++++++++++++ 8 files changed, 414 insertions(+) create mode 100644 users/txkyel/config.h create mode 100644 users/txkyel/readme.md create mode 100644 users/txkyel/rules.mk create mode 100644 users/txkyel/tap_dance.c create mode 100644 users/txkyel/tap_dance.h create mode 100644 users/txkyel/tap_dance.md create mode 100644 users/txkyel/txkyel.c create mode 100644 users/txkyel/txkyel.h diff --git a/users/txkyel/config.h b/users/txkyel/config.h new file mode 100644 index 000000000000..beb0a287a97c --- /dev/null +++ b/users/txkyel/config.h @@ -0,0 +1,18 @@ +/* Copyright 2021 Kyle Xiao + * + * 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_TERM 200 diff --git a/users/txkyel/readme.md b/users/txkyel/readme.md new file mode 100644 index 000000000000..6f86fe28f862 --- /dev/null +++ b/users/txkyel/readme.md @@ -0,0 +1,20 @@ +# txkyel's Userspace + +Read up on my implementation of tap dancing journey in learning QMK thus far in [tap_dance.md](tap_dance.md). + +## Licensing + +Copyright 2021 Kyle Xiao kylexiao20@gmail.com @txkyel + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/users/txkyel/rules.mk b/users/txkyel/rules.mk new file mode 100644 index 000000000000..f7b729c83c26 --- /dev/null +++ b/users/txkyel/rules.mk @@ -0,0 +1,5 @@ +SRC += txkyel.c + +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + SRC += tap_dance.c +endif diff --git a/users/txkyel/tap_dance.c b/users/txkyel/tap_dance.c new file mode 100644 index 000000000000..9c1d27e8d80c --- /dev/null +++ b/users/txkyel/tap_dance.c @@ -0,0 +1,51 @@ +/* Copyright 2021 Kyle Xiao + * + * 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 "tap_dance.h" + +#ifdef TAP_DANCE_ENABLE +void qk_tap_dance_tap_hold_on_each_tap(qk_tap_dance_state_t *state, void *user_data) { + qk_tap_dance_tap_hold_t *kc = (qk_tap_dance_tap_hold_t *)user_data; + + // second tap within term, pseudo reset tap dance + if (state->count == 2) { + tap_code16(kc->t); + state->count = 1; + state->timer = timer_read(); + } +} + +void qk_tap_dance_tap_hold_on_finish(qk_tap_dance_state_t *state, void *user_data) { + qk_tap_dance_tap_hold_t *kc = (qk_tap_dance_tap_hold_t *)user_data; + + kc->tapped = state->interrupted || !state->pressed; + if (kc->tapped) { + register_code16(kc->t); + } else { + register_code16(kc->h); + } +} + +void qk_tap_dance_tap_hold_on_reset(qk_tap_dance_state_t *state, void *user_data) { + qk_tap_dance_tap_hold_t *kc = (qk_tap_dance_tap_hold_t *)user_data; + + if (kc->tapped) { + unregister_code16(kc->t); + } else { + unregister_code16(kc->h); + } + kc->tapped = true; +} +#endif diff --git a/users/txkyel/tap_dance.h b/users/txkyel/tap_dance.h new file mode 100644 index 000000000000..af56a9863b6e --- /dev/null +++ b/users/txkyel/tap_dance.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Kyle Xiao + * + * 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 "txkyel.h" + +#ifdef TAP_DANCE_ENABLE +typedef struct { + uint16_t t; + uint16_t h; + bool tapped; +} qk_tap_dance_tap_hold_t; + +# define ACTION_TAP_HOLD(t, h) \ + { .fn = {qk_tap_dance_tap_hold_on_each_tap, qk_tap_dance_tap_hold_on_finish, qk_tap_dance_tap_hold_on_reset}, .user_data = (void *)&((qk_tap_dance_tap_hold_t){t, h, true}), } +# define ACTION_TAP_HOLD_CTL(t) ACTION_TAP_HOLD(t, C(t)) + +void qk_tap_dance_tap_hold_on_each_tap(qk_tap_dance_state_t *state, void *user_data); +void qk_tap_dance_tap_hold_on_finish(qk_tap_dance_state_t *state, void *user_data); +void qk_tap_dance_tap_hold_on_reset(qk_tap_dance_state_t *state, void *user_data); +#endif diff --git a/users/txkyel/tap_dance.md b/users/txkyel/tap_dance.md new file mode 100644 index 000000000000..e36001f129f1 --- /dev/null +++ b/users/txkyel/tap_dance.md @@ -0,0 +1,173 @@ +# Tap Hold Custom Tap Dance + +This custom tap dance functions similarly to the single tap and hold functionality of '[Quad Function Tap-Dance](https://docs.qmk.fm/#/feature_tap_dance?id=example-4)' by [DanielGGordon](https://github.com/danielggordon) with a reduced size per tap dance declared. + +## Motivation + +I first discovered tap dancing through [Ben Vallack](https://www.youtube.com/c/BenVallack) and was interested in the functionality of tap dancing demonstrated in his [tap dancing video](https://www.youtube.com/watch?v=pTMbzmf2sz8). And so I set off to implement my own tap dances emulating this functionality. + +## Custom Tap Dance Action + +Similar to the the action definitions in [`process_tap_dance.h`](../../quantum/process_keycode/process_tap_dance.h); I have created a custom macro and data structure used to declare tap dance actions: + +```c +typedef struct { + uint16_t t; + uint16_t h; + bool tapped; +} qk_tap_dance_tap_hold_t; + +#define ACTION_TAP_HOLD(t, h) \ + { .fn = {qk_tap_dance_tap_hold_on_each_tap, qk_tap_dance_tap_hold_on_finish, qk_tap_dance_tap_hold_on_reset}, .user_data = (void *)&((qk_tap_dance_tap_hold_t){t, h, true}), } +``` + +This allows the user to set the keycode registered when tapping `t`, the keycode registered when holding `h`, as well as prepares a boolean storing logic allowing the the reset function to determine whether a tap or hold was registered `tapped`. + +## Custom Tap Dance Functions + +The three handlers backing Tap Hold are really simple. + +The `on_each_tap` handler triggers a tap if a second tap is made within the tapping term. Following that it performs a pseudo reset, setting the count back to 1 and resetting the timer. + +```c +void qk_tap_dance_tap_hold_on_each_tap(qk_tap_dance_state_t *state, void *user_data) { + qk_tap_dance_tap_hold_t *kc = (qk_tap_dance_tap_hold_t *)user_data; + + if (state->count == 2) { + tap_code16(kc->t); + state->count = 1; + state->timer = timer_read(); + } +} +``` + +The `on_finished` handler determines whether the dance was a tap or a hold, saving the result in `kc->tapped` for `on_reset` later. After, the handler registers the respctive keycode. + +```c +void qk_tap_dance_tap_hold_on_finish(qk_tap_dance_state_t *state, void *user_data) { + qk_tap_dance_tap_hold_t *kc = (qk_tap_dance_tap_hold_t *)user_data; + + kc->tapped = state->interrupted || !state->pressed; + if (kc->tapped) { + register_code16(kc->t); + } else { + register_code16(kc->h); + } +} +``` + +Finally, the `on_reset` handler unregisters the corresponding keycode, and resets `kc->tapped` for subsequent tap dances. + +```c +void qk_tap_dance_tap_hold_on_reset(qk_tap_dance_state_t *state, void *user_data) { + qk_tap_dance_tap_hold_t *kc = (qk_tap_dance_tap_hold_t *)user_data; + + if (kc->tapped) { + unregister_code16(kc->t); + } else { + unregister_code16(kc->h); + } + kc->tapped = true; +} +``` + +## Tap: keycode; Hold: control + keycode (or any modifier + keycode) + +The macro `ACTION_TAP_HOLD` allows a user to select the keycode for both the tap and hold action of the tap dance. It goes without saying that you can also send keycodes with modifiers so instead of having to write out `ACTION_TAP_HOLD(kc, C(kc))` for each keycode, we can use more macros: + +```c +#define ACTION_TAP_HOLD_CTL(t) ACTION_TAP_HOLD(t, LCTL(t)) +``` + +Macros are rock. + +# The Journey to Lower Sized Tap Dancing + +As I said earlier, I had set out to create my own tap dancing functions with little knowledge of how QMK works. Just as a bonus, I thought I'd share my journey through making my own custom tap dance. + +## Research + +When looking through the [tap dance documentation](https://beta.docs.qmk.fm/using-qmk/software-features/feature_tap_dance), it was apparent to me that [complex example 4](https://docs.qmk.fm/#/feature_tap_dance?id=example-4) by [DanielGGordon](https://github.com/danielggordon), had the functionality I so desired, I would have to do at least three things. + +However, in order to make all the tap dances for at least all of the alpha keys I would have to do the following three things: + +1. Write a `on_dance_finished` function +2. Write a `on_reset` function +3. And create a static struct instance storing a `boolean` and `td_state_t` + +The most outrageous part was that I would have to repeat these three steps for **each and every tap dance!** + +Unable to see how I could reduce the number of functions and data structures. I decided to follow through with making functions for each keycode. + +## Naive Implementation 1: Macros with `ACTION_TAP_DANCE_FN_ADVANCED` + +For my initial implementation, I set out to make use of macros to reduce the amount of apparent duplicate code in my keymap files. + +Copying the functions by DanielGGordon, reducing its functionality to single tap and single hold, and converting them into macros, I was able to create all the necessary functions for each tap dance without having to write out the same functions dozens of times. + +My issues with this implementation were that, when compiling, this was no different from me writing the same function dozens of time. This meant that the resulting firmware was **HUGE** decreasing the amount of additional features the user is able to enable. + +## Naive Implementation 2: Custom Quantum Keycode + +Searching for another solution I searched through the files in the qmk repository and stumbled across the implementation of several quantum keycode processing files in [`process_keycode`](../../quantum/process_keycode), namely the files [`process_unicode.h`](../../quantum/process_keycode/process_unicode.h), [`process_unicode.c`](../../quantum/process_keycode/process_unicode.c), and [`process_unicode_common.h`](../../quantum/process_keycode/process_unicode_common.h). + +And so I set off to implement my own **custom quantum keycodes** overriding Unicode keycode ranges and [implementing `process_record_user()`](https://docs.qmk.fm/#/custom_quantum_functions?id=custom-keycodes). + +Upon initial testing with a single key, it appeared functional save for the fact that keys would only register when releasing the key. Additionally it saved plenty of space due to reuse of functions when processing input. + +I was really proud of my implementation and had even shown it off to several of my friends. + +Unfortunately, when testing it out on all alpha, everything started to come apart. Because keystrokes would only register when releasing the switch, faster typists would actually actuate some keystrokes in the incorrect order; particularly with space appearing before the final letter of most words. + +## Current Implementation: Custom Tap Dance Actions + +Upset that I would have to go back to naive implementation 1, I went back to digging for answers. Maybe there was something I was missing, some extra details on how tap dancing gets processed. + +Looking again in [`process_keycode`](../../quantum/process_keycode), I found [`process_tap_dance.h`](../../quantum/process_keycode/process_tap_dance.h) and [`process_tap_dance.c`](../../quantum/process_keycode/process_tap_dance.c). And in those files, I found the miracle working struct `qk_tap_dance_action_t`. + +Looking more closely, each tap dance action a user defines constructs a `qk_tap_dance_action_t` with the following: + +- Three handler functions + - An `on_each_tap` function that runs when the tap dance key is pressed within the `TAPPING_TERM` + - An `on_dance_finished` function that runs when the `TAPPING_TERM` is complete + - An `on_reset` function that runs after finishing the dance +- A `custom_tapping_term` for the tap dance action +- Last but not least, the my saving grace: `void *user_data`. A user defined struct that gets passed to each of the handler functions. + +With this discovery, I set out to implement my own custom tap dance action in my [personal userspace](.) as seen [`tap_dance.c`](tap_dance.c) and [`tap_dance.h`](tap_dance.h) which I named ACTION_TAP_HOLD. + +## Updates and Thoughts + +### 08/08/2021 + +Initially, I thought of allowing the user to hold the hold tap dance action (`KC_LCTL` + `KC_`). Unfortunately, I ran into several issues (likely due to my lack of understanding on the runtime flow) causing control to be held indefinitely until the computer is restarted. This is why, I had handler functions perform `tap_code16` opposed to `register_code16` and `unregister_code16`. + +When handling a double tap within the `TAPPING_TERM`, the tap keycode gets sent with `tap_code16`, the status timer gets reset, and the counter gets set back to 1 in case the user wishes to tap again or to hold the second tap. + +### 09/08/2021 + +Generalized tap and hold `user_data` struct to store two keycodes; one for the tap action, the other for the hold action. + +This way the user can define the tap and hold functionality separately. + +### 09/08/2021 + +Reworked utilizing, `register_code16` and `unregister_code16`. The issues previously experienced were due to my ignorance of the runtime flow for tap dancing. + +Previously in both the `on_dance_finished` and `on_reset` functions, I checked if the key was being tapped or held using this statement: + +``` +state->interrupted || !state->pressed +``` + +In the case of a hold, when accessing the `on_dance_finished` function, `state->interrupted` would be false and `state->pressed` would be true making the above statement false making the statement work as intended. + +However, when it comes to `on_reset` the statement no longer works. + +In the runtime flow for tap dancing, `on_reset` gets called in the function [`reset_tap_dance`](../../quantum/process_keycode/process_tap_dance.c#L186). In order for the `on_reset` function to be called, **state->pressed must be false**. + +This means that the above statement is no longer reliable in determining if a key has been held in this function. In fact, the function will always act as though a tap occured, meaning the hold reset will never be reached. + +There were signs of this in [complex examples](https://docs.qmk.fm/#/feature_tap_dance?id=complex-examples) that I hadn't taken into mind when designing this custom tap dance action (mainly through the static variables used to store the state instead of using `state` in both functions). + +As such, the fix was as simple as adding a boolean to the `user_data` struct that stores the state of the tap dance, thus allowing us to now be able to properly hold the hold key without any worry of the hold action of a key being stuck on. diff --git a/users/txkyel/txkyel.c b/users/txkyel/txkyel.c new file mode 100644 index 000000000000..b01a71bb817b --- /dev/null +++ b/users/txkyel/txkyel.c @@ -0,0 +1,56 @@ +/* Copyright 2021 Kyle Xiao + * + * 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 "txkyel.h" + +#ifdef TAP_DANCE_ENABLE +// Default Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [HC_A] = ACTION_TAP_HOLD_CTL(KC_A), + [HC_B] = ACTION_TAP_HOLD_CTL(KC_B), + [HC_C] = ACTION_TAP_HOLD_CTL(KC_C), + [HC_D] = ACTION_TAP_HOLD_CTL(KC_D), + [HC_E] = ACTION_TAP_HOLD_CTL(KC_E), + [HC_F] = ACTION_TAP_HOLD_CTL(KC_F), + [HC_G] = ACTION_TAP_HOLD_CTL(KC_G), + [HC_H] = ACTION_TAP_HOLD_CTL(KC_H), + [HC_I] = ACTION_TAP_HOLD_CTL(KC_I), + [HC_J] = ACTION_TAP_HOLD_CTL(KC_J), + [HC_K] = ACTION_TAP_HOLD_CTL(KC_K), + [HC_L] = ACTION_TAP_HOLD_CTL(KC_L), + [HC_M] = ACTION_TAP_HOLD_CTL(KC_M), + [HC_N] = ACTION_TAP_HOLD_CTL(KC_N), + [HC_O] = ACTION_TAP_HOLD_CTL(KC_O), + [HC_P] = ACTION_TAP_HOLD_CTL(KC_P), + [HC_Q] = ACTION_TAP_HOLD_CTL(KC_Q), + [HC_R] = ACTION_TAP_HOLD_CTL(KC_R), + [HC_S] = ACTION_TAP_HOLD_CTL(KC_S), + [HC_T] = ACTION_TAP_HOLD_CTL(KC_T), + [HC_U] = ACTION_TAP_HOLD_CTL(KC_U), + [HC_V] = ACTION_TAP_HOLD_CTL(KC_V), + [HC_W] = ACTION_TAP_HOLD_CTL(KC_W), + [HC_X] = ACTION_TAP_HOLD_CTL(KC_X), + [HC_Y] = ACTION_TAP_HOLD_CTL(KC_Y), + [HC_Z] = ACTION_TAP_HOLD_CTL(KC_Z), + [HC_BSPC] = ACTION_TAP_HOLD_CTL(KC_BSPC), + [HC_DEL] = ACTION_TAP_HOLD_CTL(KC_DEL), + [HC_LEFT] = ACTION_TAP_HOLD_CTL(KC_LEFT), + [HC_RGHT] = ACTION_TAP_HOLD_CTL(KC_RGHT), + [TH_ESC_TAB] = ACTION_TAP_HOLD(KC_TAB, KC_ESC), + [TH_HOME_BSLS] = ACTION_TAP_HOLD(KC_BSLASH, KC_HOME), + [TH_HOME_BSLS] = ACTION_TAP_HOLD(KC_PIPE, KC_END), + [TH_QUOT_GRV] = ACTION_TAP_HOLD(KC_QUOT, KC_GRV), +}; +#endif diff --git a/users/txkyel/txkyel.h b/users/txkyel/txkyel.h new file mode 100644 index 000000000000..0b725961a496 --- /dev/null +++ b/users/txkyel/txkyel.h @@ -0,0 +1,58 @@ +/* Copyright 2021 Kyle Xiao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once +#include "quantum.h" +#include "tap_dance.h" + +#ifdef TAP_DANCE_ENABLE +// Tap Dance declarations for use in keymaps +enum hold_ctl_enum { + HC_A = 1, + HC_B, + HC_C, + HC_D, + HC_E, + HC_F, + HC_G, + HC_H, + HC_I, + HC_J, + HC_K, + HC_L, + HC_M, + HC_N, + HC_O, + HC_P, + HC_Q, + HC_R, + HC_S, + HC_T, + HC_U, + HC_V, + HC_W, + HC_X, + HC_Y, + HC_Z, + HC_BSPC, + HC_DEL, + HC_LEFT, + HC_RGHT, + TH_ESC_TAB, + TH_HOME_BSLS, + TH_END_PIPE, + TH_QUOT_GRV, +}; +#endif From 3161f10b1f4c95fdf857b6f3ce9572cf6fdcf7f1 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 11 Aug 2021 00:19:55 -0700 Subject: [PATCH 206/328] Update USB Device strings for VIA identification (#13962) --- keyboards/handwired/3dp660/config.h | 8 ++++---- keyboards/rpiguy9907/southpaw66/config.h | 4 ++-- keyboards/yatara/drink_me/config.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/keyboards/handwired/3dp660/config.h b/keyboards/handwired/3dp660/config.h index e719cf2c255d..60ab13deaacd 100644 --- a/keyboards/handwired/3dp660/config.h +++ b/keyboards/handwired/3dp660/config.h @@ -19,11 +19,11 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6075 +#define VENDOR_ID 0x676F // "go" - gooberpsycho +#define PRODUCT_ID 0x3660 // "3" "660" #define DEVICE_VER 0x0001 -#define MANUFACTURER Handwired -#define PRODUCT 3dp660 +#define MANUFACTURER gooberpsycho +#define PRODUCT 3dp660 Handwired #define TAPPING_TERM 400 diff --git a/keyboards/rpiguy9907/southpaw66/config.h b/keyboards/rpiguy9907/southpaw66/config.h index 242b4a7c449b..b5cef39a6f18 100644 --- a/keyboards/rpiguy9907/southpaw66/config.h +++ b/keyboards/rpiguy9907/southpaw66/config.h @@ -18,8 +18,8 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6077 +#define VENDOR_ID 0x9907 // "9907" - rpiguy9907 +#define PRODUCT_ID 0x5366 // "S" "66" #define DEVICE_VER 0x0001 #define MANUFACTURER rpiguy9907 #define PRODUCT Southpaw66 diff --git a/keyboards/yatara/drink_me/config.h b/keyboards/yatara/drink_me/config.h index ab066761fdd1..10573092c9be 100644 --- a/keyboards/yatara/drink_me/config.h +++ b/keyboards/yatara/drink_me/config.h @@ -19,7 +19,7 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0x5961 // "Ya" - Yatara #define PRODUCT_ID 0x1470 #define DEVICE_VER 0x0001 #define MANUFACTURER Yatara From 71ce2b0d79eb3c09c056d91c787e9c793f645b37 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 11 Aug 2021 00:20:10 -0700 Subject: [PATCH 207/328] Poker87C and Poker87D Refactor (#13961) --- keyboards/poker87c/config.h | 8 +- keyboards/poker87c/info.json | 110 ++++++++++++++++++- keyboards/poker87c/keymaps/default/keymap.c | 28 ++--- keyboards/poker87c/keymaps/via/keymap.c | 56 +++++----- keyboards/poker87c/poker87c.h | 20 +++- keyboards/poker87c/rules.mk | 11 +- keyboards/poker87d/config.h | 8 +- keyboards/poker87d/info.json | 113 +++++++++++++++++++- keyboards/poker87d/keymaps/default/keymap.c | 30 +++--- keyboards/poker87d/keymaps/via/keymap.c | 62 +++++------ keyboards/poker87d/poker87d.h | 23 +++- keyboards/poker87d/rules.mk | 11 +- 12 files changed, 360 insertions(+), 120 deletions(-) diff --git a/keyboards/poker87c/config.h b/keyboards/poker87c/config.h index 9c4608aee553..e01df80ec7ad 100644 --- a/keyboards/poker87c/config.h +++ b/keyboards/poker87c/config.h @@ -19,11 +19,11 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x6D66 // "mf" - mfkiiyd +#define PRODUCT_ID 0x087C // "87C" #define DEVICE_VER 0x0001 -#define MANUFACTURER Hotswap -#define PRODUCT POKER-87 +#define MANUFACTURER mfkiiyd +#define PRODUCT POKER-87C Hotswap /* key matrix size */ #define MATRIX_ROWS 6 diff --git a/keyboards/poker87c/info.json b/keyboards/poker87c/info.json index a620daf54af2..ff68cfaa1cee 100644 --- a/keyboards/poker87c/info.json +++ b/keyboards/poker87c/info.json @@ -1,11 +1,14 @@ { - "keyboard_name": "POKER-87", + "keyboard_name": "POKER-87C", "url": "", - "maintainer": "qmk", + "maintainer": "mfkiiyd", "width": 18.25, "height": 6.5, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"label":"K00 (E6,D1)", "x":0, "y":0}, {"label":"K01 (E6,D0)", "x":2, "y":0}, @@ -23,6 +26,7 @@ {"label":"K0D (E6,B4)", "x":15.25, "y":0}, {"label":"K0E (E6,B0)", "x":16.25, "y":0}, {"label":"K3D (F0,B4)", "x":17.25, "y":0}, + {"label":"K10 (B7,D1)", "x":0, "y":1.5}, {"label":"K11 (B7,D0)", "x":1, "y":1.5}, {"label":"K12 (B7,F7)", "x":2, "y":1.5}, @@ -41,6 +45,7 @@ {"label":"K5B (D7,F4)", "x":15.25, "y":1.5}, {"label":"K5C (D7,F1)", "x":16.25, "y":1.5}, {"label":"K3E (F0,B0)", "x":17.25, "y":1.5}, + {"label":"K20 (D4,D1)", "x":0, "y":2.5, "w":1.5}, {"label":"K21 (D4,D0)", "x":1.5, "y":2.5}, {"label":"K22 (D4,F7)", "x":2.5, "y":2.5}, @@ -58,6 +63,7 @@ {"label":"K2E (D4,B0)", "x":15.25, "y":2.5}, {"label":"K5D (D7,B4)", "x":16.25, "y":2.5}, {"label":"K5E (D7,B0)", "x":17.25, "y":2.5}, + {"label":"K30 (F0,D1)", "x":0, "y":3.5, "w":1.75}, {"label":"K31 (F0,D0)", "x":1.75, "y":3.5}, {"label":"K32 (F0,F7)", "x":2.75, "y":3.5}, @@ -71,6 +77,7 @@ {"label":"K3A (F0,B5)", "x":10.75, "y":3.5}, {"label":"K3B (F0,F4)", "x":11.75, "y":3.5}, {"label":"K3C (F0,F1)", "x":12.75, "y":3.5, "w":2.25}, + {"label":"K40 (D6,D1)", "x":0, "y":4.5, "w":1.25}, {"label":"K41 (D6,D0)", "x":1.25, "y":4.5}, {"label":"K42 (D6,F7)", "x":2.25, "y":4.5}, @@ -86,6 +93,7 @@ {"label":"K4C (D6,F1)", "x":12.25, "y":4.5, "w":1.75}, {"label":"K4D (D6,B4)", "x":14, "y":4.5}, {"label":"K4E (D6,B0)", "x":16.25, "y":4.5}, + {"label":"K50 (D7,D1)", "x":0, "y":5.5, "w":1.25}, {"label":"K51 (D7,D0)", "x":1.25, "y":5.5, "w":1.25}, {"label":"K52 (D7,F7)", "x":2.5, "y":5.5, "w":1.25}, @@ -98,6 +106,102 @@ {"label":"K59 (D7,C6)", "x":16.25, "y":5.5}, {"label":"K5A (D7,B5)", "x":17.25, "y":5.5} ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "y": 0}, + + {"x": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.5}, + {"x": 3, "y": 1.5}, + {"x": 4, "y": 1.5}, + {"x": 5, "y": 1.5}, + {"x": 6, "y": 1.5}, + {"x": 7, "y": 1.5}, + {"x": 8, "y": 1.5}, + {"x": 9, "y": 1.5}, + {"x": 10, "y": 1.5}, + {"x": 11, "y": 1.5}, + {"x": 12, "y": 1.5}, + {"x": 13, "y": 1.5, "w": 2}, + {"x": 15.25, "y": 1.5}, + {"x": 16.25, "y": 1.5}, + {"x": 17.25, "y": 1.5}, + + {"x": 0, "y": 2.5, "w": 1.5}, + {"x": 1.5, "y": 2.5}, + {"x": 2.5, "y": 2.5}, + {"x": 3.5, "y": 2.5}, + {"x": 4.5, "y": 2.5}, + {"x": 5.5, "y": 2.5}, + {"x": 6.5, "y": 2.5}, + {"x": 7.5, "y": 2.5}, + {"x": 8.5, "y": 2.5}, + {"x": 9.5, "y": 2.5}, + {"x": 10.5, "y": 2.5}, + {"x": 11.5, "y": 2.5}, + {"x": 12.5, "y": 2.5}, + {"x": 13.5, "y": 2.5, "w": 1.5}, + {"x": 15.25, "y": 2.5}, + {"x": 16.25, "y": 2.5}, + {"x": 17.25, "y": 2.5}, + + {"x": 0, "y": 3.5, "w": 1.75}, + {"x": 1.75, "y": 3.5}, + {"x": 2.75, "y": 3.5}, + {"x": 3.75, "y": 3.5}, + {"x": 4.75, "y": 3.5}, + {"x": 5.75, "y": 3.5}, + {"x": 6.75, "y": 3.5}, + {"x": 7.75, "y": 3.5}, + {"x": 8.75, "y": 3.5}, + {"x": 9.75, "y": 3.5}, + {"x": 10.75, "y": 3.5}, + {"x": 11.75, "y": 3.5}, + {"x": 12.75, "y": 3.5, "w": 2.25}, + + {"x": 0, "y": 4.5, "w": 2.25}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.5}, + {"x": 4.25, "y": 4.5}, + {"x": 5.25, "y": 4.5}, + {"x": 6.25, "y": 4.5}, + {"x": 7.25, "y": 4.5}, + {"x": 8.25, "y": 4.5}, + {"x": 9.25, "y": 4.5}, + {"x": 10.25, "y": 4.5}, + {"x": 11.25, "y": 4.5}, + {"x": 12.25, "y": 4.5, "w": 2.75}, + {"x": 16.25, "y": 4.5}, + + {"x": 0, "y": 5.5, "w": 1.25}, + {"x": 1.25, "y": 5.5, "w": 1.25}, + {"x": 2.5, "y": 5.5, "w": 1.25}, + {"x": 3.75, "y": 5.5, "w": 6.25}, + {"x": 10, "y": 5.5, "w": 1.25}, + {"x": 11.25, "y": 5.5, "w": 1.25}, + {"x": 12.5, "y": 5.5, "w": 1.25}, + {"x": 13.75, "y": 5.5, "w": 1.25}, + {"x": 15.25, "y": 5.5}, + {"x": 16.25, "y": 5.5}, + {"x": 17.25, "y": 5.5} + ] } } } diff --git a/keyboards/poker87c/keymaps/default/keymap.c b/keyboards/poker87c/keymaps/default/keymap.c index 7bc0912daa44..4be088c0f684 100644 --- a/keyboards/poker87c/keymaps/default/keymap.c +++ b/keyboards/poker87c/keymaps/default/keymap.c @@ -17,21 +17,21 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + [1] = LAYOUT_all( + _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), }; diff --git a/keyboards/poker87c/keymaps/via/keymap.c b/keyboards/poker87c/keymaps/via/keymap.c index 2840ae043381..59c5b359b396 100644 --- a/keyboards/poker87c/keymaps/via/keymap.c +++ b/keyboards/poker87c/keymaps/via/keymap.c @@ -17,36 +17,36 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + [1] = LAYOUT_all( + _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/poker87c/poker87c.h b/keyboards/poker87c/poker87c.h index 454f9b5982fc..c8cdccf4424b 100644 --- a/keyboards/poker87c/poker87c.h +++ b/keyboards/poker87c/poker87c.h @@ -18,7 +18,9 @@ #include "quantum.h" -#define LAYOUT( \ +#define XXX KC_NO + +#define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K3D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K5B, K5C, K3E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K5D, K5E, \ @@ -34,4 +36,18 @@ { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E }, \ } - +#define LAYOUT_tkl_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K3D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K5B, K5C, K3E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K5D, K5E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, XXX, K4E }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E }, \ +} diff --git a/keyboards/poker87c/rules.mk b/keyboards/poker87c/rules.mk index 4ae94ca96be8..6f3a6021e5b7 100644 --- a/keyboards/poker87c/rules.mk +++ b/keyboards/poker87c/rules.mk @@ -8,10 +8,10 @@ BOOTLOADER = atmel-dfu # change yes to no to disable # BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys +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 +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work @@ -21,7 +21,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output -KEY_LOCK_ENABLE = no # Enable KC_LOCK support - -# generated by KBFirmware JSON to QMK Parser -# https://noroadsleft.github.io/kbf_qmk_converter/ +LAYOUTS = tkl_ansi diff --git a/keyboards/poker87d/config.h b/keyboards/poker87d/config.h index eeac6bc4d23c..7cf87340e4e1 100644 --- a/keyboards/poker87d/config.h +++ b/keyboards/poker87d/config.h @@ -19,11 +19,11 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x6D66 // "mf" - mfkiiyd +#define PRODUCT_ID 0x087D // "87D" #define DEVICE_VER 0x0001 -#define MANUFACTURER Hotswap -#define PRODUCT POKER-87 +#define MANUFACTURER mfkiiyd +#define PRODUCT POKER-87D Hotswap /* key matrix size */ #define MATRIX_ROWS 6 diff --git a/keyboards/poker87d/info.json b/keyboards/poker87d/info.json index 5a5eda432456..50c1a7560fa1 100644 --- a/keyboards/poker87d/info.json +++ b/keyboards/poker87d/info.json @@ -1,11 +1,14 @@ { - "keyboard_name": "POKER-87", + "keyboard_name": "POKER-87D", "url": "", - "maintainer": "qmk", + "maintainer": "mfkiiyd", "width": 18.25, "height": 6.5, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"label":"K00 (E6,D1)", "x":0, "y":0}, {"label":"K01 (E6,D0)", "x":2, "y":0}, @@ -23,6 +26,7 @@ {"label":"K0D (E6,B4)", "x":15.25, "y":0}, {"label":"K0E (E6,B0)", "x":16.25, "y":0}, {"label":"K3D (F0,B4)", "x":17.25, "y":0}, + {"label":"K10 (B7,D1)", "x":0, "y":1.5}, {"label":"K11 (B7,D0)", "x":1, "y":1.5}, {"label":"K12 (B7,F7)", "x":2, "y":1.5}, @@ -41,6 +45,7 @@ {"label":"K5B (D7,F4)", "x":15.25, "y":1.5}, {"label":"K5C (D7,F1)", "x":16.25, "y":1.5}, {"label":"K3E (F0,B0)", "x":17.25, "y":1.5}, + {"label":"K20 (D4,D1)", "x":0, "y":2.5, "w":1.5}, {"label":"K21 (D4,D0)", "x":1.5, "y":2.5}, {"label":"K22 (D4,F7)", "x":2.5, "y":2.5}, @@ -54,10 +59,10 @@ {"label":"K2A (D4,B5)", "x":10.5, "y":2.5}, {"label":"K2B (D4,F4)", "x":11.5, "y":2.5}, {"label":"K2C (D4,F1)", "x":12.5, "y":2.5, "w":1.25}, - {"label":"K3C (F0,F1)", "x":13.75, "y":2.5, "w":1.25, "h":2}, {"label":"K2E (D4,B0)", "x":15.25, "y":2.5}, {"label":"K5D (D7,B4)", "x":16.25, "y":2.5}, {"label":"K5E (D7,B0)", "x":17.25, "y":2.5}, + {"label":"K30 (F0,D1)", "x":0, "y":3.5, "w":1.75}, {"label":"K31 (F0,D0)", "x":1.75, "y":3.5}, {"label":"K32 (F0,F7)", "x":2.75, "y":3.5}, @@ -71,6 +76,8 @@ {"label":"K3A (F0,B5)", "x":10.75, "y":3.5}, {"label":"K3B (F0,F4)", "x":11.75, "y":3.5}, {"label":"K2D (D4,B4)", "x":12.75, "y":3.5}, + {"label":"K3C (F0,F1)", "x":13.75, "y":2.5, "w":1.25, "h":2}, + {"label":"K40 (D6,D1)", "x":0, "y":4.5, "w":1.25}, {"label":"K41 (D6,D0)", "x":1.25, "y":4.5}, {"label":"K42 (D6,F7)", "x":2.25, "y":4.5}, @@ -86,6 +93,7 @@ {"label":"K4C (D6,F1)", "x":12.25, "y":4.5, "w":1.75}, {"label":"K4D (D6,B4)", "x":14, "y":4.5}, {"label":"K4E (D6,B0)", "x":16.25, "y":4.5}, + {"label":"K50 (D7,D1)", "x":0, "y":5.5, "w":1.25}, {"label":"K51 (D7,D0)", "x":1.25, "y":5.5, "w":1.25}, {"label":"K52 (D7,F7)", "x":2.5, "y":5.5, "w":1.25}, @@ -98,6 +106,103 @@ {"label":"K59 (D7,C6)", "x":16.25, "y":5.5}, {"label":"K5A (D7,B5)", "x":17.25, "y":5.5} ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "y": 0}, + + {"x": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.5}, + {"x": 3, "y": 1.5}, + {"x": 4, "y": 1.5}, + {"x": 5, "y": 1.5}, + {"x": 6, "y": 1.5}, + {"x": 7, "y": 1.5}, + {"x": 8, "y": 1.5}, + {"x": 9, "y": 1.5}, + {"x": 10, "y": 1.5}, + {"x": 11, "y": 1.5}, + {"x": 12, "y": 1.5}, + {"x": 13, "y": 1.5, "w": 2}, + {"x": 15.25, "y": 1.5}, + {"x": 16.25, "y": 1.5}, + {"x": 17.25, "y": 1.5}, + + {"x": 0, "y": 2.5, "w": 1.5}, + {"x": 1.5, "y": 2.5}, + {"x": 2.5, "y": 2.5}, + {"x": 3.5, "y": 2.5}, + {"x": 4.5, "y": 2.5}, + {"x": 5.5, "y": 2.5}, + {"x": 6.5, "y": 2.5}, + {"x": 7.5, "y": 2.5}, + {"x": 8.5, "y": 2.5}, + {"x": 9.5, "y": 2.5}, + {"x": 10.5, "y": 2.5}, + {"x": 11.5, "y": 2.5}, + {"x": 12.5, "y": 2.5}, + {"x": 15.25, "y": 2.5}, + {"x": 16.25, "y": 2.5}, + {"x": 17.25, "y": 2.5}, + + {"x": 0, "y": 3.5, "w": 1.75}, + {"x": 1.75, "y": 3.5}, + {"x": 2.75, "y": 3.5}, + {"x": 3.75, "y": 3.5}, + {"x": 4.75, "y": 3.5}, + {"x": 5.75, "y": 3.5}, + {"x": 6.75, "y": 3.5}, + {"x": 7.75, "y": 3.5}, + {"x": 8.75, "y": 3.5}, + {"x": 9.75, "y": 3.5}, + {"x": 10.75, "y": 3.5}, + {"x": 11.75, "y": 3.5}, + {"x": 12.75, "y": 3.5}, + {"x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"x": 0, "y": 4.5, "w": 1.25}, + {"x": 1.25, "y": 4.5}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.5}, + {"x": 4.25, "y": 4.5}, + {"x": 5.25, "y": 4.5}, + {"x": 6.25, "y": 4.5}, + {"x": 7.25, "y": 4.5}, + {"x": 8.25, "y": 4.5}, + {"x": 9.25, "y": 4.5}, + {"x": 10.25, "y": 4.5}, + {"x": 11.25, "y": 4.5}, + {"x": 12.25, "y": 4.5, "w": 2.75}, + {"x": 16.25, "y": 4.5}, + + {"x": 0, "y": 5.5, "w": 1.25}, + {"x": 1.25, "y": 5.5, "w": 1.25}, + {"x": 2.5, "y": 5.5, "w": 1.25}, + {"x": 3.75, "y": 5.5, "w": 6.25}, + {"x": 10, "y": 5.5, "w": 1.25}, + {"x": 11.25, "y": 5.5, "w": 1.25}, + {"x": 12.5, "y": 5.5, "w": 1.25}, + {"x": 13.75, "y": 5.5, "w": 1.25}, + {"x": 15.25, "y": 5.5}, + {"x": 16.25, "y": 5.5}, + {"x": 17.25, "y": 5.5} + ] } } } diff --git a/keyboards/poker87d/keymaps/default/keymap.c b/keyboards/poker87d/keymaps/default/keymap.c index ab0318573ad0..8adc58ae11d8 100644 --- a/keyboards/poker87d/keymaps/default/keymap.c +++ b/keyboards/poker87d/keymaps/default/keymap.c @@ -17,21 +17,23 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, _______, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, - _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + + [1] = LAYOUT_all( + _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), }; diff --git a/keyboards/poker87d/keymaps/via/keymap.c b/keyboards/poker87d/keymaps/via/keymap.c index a75465d22810..b2eff1ce3369 100644 --- a/keyboards/poker87d/keymaps/via/keymap.c +++ b/keyboards/poker87d/keymaps/via/keymap.c @@ -18,39 +18,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, _______, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, - _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + + [1] = LAYOUT_all( + _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), - - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + }; diff --git a/keyboards/poker87d/poker87d.h b/keyboards/poker87d/poker87d.h index f414e4bb50ee..8ea11b012790 100644 --- a/keyboards/poker87d/poker87d.h +++ b/keyboards/poker87d/poker87d.h @@ -18,11 +18,13 @@ #include "quantum.h" -#define LAYOUT( \ +#define XXX KC_NO + +#define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K3D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K5B, K5C, K3E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3C, K2E, K5D, K5E, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K5D, K5E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3C, \ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A \ ) { \ @@ -34,3 +36,18 @@ { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E }, \ } +#define LAYOUT_tkl_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K3D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K5B, K5C, K3E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K5D, K5E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, XXX, K4E }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E }, \ +} diff --git a/keyboards/poker87d/rules.mk b/keyboards/poker87d/rules.mk index 4ae94ca96be8..e11be918d18c 100644 --- a/keyboards/poker87d/rules.mk +++ b/keyboards/poker87d/rules.mk @@ -8,10 +8,10 @@ BOOTLOADER = atmel-dfu # change yes to no to disable # BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys +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 +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work @@ -21,7 +21,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output -KEY_LOCK_ENABLE = no # Enable KC_LOCK support - -# generated by KBFirmware JSON to QMK Parser -# https://noroadsleft.github.io/kbf_qmk_converter/ +LAYOUTS = tkl_iso From 710d37b3eb68c795065adfd83b5be4668a029ccb Mon Sep 17 00:00:00 2001 From: jmaynard Date: Wed, 11 Aug 2021 02:21:40 -0500 Subject: [PATCH 208/328] [Keyboard] Improvements to m122_3270 (#13947) Co-authored-by: Jay Maynard --- .../tronguylabs/m122_3270/bluepill/chconf.h | 29 +++++++++ .../tronguylabs/m122_3270/bluepill/config.h | 29 +++++++++ .../tronguylabs/m122_3270/bluepill/readme.md | 2 + .../tronguylabs/m122_3270/bluepill/rules.mk | 7 +++ .../m122_3270/keymaps/default/keymap.c | 59 +++++++++++++++++-- .../m122_3270/keymaps/default/readme.md | 29 ++++++--- 6 files changed, 141 insertions(+), 14 deletions(-) create mode 100644 keyboards/tronguylabs/m122_3270/bluepill/chconf.h create mode 100644 keyboards/tronguylabs/m122_3270/bluepill/config.h create mode 100644 keyboards/tronguylabs/m122_3270/bluepill/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/bluepill/rules.mk diff --git a/keyboards/tronguylabs/m122_3270/bluepill/chconf.h b/keyboards/tronguylabs/m122_3270/bluepill/chconf.h new file mode 100644 index 000000000000..c7a982aedd00 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/bluepill/chconf.h @@ -0,0 +1,29 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/handwired/onekey/bluepill/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/tronguylabs/m122_3270/bluepill/config.h b/keyboards/tronguylabs/m122_3270/bluepill/config.h new file mode 100644 index 000000000000..f59eaaacb6ff --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/bluepill/config.h @@ -0,0 +1,29 @@ +/* Copyright 2021 James R. Maynard III + * + * 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 + +// place overrides below + +// Blackpill pin assignments: reversed the rows from the Teensy version for easier PCB layout +// DO NOT USE the following pins: A9 (has pulldown on it), A11/A12 (USB lines), B2 (external pulldown) +// C13 has an LED, and C13/C14/C15 are best used as inputs (with DIODE_DIRECTION set to ROW2COL, the +// rows are inputs). Note that every usable I/O pin is used. +#define MATRIX_COL_PINS { B1, B10, B11, B12, B13, B14, B15, A8, B0, A10, A7, A6, A15, B3, B4, B5, B6, B7, B8, B9 } +#define MATRIX_ROW_PINS { C13, C14, C15, A1, A2, A3, A4, A5 } + +// The BluePill version is version 3 +#define DEVICE_VER 0x0003 diff --git a/keyboards/tronguylabs/m122_3270/bluepill/readme.md b/keyboards/tronguylabs/m122_3270/bluepill/readme.md new file mode 100644 index 000000000000..a8d92432d471 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/bluepill/readme.md @@ -0,0 +1,2 @@ +# BluePill controller for m122-3270 +This directory contains the BluePill-specific definitions for the M122-3270 keyboard. diff --git a/keyboards/tronguylabs/m122_3270/bluepill/rules.mk b/keyboards/tronguylabs/m122_3270/bluepill/rules.mk new file mode 100644 index 000000000000..023c22cd2c91 --- /dev/null +++ b/keyboards/tronguylabs/m122_3270/bluepill/rules.mk @@ -0,0 +1,7 @@ +# Overrides for the Bluepill version + +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino diff --git a/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c b/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c index a79d3c637248..14d8318e7864 100644 --- a/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c +++ b/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c @@ -21,8 +21,11 @@ enum custom_keycodes { JM_GRLS, // < and > on one key JM_CBRC, // { and } on one key JM_CENT, // cent sign and ! on one key + JM_DPA1, // DUP/PA1, + JM_FPA2, // FldMk/PA2, JM_JUMP, // JUMP/PA3, - JM_DEL // Delete + JM_DEL, // Delete + JM_NSLC // NumLock/ScrollLock on one key }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -30,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_NO, KC_NO, 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_ESC, KC_PGUP, KC_PGDN, KC_NLCK, KC_SLCK, KC_PAST, KC_PSLS, + KC_NO, KC_NO, 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_NO, KC_PGUP, KC_PGDN, KC_ESC, JM_NSLC, KC_PAST, KC_PSLS, KC_NO, KC_PAUS, 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_ENT, KC_END, KC_INS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NO, KC_NO, 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_BSLS, KC_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSCR, KC_NO, KC_LSFT, JM_GRLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_HOME, KC_RIGHT, KC_P1, KC_P2, KC_P3, KC_PENT, @@ -41,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( A(KC_F1), A(KC_F2), A(KC_F3), A(KC_F4), A(KC_F5), A(KC_F6), A(KC_F7), A(KC_F8), A(KC_F9), A(KC_F10), A(KC_F11), A(KC_F12), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - A(KC_A), A(KC_C), 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, A(KC_1), A(KC_2), JM_JUMP, KC_NO, KC_NO, KC_PCMM, KC_SPC, + A(KC_A), A(KC_C), 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, JM_DPA1, JM_FPA2, JM_JUMP, KC_ESC, JM_NSLC, KC_PCMM, KC_SPC, KC_CRSEL, KC_PAUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JM_CENT, KC_BSLS, S(KC_ENT), S(KC_TAB), KC_INS, JM_DEL, KC_P7, KC_P8, KC_P9, KC_TAB, KC_EXSEL, A(KC_E), KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, JM_CBRC, KC_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, A(KC_B), C(KC_C), KC_LSFT, JM_GRLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JM_COMM, JM_DOT, KC_SLSH, KC_RSFT, KC_LEFT, A(KC_H), KC_RIGHT, KC_P1, KC_P2, KC_P3, KC_PENT, @@ -146,9 +149,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING("!"); } return false; - } else { + } else { // This assumes that the Linux Compose has eben set to Scroll Lock if (record->event.pressed) { - SEND_STRING("<"); // TODO: what does tn3270 want for a cent sign? + tap_code16(KC_SLCK); + SEND_STRING("c/"); } return false; } @@ -163,6 +167,32 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING("."); } return false; + case JM_DPA1: + if (left_shift_down || right_shift_down) { + if (record->event.pressed) { + tap_code16(C(KC_D)); + } + return false; + } else { + if(record->event.pressed) { + tap_code16(A(KC_1)); + } + return false; + } + break; + case JM_FPA2: + if (left_shift_down || right_shift_down) { + if (record->event.pressed) { + tap_code16(C(KC_F)); + } + return false; + } else { + if(record->event.pressed) { + tap_code16(A(KC_2)); + } + return false; + } + break; case JM_JUMP: if (record->event.pressed) { if (left_alt_down || right_alt_down) { @@ -187,6 +217,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; + case JM_NSLC: + if (left_shift_down || right_shift_down) { + if (record->event.pressed) { + register_code(KC_NLCK); + } + else { + unregister_code(KC_NLCK); + } + return false; + } else { + if (record->event.pressed) { + register_code(KC_SLCK); + } + else { + unregister_code(KC_SLCK); + } + return false; + } + break; } return true; diff --git a/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md b/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md index befa267fa142..1d54e0cb8e18 100644 --- a/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md +++ b/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md @@ -1,15 +1,16 @@ # Default keymap for m122-3270 This keymap is intended to make the PC/3270 122-key IBM keyboard work as closely as possible to the standard -PC/3270 keyboard's original mapping. Two layers are defined: layer 0 is the PC layout, using the blue legends -on the PC/3270 keys (as shipped by Unicomp; I don't have the original keycaps, and I know there are a few -differences), while layer 1 is the 3270 layout, with keycodes selected to make the x3270 suite do the right -thing with each key as pressed. The idea here is, eventually, to get x3270 and friends to automatically -shift the keyboard to layer 1 when they gain focus. +PC/3270 keyboard's (part number 1397000) original mapping. Two layers are defined: layer 0 is the PC layout, +using the blue legends on the PC/3270 keys (as shipped by Unicomp; I don't have the original keycaps, and I +know there are a few differences), while layer 1 is the 3270 layout, with keycodes selected to make the `x3270` +suite do the right thing with each key as pressed. The idea here is, eventually, to get `x3270` to +automatically shift the keyboard to layer 1 when it gains focus. -When layer 0 is active, the PA1 key is Escape, the Reset and Enter keys are Control, and the comma and dot keys -act like normal PC keys (< and >, repectively, when shifted). The Ctrl key (bottom right of the left-side 10-key -cluster) is always the left GUI key. PA2 and Jump/PA3 are PgUp and PgDn, respectively, and the backtab key is -End. The Rule/Home key is Home. +When layer 0 is active, the upper left key of the 10-key pad is Escape, the Reset and Enter keys are Control, and +the comma and dot keys act like normal PC keys (< and >, repectively, when shifted). The Ctrl key (bottom right +of the left-side 10-key cluster) is always the left GUI key. PA2 and Jump/PA3 are PgUp and PgDn, respectively, +and the backtab key is End. The Rule/Home key is Home. The key next to the Escape key is Scroll Lock when unshifted, +and Num Lock when shifted. When layer 1 is active, the keys do their labeled functions. The only keys that don't do anything are CrSel, ExSel, and Jump, though only a few of the alternate functions (on the front of the keys) work: left/right/delete @@ -21,3 +22,13 @@ To manually switch to layer 1, hold the Zoom key (the one on the far lower left Attn (the one at the top left of that block of 10). Holding the Zoom key and the spacebar gets you to keys that control QMK itself: Zoom-space-R resets to the bootloader, Zoom-space-E erases the EEPROM (which currently does nothing), and Zoom-space-D turns the debugger on and off. + +Note that you need to set your Linux system to use the Scroll Lock key as the Compose key in order to get the +cent sign to register as intended, and add the following lines to a file in your home directory named `.x3270pro` +to make Dup and Field Mark work: +``` +x3270.keymap.m122: #override \ + CtrlF: FieldMark()\n\ + CtrlD: Dup() +``` +You need to then invoke `x3270` with the parameter `-keymap m122` to activate those definitions. From 02ac0f89c4665f5fc6e57559a8c49d363117fbc0 Mon Sep 17 00:00:00 2001 From: Vicktor Hutama Date: Wed, 11 Aug 2021 14:24:34 +0700 Subject: [PATCH 209/328] [Keyboard] Add Rune Vaengr Keyboard (#13945) * initial commit * fixed layout * enabled NKRO * removed qmkbest * changed the pins and bootloader to the mcu version * updated readme * Apply suggestions from code review thank you @drashna Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre --- keyboards/runes/vaengr/config.h | 147 ++++++++++++++++++ keyboards/runes/vaengr/info.json | 72 +++++++++ .../runes/vaengr/keymaps/default/keymap.c | 56 +++++++ .../runes/vaengr/keymaps/default/readme.md | 13 ++ keyboards/runes/vaengr/keymaps/via/keymap.c | 56 +++++++ keyboards/runes/vaengr/keymaps/via/rules.mk | 2 + keyboards/runes/vaengr/readme.md | 23 +++ keyboards/runes/vaengr/rules.mk | 22 +++ keyboards/runes/vaengr/vaengr.c | 17 ++ keyboards/runes/vaengr/vaengr.h | 41 +++++ 10 files changed, 449 insertions(+) create mode 100644 keyboards/runes/vaengr/config.h create mode 100644 keyboards/runes/vaengr/info.json create mode 100644 keyboards/runes/vaengr/keymaps/default/keymap.c create mode 100644 keyboards/runes/vaengr/keymaps/default/readme.md create mode 100644 keyboards/runes/vaengr/keymaps/via/keymap.c create mode 100644 keyboards/runes/vaengr/keymaps/via/rules.mk create mode 100644 keyboards/runes/vaengr/readme.md create mode 100644 keyboards/runes/vaengr/rules.mk create mode 100644 keyboards/runes/vaengr/vaengr.c create mode 100644 keyboards/runes/vaengr/vaengr.h diff --git a/keyboards/runes/vaengr/config.h b/keyboards/runes/vaengr/config.h new file mode 100644 index 000000000000..4f66a4d38d1e --- /dev/null +++ b/keyboards/runes/vaengr/config.h @@ -0,0 +1,147 @@ +/* +Copyright 2021 Vicktor + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x726E +#define PRODUCT_ID 0x7661 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Rune +#define PRODUCT Vængr + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* + * 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 { C7, E6, D5, B3, B7 } +#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, F7, F6, F5, F4, F1, F0 } +#define UNUSED_PINS + +/* 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +// #define BACKLIGHT_PIN +// #define BACKLIGHT_LEVELS 3 +// #define BACKLIGHT_BREATHING + +#define RGB_DI_PIN D3 +// #define RGB_DI_PIN B0 +#ifdef RGB_DI_PIN +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLED_NUM 3 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 +// # 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 */ +/*== 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 + + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/runes/vaengr/info.json b/keyboards/runes/vaengr/info.json new file mode 100644 index 000000000000..e4f9a4bd3bb8 --- /dev/null +++ b/keyboards/runes/vaengr/info.json @@ -0,0 +1,72 @@ +{ + "keyboard_name": "Runes Vængr", + "url": "https://www.runes.id", + "maintainer": "Vicktor", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "K00", "x": 0, "y": 0}, + {"label": "K10", "x": 1, "y": 0}, + {"label": "K20", "x": 2, "y": 0}, + {"label": "K30", "x": 3, "y": 0}, + {"label": "K40", "x": 4, "y": 0}, + {"label": "K50", "x": 5, "y": 0}, + {"label": "K60", "x": 6, "y": 0}, + {"label": "K70", "x": 7, "y": 0}, + {"label": "K80", "x": 8, "y": 0}, + {"label": "K90", "x": 9, "y": 0}, + {"label": "K100", "x": 10, "y": 0}, + {"label": "K110", "x": 11, "y": 0}, + {"label": "K01", "x": 0, "y": 1}, + {"label": "K11", "x": 1, "y": 1}, + {"label": "K21", "x": 2, "y": 1}, + {"label": "K31", "x": 3, "y": 1}, + {"label": "K41", "x": 4, "y": 1}, + {"label": "K51", "x": 5, "y": 1}, + {"label": "K61", "x": 6, "y": 1}, + {"label": "K71", "x": 7, "y": 1}, + {"label": "K81", "x": 8, "y": 1}, + {"label": "K91", "x": 9, "y": 1}, + {"label": "K101", "x": 10, "y": 1}, + {"label": "K111", "x": 11, "y": 1}, + {"label": "K02", "x": 0, "y": 2}, + {"label": "K12", "x": 1, "y": 2}, + {"label": "K22", "x": 2, "y": 2}, + {"label": "K32", "x": 3, "y": 2}, + {"label": "K42", "x": 4, "y": 2}, + {"label": "K52", "x": 5, "y": 2}, + {"label": "K62", "x": 6, "y": 2}, + {"label": "K72", "x": 7, "y": 2}, + {"label": "K82", "x": 8, "y": 2}, + {"label": "K92", "x": 9, "y": 2}, + {"label": "K102", "x": 10, "y": 2}, + {"label": "K112", "x": 11, "y": 2}, + {"label": "K03", "x": 0, "y": 3}, + {"label": "K13", "x": 1, "y": 3}, + {"label": "K23", "x": 2, "y": 3}, + {"label": "K33", "x": 3, "y": 3}, + {"label": "K43", "x": 4, "y": 3}, + {"label": "K53", "x": 5, "y": 3}, + {"label": "K63", "x": 6, "y": 3}, + {"label": "K73", "x": 7, "y": 3}, + {"label": "K83", "x": 8, "y": 3}, + {"label": "K93", "x": 9, "y": 3}, + {"label": "K103", "x": 10, "y": 3}, + {"label": "K113", "x": 11, "y": 3}, + {"label": "K04", "x": 0, "y": 4}, + {"label": "K14", "x": 1, "y": 4}, + {"label": "K24", "x": 2, "y": 4}, + {"label": "K34", "x": 3, "y": 4}, + {"label": "K44", "x": 4, "y": 4}, + {"label": "K54", "x": 5, "y": 4, "w":2}, + {"label": "K74", "x": 7, "y": 4}, + {"label": "K84", "x": 8, "y": 4}, + {"label": "K94", "x": 9, "y": 4}, + {"label": "K104", "x": 10, "y": 4}, + {"label": "K114", "x": 11, "y": 4} + ] + } + } +} diff --git a/keyboards/runes/vaengr/keymaps/default/keymap.c b/keyboards/runes/vaengr/keymaps/default/keymap.c new file mode 100644 index 000000000000..5bd2f1219928 --- /dev/null +++ b/keyboards/runes/vaengr/keymaps/default/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2021 Vicktor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _DOUBLE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // /* Base */ + + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_CAPS, 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_UP, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(1), KC_SPC, MO(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT), + + [_LOWER] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_PGUP, KC_HOME, KC_DEL, KC_BSPC, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_MINS, KC_EQL, KC_BSLS, + KC_TRNS, KC_PGDN, KC_END, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_PIPE, + KC_TRNS, KC_PSCR, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_RAISE] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_PMNS, KC_P4, KC_P5, KC_P6, KC_TRNS, + KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_TRNS, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PPLS, + KC_TRNS, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS, KC_PSLS, KC_P0, KC_PDOT, KC_PEQL, KC_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_DOUBLE] = LAYOUT( + KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, + KC_TRNS, KC_TRNS, KC_TRNS, RGB_MODE_FORWARD, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, 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/runes/vaengr/keymaps/default/readme.md b/keyboards/runes/vaengr/keymaps/default/readme.md new file mode 100644 index 000000000000..3a5339cfa811 --- /dev/null +++ b/keyboards/runes/vaengr/keymaps/default/readme.md @@ -0,0 +1,13 @@ +# The default keymap for Vængr + +Layer 0 (Default): +![Layer 0](https://i.imgur.com/0g3Iw2q.png) + +Layer 1: +![Layer 1](https://i.imgur.com/i1qYu4P.png) + +Layer 2: +![Layer 2](https://i.imgur.com/oGo0Iss.png) + +Layer 3: +![Layer 3](https://i.imgur.com/tOjiGn3.png) \ No newline at end of file diff --git a/keyboards/runes/vaengr/keymaps/via/keymap.c b/keyboards/runes/vaengr/keymaps/via/keymap.c new file mode 100644 index 000000000000..5bd2f1219928 --- /dev/null +++ b/keyboards/runes/vaengr/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2021 Vicktor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _DOUBLE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // /* Base */ + + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_CAPS, 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_UP, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(1), KC_SPC, MO(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT), + + [_LOWER] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_PGUP, KC_HOME, KC_DEL, KC_BSPC, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_MINS, KC_EQL, KC_BSLS, + KC_TRNS, KC_PGDN, KC_END, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_PIPE, + KC_TRNS, KC_PSCR, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_RAISE] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_PMNS, KC_P4, KC_P5, KC_P6, KC_TRNS, + KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_TRNS, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PPLS, + KC_TRNS, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS, KC_PSLS, KC_P0, KC_PDOT, KC_PEQL, KC_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_DOUBLE] = LAYOUT( + KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, + KC_TRNS, KC_TRNS, KC_TRNS, RGB_MODE_FORWARD, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, 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/runes/vaengr/keymaps/via/rules.mk b/keyboards/runes/vaengr/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/runes/vaengr/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/runes/vaengr/readme.md b/keyboards/runes/vaengr/readme.md new file mode 100644 index 000000000000..54e3b801761a --- /dev/null +++ b/keyboards/runes/vaengr/readme.md @@ -0,0 +1,23 @@ +# Vængr + +![Vængr](https://i.imgur.com/bwN7SzF.jpg) + +Vængr [/ˈwɛ̃ːŋɡr̩/] (Old Norse: Wings) + +5x12 hotswap ortholinear keyboard based on atmega32u4 mcu. + +* Keyboard Maintainer: [Vicktor](https://github.com/vicktorhu) +* Hardware Supported: atmega32u4 +* Hardware Availability: [Website](https://www.runes.id) -- Currently Indonesia only + +Reset the keyboard with **Lower** + **Upper** + **Del** or by pressing the reset button on the PCB. + +Make example for this keyboard (after setting up your build environment): + + make vaengr:default + +Flashing example for this keyboard: + + make vaengr: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). diff --git a/keyboards/runes/vaengr/rules.mk b/keyboards/runes/vaengr/rules.mk new file mode 100644 index 000000000000..27ffc1f24101 --- /dev/null +++ b/keyboards/runes/vaengr/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/runes/vaengr/vaengr.c b/keyboards/runes/vaengr/vaengr.c new file mode 100644 index 000000000000..7bea621495da --- /dev/null +++ b/keyboards/runes/vaengr/vaengr.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Vicktor + * + * 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 "vaengr.h" diff --git a/keyboards/runes/vaengr/vaengr.h b/keyboards/runes/vaengr/vaengr.h new file mode 100644 index 000000000000..985867a93996 --- /dev/null +++ b/keyboards/runes/vaengr/vaengr.h @@ -0,0 +1,41 @@ +/* Copyright 2021 Vicktor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ + K40, K41, K42, K43, K44, K45, K47, K48, K49, K410, K411 \ +) { \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011 }, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111 }, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211 }, \ + {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311 }, \ + {K40, K41, K42, K43, K44, K45, KC_NO, K47, K48, K49, K410, K411 } \ +} From af81e3e63d7a36766b4d17a8259c9660f4599bb6 Mon Sep 17 00:00:00 2001 From: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Thu, 12 Aug 2021 10:44:15 +0800 Subject: [PATCH 210/328] [Keyboard] add Wang V2 keyboard (#13948) Co-authored-by: Ryan --- keyboards/ocean/wang_v2/config.h | 51 +++++++++++++++++++ keyboards/ocean/wang_v2/info.json | 12 +++++ .../ocean/wang_v2/keymaps/default/keymap.c | 45 ++++++++++++++++ keyboards/ocean/wang_v2/keymaps/via/keymap.c | 45 ++++++++++++++++ keyboards/ocean/wang_v2/keymaps/via/rules.mk | 2 + keyboards/ocean/wang_v2/readme.md | 24 +++++++++ keyboards/ocean/wang_v2/rules.mk | 22 ++++++++ keyboards/ocean/wang_v2/wang_v2.c | 15 ++++++ keyboards/ocean/wang_v2/wang_v2.h | 31 +++++++++++ 9 files changed, 247 insertions(+) create mode 100644 keyboards/ocean/wang_v2/config.h create mode 100644 keyboards/ocean/wang_v2/info.json create mode 100644 keyboards/ocean/wang_v2/keymaps/default/keymap.c create mode 100644 keyboards/ocean/wang_v2/keymaps/via/keymap.c create mode 100644 keyboards/ocean/wang_v2/keymaps/via/rules.mk create mode 100644 keyboards/ocean/wang_v2/readme.md create mode 100644 keyboards/ocean/wang_v2/rules.mk create mode 100644 keyboards/ocean/wang_v2/wang_v2.c create mode 100644 keyboards/ocean/wang_v2/wang_v2.h diff --git a/keyboards/ocean/wang_v2/config.h b/keyboards/ocean/wang_v2/config.h new file mode 100644 index 000000000000..f5f1e9231c0a --- /dev/null +++ b/keyboards/ocean/wang_v2/config.h @@ -0,0 +1,51 @@ +/*Copyright 2021 Ocean + +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 VENDOR_ID 0x9624 +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ocean +#define PRODUCT Wang V2 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 13 + +/* + * 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) + * + */ +/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14*/ +#define MATRIX_ROW_PINS { F4, F5, F6, F7 } +#define MATRIX_COL_PINS { D1, D0, D4, C6, D7, E6, B4, B5, B6, B2, B3, B1, D3 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + diff --git a/keyboards/ocean/wang_v2/info.json b/keyboards/ocean/wang_v2/info.json new file mode 100644 index 000000000000..1b3670ad2d28 --- /dev/null +++ b/keyboards/ocean/wang_v2/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Wang V2", + "url": "", + "maintainer": "Ocean", + "width": 14, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"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":12, "y":0}, {"x":13, "y":0}, {"x":0.75, "y":1, "w":1.25}, {"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":12, "y":1, "w":1.75}, {"x":0.25, "y":2, "w":1.75}, {"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":12, "y":2, "w":1.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":1.25}, {"x":5, "y":3, "w":2}, {"x":7, "y":3, "w":2}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}] + } + } +} \ No newline at end of file diff --git a/keyboards/ocean/wang_v2/keymaps/default/keymap.c b/keyboards/ocean/wang_v2/keymaps/default/keymap.c new file mode 100644 index 000000000000..876e5f7a5c26 --- /dev/null +++ b/keyboards/ocean/wang_v2/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2021 Ocean + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/ocean/wang_v2/keymaps/via/keymap.c b/keyboards/ocean/wang_v2/keymaps/via/keymap.c new file mode 100644 index 000000000000..876e5f7a5c26 --- /dev/null +++ b/keyboards/ocean/wang_v2/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2021 Ocean + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/ocean/wang_v2/keymaps/via/rules.mk b/keyboards/ocean/wang_v2/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/ocean/wang_v2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/ocean/wang_v2/readme.md b/keyboards/ocean/wang_v2/readme.md new file mode 100644 index 000000000000..1f8056a8ee53 --- /dev/null +++ b/keyboards/ocean/wang_v2/readme.md @@ -0,0 +1,24 @@ +# Wang V2 + +![Wang V2](https://i.imgur.com/KhonJdvh.jpg) + + +40% keyboard with southpaw numpad + +* Keyboard Maintainer: Ocean +* Hardware Supported: Wang V2, Pro Micro +* Hardware Availability: [Local Marketplace](https://tokopedia.com/) + +Make example for this keyboard (after setting up your build environment): + + make ocean/wang_v2:default + +Flashing example for this keyboard: + + make ocean/wang_v2:default:flash + +## Bootloader + +To Enter the bootloader you can double click reset button on board when you flash the firmware + +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). diff --git a/keyboards/ocean/wang_v2/rules.mk b/keyboards/ocean/wang_v2/rules.mk new file mode 100644 index 000000000000..68a44eb8bdcc --- /dev/null +++ b/keyboards/ocean/wang_v2/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/ocean/wang_v2/wang_v2.c b/keyboards/ocean/wang_v2/wang_v2.c new file mode 100644 index 000000000000..b04df65bae34 --- /dev/null +++ b/keyboards/ocean/wang_v2/wang_v2.c @@ -0,0 +1,15 @@ +/* Copyright 2021 Ocean + * 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 "wang_v2.h" diff --git a/keyboards/ocean/wang_v2/wang_v2.h b/keyboards/ocean/wang_v2/wang_v2.h new file mode 100644 index 000000000000..bcac9dd690cc --- /dev/null +++ b/keyboards/ocean/wang_v2/wang_v2.h @@ -0,0 +1,31 @@ +/* Copyright 2021 Ocean + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT(\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ + 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, K35, K36, K38, K39, K3A, K3B \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO }, \ + { K30, K31, K32, K33, KC_NO, K35, K36, KC_NO, K38, K39, K3A, K3B, KC_NO }, \ +} From 2bc2a5161804bcb2c4958aaffe9baae463681df7 Mon Sep 17 00:00:00 2001 From: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Thu, 12 Aug 2021 10:44:59 +0800 Subject: [PATCH 211/328] [Keyboard] add Gin V2 keyboard (#13943) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/ocean/gin_v2/config.h | 51 +++++++++++++++++++ keyboards/ocean/gin_v2/gin_v2.c | 15 ++++++ keyboards/ocean/gin_v2/gin_v2.h | 37 ++++++++++++++ keyboards/ocean/gin_v2/info.json | 12 +++++ .../ocean/gin_v2/keymaps/default/keymap.c | 32 ++++++++++++ keyboards/ocean/gin_v2/keymaps/via/keymap.c | 46 +++++++++++++++++ keyboards/ocean/gin_v2/keymaps/via/rules.mk | 2 + keyboards/ocean/gin_v2/readme.md | 24 +++++++++ keyboards/ocean/gin_v2/rules.mk | 22 ++++++++ 9 files changed, 241 insertions(+) create mode 100644 keyboards/ocean/gin_v2/config.h create mode 100644 keyboards/ocean/gin_v2/gin_v2.c create mode 100644 keyboards/ocean/gin_v2/gin_v2.h create mode 100644 keyboards/ocean/gin_v2/info.json create mode 100644 keyboards/ocean/gin_v2/keymaps/default/keymap.c create mode 100644 keyboards/ocean/gin_v2/keymaps/via/keymap.c create mode 100644 keyboards/ocean/gin_v2/keymaps/via/rules.mk create mode 100644 keyboards/ocean/gin_v2/readme.md create mode 100644 keyboards/ocean/gin_v2/rules.mk diff --git a/keyboards/ocean/gin_v2/config.h b/keyboards/ocean/gin_v2/config.h new file mode 100644 index 000000000000..2f70ad3f5e1e --- /dev/null +++ b/keyboards/ocean/gin_v2/config.h @@ -0,0 +1,51 @@ +/*Copyright 2021 Ocean + +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 VENDOR_ID 0x9624 +#define PRODUCT_ID 0x0005 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ocean +#define PRODUCT Gin V2 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +/* + * 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) + * + */ +/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14*/ +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 } +#define UNUSED_PINS { D2, D3 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + diff --git a/keyboards/ocean/gin_v2/gin_v2.c b/keyboards/ocean/gin_v2/gin_v2.c new file mode 100644 index 000000000000..3a8a32881772 --- /dev/null +++ b/keyboards/ocean/gin_v2/gin_v2.c @@ -0,0 +1,15 @@ +/* Copyright 2021 Ocean + * 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 "gin_v2.h" diff --git a/keyboards/ocean/gin_v2/gin_v2.h b/keyboards/ocean/gin_v2/gin_v2.h new file mode 100644 index 000000000000..dd457dcc926f --- /dev/null +++ b/keyboards/ocean/gin_v2/gin_v2.h @@ -0,0 +1,37 @@ +/* Copyright 2021 Ocean + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT(\ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K27, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K47, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K67, \ + K60, K70, K61, K71, K62, K72, K63, K74, K65, K75, K66, K76 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, K27 }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, K56, XXX }, \ + { K60, K61, K62, K63, XXX, K65, K66, K67 }, \ + { K70, K71, K72, XXX, K74, K75, K76, XXX } \ +} diff --git a/keyboards/ocean/gin_v2/info.json b/keyboards/ocean/gin_v2/info.json new file mode 100644 index 000000000000..f907061a53c9 --- /dev/null +++ b/keyboards/ocean/gin_v2/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Gin V2", + "url": " ", + "maintainer": "Ocean", + "width": 16.25, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3.25, "y":1, "w":1.25}, {"x":4.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1, "w":1.75}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3.25, "y":2, "w":1.75}, {"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":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2, "w":1.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3.25, "y":3, "w":1.5}, {"x":4.75, "y":3}, {"x":5.75, "y":3, "w":1.5}, {"x":7.25, "y":3, "w":2.25}, {"x":9.5, "y":3, "w":2.75}, {"x":12.25, "y":3, "w":1.5}, {"x":13.75, "y":3}, {"x":14.75, "y":3, "w":1.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/ocean/gin_v2/keymaps/default/keymap.c b/keyboards/ocean/gin_v2/keymaps/default/keymap.c new file mode 100644 index 000000000000..c660439ee591 --- /dev/null +++ b/keyboards/ocean/gin_v2/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2021 Ocean + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + { + [0] = LAYOUT( + KC_P7, KC_P8, KC_P9, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_BSPC, + KC_P4, KC_P5, KC_P6, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_P1, KC_P2, KC_P3, 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_P0, KC_PDOT, KC_PENT, KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTRL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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/ocean/gin_v2/keymaps/via/keymap.c b/keyboards/ocean/gin_v2/keymaps/via/keymap.c new file mode 100644 index 000000000000..c811f5a3c054 --- /dev/null +++ b/keyboards/ocean/gin_v2/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2021 Ocean + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + { + [0] = LAYOUT( + KC_P7, KC_P8, KC_P9, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_BSPC, + KC_P4, KC_P5, KC_P6, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_P1, KC_P2, KC_P3, 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_P0, KC_PDOT, KC_PENT, KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTRL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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/ocean/gin_v2/keymaps/via/rules.mk b/keyboards/ocean/gin_v2/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/ocean/gin_v2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/ocean/gin_v2/readme.md b/keyboards/ocean/gin_v2/readme.md new file mode 100644 index 000000000000..c50aae196977 --- /dev/null +++ b/keyboards/ocean/gin_v2/readme.md @@ -0,0 +1,24 @@ +# Gin V2 + +![Gin V2](https://i.imgur.com/CQiImvuh.jpeg) + + +40% keyboard with southpaw numpad + +* Keyboard Maintainer: Ocean +* Hardware Supported: Gin V2, Pro Micro +* Hardware Availability: [Local Marketplace](https://tokopedia.com/) + +Make example for this keyboard (after setting up your build environment): + + make ocean/gin_v2:default + +Flashing example for this keyboard: + + make ocean/gin_v2:default:flash + +## Bootloader + +To Enter the bootloader you can double click reset button on board when you flash the firmware + +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). diff --git a/keyboards/ocean/gin_v2/rules.mk b/keyboards/ocean/gin_v2/rules.mk new file mode 100644 index 000000000000..8f65b3331bb4 --- /dev/null +++ b/keyboards/ocean/gin_v2/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 6a5c07680cc80a5fde62307ca1b651e228b2073e Mon Sep 17 00:00:00 2001 From: David Dansby <39511285+DataDavD@users.noreply.github.com> Date: Wed, 11 Aug 2021 20:40:17 -0700 Subject: [PATCH 212/328] [Keymap] Add lily58 datadavd layout (#13560) --- keyboards/lily58/keymaps/datadavd/config.h | 53 ++++ keyboards/lily58/keymaps/datadavd/keymap.c | 266 +++++++++++++++++++++ keyboards/lily58/keymaps/datadavd/rules.mk | 6 + 3 files changed, 325 insertions(+) create mode 100644 keyboards/lily58/keymaps/datadavd/config.h create mode 100644 keyboards/lily58/keymaps/datadavd/keymap.c create mode 100644 keyboards/lily58/keymaps/datadavd/rules.mk diff --git a/keyboards/lily58/keymaps/datadavd/config.h b/keyboards/lily58/keymaps/datadavd/config.h new file mode 100644 index 000000000000..f0b7f6ee399b --- /dev/null +++ b/keyboards/lily58/keymaps/datadavd/config.h @@ -0,0 +1,53 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +// #define SSD1306OLED + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 50 + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 27 +#define RGBLIGHT_LIMIT_VAL 120 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +// Mouse configs +#define MOUSEKEY_DELAY 150 + +// Underglow +/* +#undef RGBLED_NUM +#define RGBLED_NUM 14 // Number of LEDs +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_SLEEP +*/ diff --git a/keyboards/lily58/keymaps/datadavd/keymap.c b/keyboards/lily58/keymaps/datadavd/keymap.c new file mode 100644 index 000000000000..df963b365c81 --- /dev/null +++ b/keyboards/lily58/keymaps/datadavd/keymap.c @@ -0,0 +1,266 @@ +/* Copyright 2021 David Dansby + * + * 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_number { + _QWERTY = 0, + _SUPER, + _RAISE, + _MOUSE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |BackSP| + * |------+------+------+------+------+------| |------+------+------+------+------+----- | + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | + * |------+------+------+------+------+------| |------+------+------+------+------+----- | + * |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ;: | '" | + * |------+------+------+------+------+------| `~ | | Enter |------+------+------+------+------+------| + * |LCTRL | Z | X | C | V | B |-------| |-------| N | M | ,< | .> | ?/ |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | [ | LAlt | LGUI | /SUPER / \Space \ |RAISE | RGUI | ] | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + + [_QWERTY] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LBRC, KC_LALT, KC_LGUI, MO(_SUPER), KC_SPC, MO(_RAISE), KC_RGUI, KC_RBRC +), +/* SUPER + * ,-----------------------------------------. ,-----------------------------------------. + * | Pwr |Pwr Dn| Sleep| Wake | XXXX | XXXX | | \| | `~ | } | -_ | =+ |BackSP| + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Tab | ESC |Enter |LCTRL | { | | ) | Tab | Up | {[ | ]} | \| | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LShift|LShift| LGUI | LAlt | _ | ( |-------. ,-------|BackSP| Left | Down |Right | = |Enter | + * |------+------+------+------+------+------| CAPS | | `~ |------+------+------+------+------+------| + * |LCTRL |LCTRL | Home |Pg Up |Pg Dwn| End |-------| |-------| B | V | C | X | Z |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * |Trans | LAlt |LGUI | /Trans / \Space \ |Del | TGUI |Trans | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_SUPER] = LAYOUT( + KC_POWER, KC_PWR, KC_SLEP, KC_WAKE, KC_NO, KC_NO, KC_BSLS, KC_GRV, KC_RCBR, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_TAB, KC_ESC, KC_ENT, KC_LCTRL, KC_LCBR, KC_RPRN, KC_TAB, KC_UP, KC_LBRC, KC_RBRC, KC_TRNS, + KC_LSFT, KC_LSFT, KC_LGUI, KC_LALT, KC_UNDS, KC_LPRN, KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_EQL, KC_ENT, + KC_LCTL, KC_LCTL, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_CAPS, KC_GRV, KC_B, KC_V, KC_C, KC_X, KC_Z, KC_RSFT, + KC_TRNS, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_DEL, KC_RGUI, KC_TRNS +), +/* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | TAB | XXXX | ( | ) | TAB | | MUTE | VOLU | Up |_MOUSE|ENTER | CAPS | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LShift|LShift| DEL | [ | ] | `~ |-------. ,-------| VOLD | Left | Down |Right |RShift|_MOUSE| + * |------+------+------+------+------+------| BRID | | BRIU |------+------+------+------+------+------| + * |LCTRL |LCTRL | MRWD | MPLY | MFFD | MSTP |-------| |-------| End |Pg Dwn|Pg Up | Home |RShift|RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * |MS_BT2| LAlt | LGUI | /BackSP / \Trans \ |Trans |Trans | XXXX | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + +[_RAISE] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TAB, KC_TAB, KC_NO, KC_LPRN, KC_RPRN, KC_TAB, KC_MUTE, KC_VOLU, KC_UP, MO(_MOUSE), KC_ENT, KC_CAPS, + KC_LSFT, KC_LSFT, KC_DEL, KC_LBRC, KC_RBRC, KC_GRV, KC_VOLD, KC_LEFT, KC_DOWN, KC_RGHT, KC_RSFT, MO(_MOUSE), + KC_LCTL, KC_LCTL, KC_MRWD, KC_MPLY, KC_MFFD, KC_MSTP, KC_BRID, KC_BRIU, KC_END, KC_PGDN, KC_PGUP, KC_HOME, KC_RSFT, KC_RSFT, + KC_NO, KC_LALT, KC_LGUI, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO +), +/* MOUSE + * ,-----------------------------------------. ,-----------------------------------------. + * | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | XXXX | XXXX |MS_W_D| MS_U |MS_W_U| XXXX | | XXXX | XXXX |LShift|Trans | LGUI | XXXX | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | XXXX |MS_BT2| MS_L | MS_D | MS_R | XXXX |-------. ,-------| XXXX | XXXX | XXXX | XXXX | XXXX |Trans | + * |------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+------| + * | XXXX | XXXX |MS_W_R|MS_BT3|MS_W_L| XXXX |-------| |-------| XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | XXXX | XXXX | XXXX | / MS_BT1/ \ XXXX \ |Trans | XXXX | XXXX | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + +[_MOUSE] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_WH_D, KC_MS_U, KC_WH_U, KC_NO, KC_NO, KC_NO, KC_LSFT, KC_TRNS, KC_LGUI, KC_NO, + KC_NO, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_NO, KC_WH_R, KC_BTN3, KC_WH_L, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_BTN1, KC_NO, KC_TRNS, KC_NO, KC_NO +) +}; + +//SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk +#ifdef OLED_DRIVER_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + return rotation; +} + +// When you add source files to SRC in rules.mk, you can use functions. +const char *read_layer_state(void); +const char *read_logo(void); +void set_keylog(uint16_t keycode, keyrecord_t *record); +//const char *read_keylog(void); +//const char *read_keylogs(void); + +// const char *read_mode_icon(bool swap); +// const char *read_host_led_state(void); +// void set_timelog(void); +// const char *read_timelog(void); + +static void render_logo(void) { + static const char PROGMEM my_logo[] = { + // Paste the code from the previous step below this line! + // 'DataDavD Logo', 128x32px + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x01, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0x19, 0xf9, 0xf9, 0xf9, 0xe1, 0xe7, 0x07, 0xff, 0xff, + 0xff, 0x01, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0x01, 0xff, 0xff, + 0xff, 0x01, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0x61, 0x61, 0x67, 0x67, 0x67, 0x67, 0x07, 0x07, 0xff, + 0xff, 0x01, 0x01, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf9, 0xf9, 0xf9, 0xf9, 0x01, 0x01, 0xff, + 0xff, 0x01, 0x01, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0x19, 0xf9, 0xf9, 0xf9, 0xe1, 0xe7, 0x07, 0xff, + 0xff, 0xff, 0x01, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0x01, 0xff, + 0xff, 0xff, 0x01, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0x01, 0x01, 0xf9, 0xf9, 0xf9, 0xf9, 0x01, 0x01, + 0xff, 0xff, 0x01, 0x01, 0xf9, 0xf9, 0xf9, 0xf9, 0x19, 0x19, 0xf9, 0xf9, 0xe1, 0xe1, 0x07, 0x07, + 0x80, 0x80, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x98, 0x9f, 0x9f, 0x9f, 0x87, 0xe7, 0xe0, 0xff, 0xff, + 0xff, 0x80, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x99, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x80, 0xff, 0xff, + 0xff, 0x80, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x98, 0x98, 0x9e, 0x9e, 0x9e, 0x9e, 0x80, 0x80, 0xff, + 0xff, 0x80, 0x80, 0x9f, 0x9f, 0x9f, 0x9f, 0x99, 0x99, 0x9f, 0x9f, 0x9f, 0x9f, 0x80, 0x80, 0xff, + 0xff, 0x80, 0x80, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x98, 0x9f, 0x9f, 0x9f, 0x87, 0xe7, 0xe0, 0xff, + 0xff, 0xff, 0x80, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x99, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x80, 0xff, + 0xff, 0xff, 0xe0, 0xe7, 0x87, 0x9f, 0x9f, 0x9f, 0x98, 0x98, 0x9f, 0x9f, 0x87, 0x87, 0xe0, 0xe0, + 0xff, 0xff, 0x80, 0x80, 0x9f, 0x9f, 0x9f, 0x9f, 0x98, 0x98, 0x9f, 0x9f, 0x87, 0x87, 0xe0, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + }; + + oled_write_raw_P(my_logo, sizeof(my_logo)); +} + +static void render_lfc_logo(void) { + static const char PROGMEM my_lfc_logo[] = { + // Paste the code from the previous step below this line! + // 'YNWA', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xf0, 0xc3, 0x87, + 0x1f, 0x3f, 0x1f, 0x8f, 0xc3, 0xf0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, 0xe1, + 0xc3, 0x87, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xfc, 0xf0, 0x00, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x81, 0x03, 0x1f, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0xe0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x87, 0xe1, 0xf0, 0xc0, + 0x07, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf1, 0xc3, 0x87, 0x1f, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf8, 0x80, 0x03, 0x1f, 0x07, 0xc0, 0xf8, 0xff, 0xff, 0xfe, 0xf0, 0x81, 0x0f, + 0x07, 0x80, 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x87, 0xe1, 0xf8, 0xf8, 0xf9, 0xf9, 0xf9, 0xf9, + 0xf9, 0xf8, 0xe0, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xff, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + }; + + oled_write_raw_P(my_lfc_logo, sizeof(my_lfc_logo)); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + render_logo(); + } else { + render_lfc_logo(); + } +} +#endif // OLED_DRIVER_ENABLE + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { +#ifdef OLED_DRIVER_ENABLE +#endif + } + return true; +} + +#include +#include "lily58.h" + +#define L_BASE 0 +#define L_SUPER (1 << 1) +#define L_RAISE (1 << 2) + +char layer_state_str[24]; + +const char *read_layer_state(void) { + switch (layer_state) + { + case L_BASE: + snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Default"); + break; + case L_RAISE: + snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise"); + break; + case L_SUPER: + snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Super"); + break; + default: + snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state); + } + + return layer_state_str; +} + diff --git a/keyboards/lily58/keymaps/datadavd/rules.mk b/keyboards/lily58/keymaps/datadavd/rules.mk new file mode 100644 index 000000000000..b53fed1a72a4 --- /dev/null +++ b/keyboards/lily58/keymaps/datadavd/rules.mk @@ -0,0 +1,6 @@ +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes + +# If you want to change the display of OLED, you need to change here +SRC += ./lib/rgb_state_reader.c \ + ./lib/logo_reader.c From ac92f4b72197145c86a2ea0da461d398cfaa1130 Mon Sep 17 00:00:00 2001 From: arnstadm <45672752+arnstadm@users.noreply.github.com> Date: Thu, 12 Aug 2021 15:59:07 +0200 Subject: [PATCH 213/328] [Keyboard] Add Edda Keyboard (#13953) Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/edda/config.h | 46 +++++++ keyboards/edda/edda.c | 50 ++++++++ keyboards/edda/edda.h | 47 +++++++ keyboards/edda/info.json | 156 ++++++++++++++++++++++++ keyboards/edda/keymaps/default/keymap.c | 40 ++++++ keyboards/edda/keymaps/via/keymap.c | 53 ++++++++ keyboards/edda/keymaps/via/rules.mk | 1 + keyboards/edda/readme.md | 21 ++++ keyboards/edda/rules.mk | 24 ++++ 9 files changed, 438 insertions(+) create mode 100644 keyboards/edda/config.h create mode 100644 keyboards/edda/edda.c create mode 100644 keyboards/edda/edda.h create mode 100644 keyboards/edda/info.json create mode 100644 keyboards/edda/keymaps/default/keymap.c create mode 100644 keyboards/edda/keymaps/via/keymap.c create mode 100644 keyboards/edda/keymaps/via/rules.mk create mode 100644 keyboards/edda/readme.md create mode 100644 keyboards/edda/rules.mk diff --git a/keyboards/edda/config.h b/keyboards/edda/config.h new file mode 100644 index 000000000000..bd9a0ab77d5e --- /dev/null +++ b/keyboards/edda/config.h @@ -0,0 +1,46 @@ +/* +Copyright 2021 Martin Arnstad +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D45 +#define PRODUCT_ID 0x4544 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Mekanisk +#define PRODUCT Edda PCB + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {F1, F0, E6, B5, B4} +#define MATRIX_COL_PINS {F4, F5, F6, F7, C7, C6, B6, B3, D7, D6, D4, D5, D3, D2, D1, D0 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +// Indicators +#define INDICATOR_PIN_0 B2 +#define INDICATOR_PIN_1 B1 +#define INDICATOR_PIN_2 B0 \ No newline at end of file diff --git a/keyboards/edda/edda.c b/keyboards/edda/edda.c new file mode 100644 index 000000000000..a04f3cc4c131 --- /dev/null +++ b/keyboards/edda/edda.c @@ -0,0 +1,50 @@ +/* +Copyright 2021 Martin Arnstad +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 "edda.h" + +void keyboard_pre_init_kb(void) { + // Call the keyboard pre init code. + keyboard_pre_init_user(); + + // Set our LED pins as output + setPinOutput(B2); + setPinOutput(B1); + setPinOutput(B0); +} + +__attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case 1: + writePin(B2, 1); + writePin(B1, 0); + writePin(B0, 0); + break; + case 2: + writePin(B2, 1); + writePin(B1, 1); + writePin(B0, 0); + break; + case 3: + writePin(B2, 1); + writePin(B1, 1); + writePin(B0, 1); + break; + default: // for any other layers, or the default layer + writePin(B2, 0); + writePin(B1, 0); + writePin(B0, 0); + break; + } + return state; +} diff --git a/keyboards/edda/edda.h b/keyboards/edda/edda.h new file mode 100644 index 000000000000..d15606b2c22a --- /dev/null +++ b/keyboards/edda/edda.h @@ -0,0 +1,47 @@ +/* +Copyright 2021 Martin Arnstad +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#include "quantum.h" + +#define KNO KC_NO +#define LAYOUT_default LAYOUT_alice_split_bs + +#define LAYOUT_alice_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K31, K32, K33, K34, K35, K36, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \ + K41, K43, K44, K46, K49, K4B, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, KNO, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, KNO, K28, K29, K2A, K2B, K2C, K2D, KNO, K2F }, \ + { KNO, K31, K32, K33, K34, K35, K36, KNO, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { KNO, K41, KNO, K43, K44, KNO, K46, KNO, KNO, K49, KNO, K4B, KNO, KNO, KNO, K4F } \ +} + +#define LAYOUT_alice( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K31, K32, K33, K34, K35, K36, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \ + K41, K43, K44, K46, K49, K4B, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KNO, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, KNO, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, KNO, K28, K29, K2A, K2B, K2C, K2D, KNO, K2F }, \ + { KNO, K31, K32, K33, K34, K35, K36, KNO, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { KNO, K41, KNO, K43, K44, KNO, K46, KNO, KNO, K49, KNO, K4B, KNO, KNO, KNO, K4F } \ +} diff --git a/keyboards/edda/info.json b/keyboards/edda/info.json new file mode 100644 index 000000000000..5f48d79ed9aa --- /dev/null +++ b/keyboards/edda/info.json @@ -0,0 +1,156 @@ +{ + "keyboard_name": "Edda", + "url": "https://mekanisk.com", + "maintainer": "qmk", + "width": 19.75, + "height": 5.25, + "layouts": { + "LAYOUT_alice_split_bs": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"`", "x":1.75, "y":0.25}, + {"label":"1", "x":2.75, "y":0.25}, + {"label":"2", "x":3.75, "y":0}, + {"label":"3", "x":4.75, "y":0.25}, + {"label":"4", "x":5.75, "y":0.25}, + {"label":"5", "x":6.75, "y":0.25}, + {"label":"6", "x":7.75, "y":0.25}, + {"label":"7", "x":11, "y":0.25}, + {"label":"8", "x":12, "y":0.25}, + {"label":"9", "x":13, "y":0.25}, + {"label":"0", "x":14, "y":0.25}, + {"label":"-", "x":15, "y":0}, + {"label":"=", "x":16, "y":0.25}, + {"label":"Del", "x":17, "y":0.25}, + {"label":"Backspace", "x":18, "y":0.25}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.5, "y":1.25, "w":1.5}, + {"label":"Q", "x":3, "y":1.25}, + {"label":"W", "x":4.25, "y":1.25}, + {"label":"E", "x":5.25, "y":1.25}, + {"label":"R", "x":6.25, "y":1.25}, + {"label":"T", "x":7.25, "y":1.25}, + {"label":"Y", "x":10.5, "y":1.25}, + {"label":"U", "x":11.5, "y":1.25}, + {"label":"I", "x":12.5, "y":1.25}, + {"label":"O", "x":13.5, "y":1.25}, + {"label":"P", "x":14.75, "y":1.25}, + {"label":"{", "x":15.75, "y":1.25}, + {"label":"}", "x":16.75, "y":1.25}, + {"label":"|", "x":17.75, "y":1.25, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.5, "y":2.25, "w":1.75}, + {"label":"A", "x":3.25, "y":2.25}, + {"label":"S", "x":4.5, "y":2.25}, + {"label":"D", "x":5.5, "y":2.25}, + {"label":"F", "x":6.5, "y":2.25}, + {"label":"G", "x":7.5, "y":2.25}, + {"label":"H", "x":10.75, "y":2.25}, + {"label":"J", "x":11.75, "y":2.25}, + {"label":"K", "x":12.75, "y":2.25}, + {"label":"L", "x":13.75, "y":2.25}, + {"label":":", "x":15.25, "y":2.25}, + {"label":"\"", "x":16.25, "y":2.25}, + {"label":"Enter", "x":17.25, "y":2.25, "w":2.25}, + + {"label":"Shift", "x":1.5, "y":3.25, "w":2.25}, + {"label":"Z", "x":3.75, "y":3.25}, + {"label":"X", "x":5, "y":3.25}, + {"label":"C", "x":6, "y":3.25}, + {"label":"V", "x":7, "y":3.25}, + {"label":"B", "x":8, "y":3.25}, + {"label":"Fn", "x":10.25, "y":3.25}, + {"label":"N", "x":11.25, "y":3.25}, + {"label":"M", "x":12.25, "y":3.25}, + {"label":"<", "x":13.25, "y":3.25}, + {"label":">", "x":15, "y":3.25}, + {"label":"?", "x":16, "y":3.25}, + {"label":"Shift", "x":17, "y":3.25, "w":1.75}, + {"label":"Fn", "x":18.75, "y":3.25}, + + {"label":"Ctrl", "x":1.5, "y":4.25, "w":1.5}, + {"label":"Alt", "x":5, "y":4.25, "w":1.5}, + {"label":"Space", "x":6.5, "y":4.25, "w":2}, + {"label":"Menu", "x":8.5, "y":4.25}, + {"label":"Space", "x":10.25, "y":4.25, "w":2.75}, + {"label":"Alt", "x":13, "y":4.25, "w":1.5}, + {"label":"Ctrl", "x":18, "y":4.25, "w":1.5} + ] + }, + "LAYOUT_alice": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"`", "x":1.75, "y":0.25}, + {"label":"1", "x":2.75, "y":0.25}, + {"label":"2", "x":3.75, "y":0}, + {"label":"3", "x":4.75, "y":0.25}, + {"label":"4", "x":5.75, "y":0.25}, + {"label":"5", "x":6.75, "y":0.25}, + {"label":"6", "x":7.75, "y":0.25}, + {"label":"7", "x":11, "y":0.25}, + {"label":"8", "x":12, "y":0.25}, + {"label":"9", "x":13, "y":0.25}, + {"label":"0", "x":14, "y":0.25}, + {"label":"-", "x":15, "y":0}, + {"label":"=", "x":16, "y":0.25}, + {"label":"Backspace", "x":17, "y":0.25, "w":2}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.5, "y":1.25, "w":1.5}, + {"label":"Q", "x":3, "y":1.25}, + {"label":"W", "x":4.25, "y":1.25}, + {"label":"E", "x":5.25, "y":1.25}, + {"label":"R", "x":6.25, "y":1.25}, + {"label":"T", "x":7.25, "y":1.25}, + {"label":"Y", "x":10.5, "y":1.25}, + {"label":"U", "x":11.5, "y":1.25}, + {"label":"I", "x":12.5, "y":1.25}, + {"label":"O", "x":13.5, "y":1.25}, + {"label":"P", "x":14.75, "y":1.25}, + {"label":"{", "x":15.75, "y":1.25}, + {"label":"}", "x":16.75, "y":1.25}, + {"label":"|", "x":17.75, "y":1.25, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.5, "y":2.25, "w":1.75}, + {"label":"A", "x":3.25, "y":2.25}, + {"label":"S", "x":4.5, "y":2.25}, + {"label":"D", "x":5.5, "y":2.25}, + {"label":"F", "x":6.5, "y":2.25}, + {"label":"G", "x":7.5, "y":2.25}, + {"label":"H", "x":10.75, "y":2.25}, + {"label":"J", "x":11.75, "y":2.25}, + {"label":"K", "x":12.75, "y":2.25}, + {"label":"L", "x":13.75, "y":2.25}, + {"label":":", "x":15.25, "y":2.25}, + {"label":"\"", "x":16.25, "y":2.25}, + {"label":"Enter", "x":17.25, "y":2.25, "w":2.25}, + + {"label":"Shift", "x":1.5, "y":3.25, "w":2.25}, + {"label":"Z", "x":3.75, "y":3.25}, + {"label":"X", "x":5, "y":3.25}, + {"label":"C", "x":6, "y":3.25}, + {"label":"V", "x":7, "y":3.25}, + {"label":"B", "x":8, "y":3.25}, + {"label":"Fn", "x":10.25, "y":3.25}, + {"label":"N", "x":11.25, "y":3.25}, + {"label":"M", "x":12.25, "y":3.25}, + {"label":"<", "x":13.25, "y":3.25}, + {"label":">", "x":15, "y":3.25}, + {"label":"?", "x":16, "y":3.25}, + {"label":"Shift", "x":17, "y":3.25, "w":1.75}, + {"label":"Fn", "x":18.75, "y":3.25}, + + {"label":"Ctrl", "x":1.5, "y":4.25, "w":1.5}, + {"label":"Alt", "x":5, "y":4.25, "w":1.5}, + {"label":"Space", "x":6.5, "y":4.25, "w":2}, + {"label":"Menu", "x":8.5, "y":4.25}, + {"label":"Space", "x":10.25, "y":4.25, "w":2.75}, + {"label":"Alt", "x":13, "y":4.25, "w":1.5}, + {"label":"Ctrl", "x":18, "y":4.25, "w":1.5} + ] + } + } +} diff --git a/keyboards/edda/keymaps/default/keymap.c b/keyboards/edda/keymaps/default/keymap.c new file mode 100644 index 000000000000..d935a74826b6 --- /dev/null +++ b/keyboards/edda/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2021 Martin Arnstad +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BASE 0 +#define _FN1 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_alice_split_bs( + KC_ESC, KC_GRAVE, 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_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGUI, + KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_SPC, KC_RALT, KC_RCTL + ), + + [_FN1] = LAYOUT_alice_split_bs( + RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, + RGB_MOD, _______, _______, KC_UP, _______, _______, _______, RGB_SAI, RGB_HUI, RGB_VAI, _______, _______, _______, _______, _______, + RGB_RMOD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, _______, _______, _______, _______, + _______, BL_INC, BL_DEC, BL_TOGG, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RESET + ) +}; diff --git a/keyboards/edda/keymaps/via/keymap.c b/keyboards/edda/keymaps/via/keymap.c new file mode 100644 index 000000000000..9437fbc12722 --- /dev/null +++ b/keyboards/edda/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2021 Martin Arnstad +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_alice_split_bs( + KC_ESC, KC_GRAVE, 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_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGUI, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_alice_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_alice_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_alice_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/edda/keymaps/via/rules.mk b/keyboards/edda/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/edda/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/edda/readme.md b/keyboards/edda/readme.md new file mode 100644 index 000000000000..6bfe89b29a8d --- /dev/null +++ b/keyboards/edda/readme.md @@ -0,0 +1,21 @@ +# Edda PCB + +Alice layout PCB with top mounted USB C used in Mekanisk Edda + +* Keyboard Maintainer: [martin](https://github.com/arnstadm) +* Hardware Supported: [Edda PCB](https://tastatur.no/collections/forhandsbestilling-1/products/edda-pcb?variant=39481626001453) + +Make example for this keyboard (after setting up your build environment): + + make edda:default + +Flashing example for this keyboard: + + make edda: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 bootloader (DFU): + + Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware. + Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, disconnect the keyboard from your PC and reconnect it. diff --git a/keyboards/edda/rules.mk b/keyboards/edda/rules.mk new file mode 100644 index 000000000000..78a97cd3b956 --- /dev/null +++ b/keyboards/edda/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = qmk-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = alice alice_split_bs From b61613ccb4429af99a8d91ef41f86173409553ee Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 12 Aug 2021 07:24:58 -0700 Subject: [PATCH 214/328] Cospad Configurator touch-up (#13971) --- keyboards/cospad/info.json | 56 ++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/keyboards/cospad/info.json b/keyboards/cospad/info.json index 1cd197d3fdd9..f962cd0d5487 100644 --- a/keyboards/cospad/info.json +++ b/keyboards/cospad/info.json @@ -5,8 +5,7 @@ "width": 4, "height": 6, "layouts": { - "LAYOUT_numpad_6x4": { - "key_count": 21, + "LAYOUT_ortho_6x4": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -21,23 +20,25 @@ {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, + {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, - {"x":3, "y":2, "h":2}, + {"x":3, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, + {"x":3, "y":4}, - {"x":0, "y":5, "w":2}, + {"x":0, "y":5}, + {"x":1, "y":5}, {"x":2, "y":5}, - {"x":3, "y":4, "h":2} + {"x":3, "y":5} ] }, "LAYOUT_gamepad_6x4": { - "key_count": 23, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -69,8 +70,37 @@ {"x":3, "y":5} ] }, - "LAYOUT_ortho_6x4": { - "key_count": 24, + "LAYOUT_numpad_6x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":2, "h":2}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + + {"x":0, "y":5, "w":2}, + {"x":2, "y":5}, + {"x":3, "y":4, "h":2} + ] + }, + "LAYOUT_numpad_6x4_split_plus": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -95,16 +125,13 @@ {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, - {"x":3, "y":4}, - {"x":0, "y":5}, - {"x":1, "y":5}, + {"x":0, "y":5, "w":2}, {"x":2, "y":5}, - {"x":3, "y":5} + {"x":3, "y":4, "h":2} ] }, "LAYOUT_numpad_6x4_split_plus_zero": { - "key_count": 23, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -137,7 +164,6 @@ ] }, "LAYOUT_numpad_6x4_split_zero": { - "key_count": 22, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -167,6 +193,6 @@ {"x":2, "y":5}, {"x":3, "y":4, "h":2} ] - } + } } } From 1e9d91d4ef5db1a4497767b165303e39069459cb Mon Sep 17 00:00:00 2001 From: sato-takashi Date: Thu, 12 Aug 2021 23:43:01 +0900 Subject: [PATCH 215/328] [Keyboard] Add EndZone34 (#13847) Co-authored-by: Drashna Jaelre --- keyboards/takashicompany/endzone34/config.h | 151 +++++++++++++++ .../takashicompany/endzone34/endzone34.c | 17 ++ .../takashicompany/endzone34/endzone34.h | 39 ++++ keyboards/takashicompany/endzone34/info.json | 183 ++++++++++++++++++ .../endzone34/keymaps/default/keymap.c | 112 +++++++++++ .../endzone34/keymaps/via/keymap.c | 43 ++++ .../endzone34/keymaps/via/rules.mk | 1 + keyboards/takashicompany/endzone34/readme.md | 20 ++ keyboards/takashicompany/endzone34/rules.mk | 23 +++ 9 files changed, 589 insertions(+) create mode 100644 keyboards/takashicompany/endzone34/config.h create mode 100644 keyboards/takashicompany/endzone34/endzone34.c create mode 100644 keyboards/takashicompany/endzone34/endzone34.h create mode 100644 keyboards/takashicompany/endzone34/info.json create mode 100644 keyboards/takashicompany/endzone34/keymaps/default/keymap.c create mode 100644 keyboards/takashicompany/endzone34/keymaps/via/keymap.c create mode 100644 keyboards/takashicompany/endzone34/keymaps/via/rules.mk create mode 100644 keyboards/takashicompany/endzone34/readme.md create mode 100644 keyboards/takashicompany/endzone34/rules.mk diff --git a/keyboards/takashicompany/endzone34/config.h b/keyboards/takashicompany/endzone34/config.h new file mode 100644 index 000000000000..ff6697623b54 --- /dev/null +++ b/keyboards/takashicompany/endzone34/config.h @@ -0,0 +1,151 @@ +/* +Copyright 2021 takashicompany + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7463 // tc = takashicompany +#define PRODUCT_ID 0x0006 +#define DEVICE_VER 0x0001 +#define MANUFACTURER takashicompany +#define PRODUCT EndZone34 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 10 + +/* + * 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 { B3, B2, B6, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, D4, C6, D7, E6, B4 } +#define UNUSED_PINS + +/* 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 9 + #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 */ +/*== all animations enable ==*/ +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/takashicompany/endzone34/endzone34.c b/keyboards/takashicompany/endzone34/endzone34.c new file mode 100644 index 000000000000..5b3149054707 --- /dev/null +++ b/keyboards/takashicompany/endzone34/endzone34.c @@ -0,0 +1,17 @@ +/* Copyright 2021 takashicompany + * + * 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 "endzone34.h" diff --git a/keyboards/takashicompany/endzone34/endzone34.h b/keyboards/takashicompany/endzone34/endzone34.h new file mode 100644 index 000000000000..f3e5c88b6357 --- /dev/null +++ b/keyboards/takashicompany/endzone34/endzone34.h @@ -0,0 +1,39 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, \ + k11, k12, k13, k14, k15, k16, k17, k18, k19, k20, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, \ + k31, k32, k33, k34 \ +) { \ + { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10 }, \ + { k11, k12, k13, k14, k15, k16, k17, k18, k19, k20 }, \ + { k21, k22, k23, k24, k25, k26, k27, k28, k29, k30 }, \ + { KC_NO, KC_NO, KC_NO, k31, k32, k33, k34, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/takashicompany/endzone34/info.json b/keyboards/takashicompany/endzone34/info.json new file mode 100644 index 000000000000..41fcc1331108 --- /dev/null +++ b/keyboards/takashicompany/endzone34/info.json @@ -0,0 +1,183 @@ +{ + "keyboard_name": "EndZone34", + "url": "https://github.com/takashicompany/endzone34", + "maintainer": "takashicompany", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "W", + "x": 1, + "y": 0 + }, + { + "label": "E", + "x": 2, + "y": 0 + }, + { + "label": "R", + "x": 3, + "y": 0 + }, + { + "label": "T", + "x": 4, + "y": 0 + }, + { + "label": "Y", + "x": 7, + "y": 0 + }, + { + "label": "U", + "x": 8, + "y": 0 + }, + { + "label": "I", + "x": 9, + "y": 0 + }, + { + "label": "O", + "x": 10, + "y": 0 + }, + { + "label": "Q", + "x": 0, + "y": 0.5 + }, + { + "label": "P", + "x": 11, + "y": 0.5 + }, + { + "label": "S", + "x": 1, + "y": 1 + }, + { + "label": "D", + "x": 2, + "y": 1 + }, + { + "label": "F", + "x": 3, + "y": 1 + }, + { + "label": "G", + "x": 4, + "y": 1 + }, + { + "label": "H", + "x": 7, + "y": 1 + }, + { + "label": "J", + "x": 8, + "y": 1 + }, + { + "label": "K", + "x": 9, + "y": 1 + }, + { + "label": "L", + "x": 10, + "y": 1 + }, + { + "label": "A", + "x": 0, + "y": 1.5 + }, + { + "label": "Enter", + "x": 11, + "y": 1.5 + }, + { + "label": "X", + "x": 1, + "y": 2 + }, + { + "label": "C", + "x": 2, + "y": 2 + }, + { + "label": "V", + "x": 3, + "y": 2 + }, + { + "label": "B", + "x": 4, + "y": 2 + }, + { + "label": "N", + "x": 7, + "y": 2 + }, + { + "label": "M", + "x": 8, + "y": 2 + }, + { + "label": ",", + "x": 9, + "y": 2 + }, + { + "label": ".", + "x": 10, + "y": 2 + }, + { + "label": "Z", + "x": 0, + "y": 2.5 + }, + { + "label": "Back Space", + "x": 11, + "y": 2.5 + }, + { + "label": "⇓", + "x": 4, + "y": 3 + }, + { + "label": "Tab", + "x": 5, + "y": 3 + }, + { + "label": "Space", + "x": 6, + "y": 3 + }, + { + "label": "⇑", + "x": 7, + "y": 3 + } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/endzone34/keymaps/default/keymap.c b/keyboards/takashicompany/endzone34/keymaps/default/keymap.c new file mode 100644 index 000000000000..7317ab477844 --- /dev/null +++ b/keyboards/takashicompany/endzone34/keymaps/default/keymap.c @@ -0,0 +1,112 @@ +/* Copyright 2021 takashicompany + * + * 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] = { + + LAYOUT( + LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, + SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, + ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_SPC, LT(1, KC_LANG1)), + + LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, + KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +//Variable that stores the number of times the key was pressed +static uint16_t press_count = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + // Increment the counter when a key is pressed + if (record->event.pressed) { + press_count++; + } + + return true; +} + +#ifdef OLED_DRIVER_ENABLE + +static void render_logo(void) { + + static const char PROGMEM my_logo[] = { + 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x39, 0x29, 0x29, 0x29, 0x29, 0x29, 0xe9, 0x0f, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xf8, 0x08, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0xbf, 0xa0, 0xa0, 0xa7, 0xa5, 0xa5, 0xa5, 0xa5, 0x25, 0x25, 0x3c, 0x00, 0x1f, + 0x20, 0x3e, 0x02, 0x3e, 0x20, 0x1f, 0x20, 0x2e, 0x2a, 0x2e, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x87, 0x44, 0x24, 0x14, 0x0c, 0x00, 0xc0, 0xa0, 0x90, 0x88, 0x87, 0x00, 0xe0, 0x10, 0xd0, 0x50, + 0xd0, 0x10, 0xe0, 0x10, 0xd0, 0x50, 0xd0, 0x10, 0xe0, 0x10, 0xd0, 0x50, 0x50, 0x10, 0xf0, 0x00, + 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x00, 0x03, 0x04, 0x05, 0x05, + 0x05, 0x04, 0x03, 0x04, 0x07, 0x00, 0x07, 0x04, 0x03, 0x04, 0x05, 0x05, 0x05, 0x05, 0x07, 0x00 + }; + + oled_write_raw_P(my_logo, sizeof(my_logo)); +} + +void oled_task_user(void) { + + render_logo(); + + oled_set_cursor(0, 5); + + oled_write_ln_P(PSTR("Layer"), false); + uint8_t n = get_highest_layer(layer_state); + char layer_str[4]; + layer_str[3] = '\0'; + layer_str[2] = '0' + n % 10; + layer_str[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; + layer_str[0] = n / 10 ? '0' + n / 10 : ' '; + + oled_write_ln(layer_str, false); + + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + + oled_write_ln_P(PSTR("Count"), false); + uint16_t m = press_count; + char count_str[6]; + count_str[5] = '\0'; + count_str[4] = '0' + m % 10; + count_str[3] = (m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + count_str[2] = (m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + count_str[1] = (m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + count_str[0] = m / 10 ? '0' + m / 10 : ' '; + + oled_write_ln(count_str, false); + +} +#endif diff --git a/keyboards/takashicompany/endzone34/keymaps/via/keymap.c b/keyboards/takashicompany/endzone34/keymaps/via/keymap.c new file mode 100644 index 000000000000..5dbc4e13cf4c --- /dev/null +++ b/keyboards/takashicompany/endzone34/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 takashicompany + * + * 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] = { + + LAYOUT( + LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, + SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, + ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_SPC, LT(1, KC_LANG1)), + + LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, + KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/takashicompany/endzone34/keymaps/via/rules.mk b/keyboards/takashicompany/endzone34/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/takashicompany/endzone34/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/endzone34/readme.md b/keyboards/takashicompany/endzone34/readme.md new file mode 100644 index 000000000000..c4844f7f6835 --- /dev/null +++ b/keyboards/takashicompany/endzone34/readme.md @@ -0,0 +1,20 @@ +# EndZone34 + +![endzone34](https://github.com/takashicompany/endzone34/blob/master/images/main_qmk.jpg?raw=true) + +A simple yet fun to use 30% keyboard. +Also supports MX sockets and OLED. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: EndZone34 PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/endzone34 + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/endzone34:default + +Flashing example for this keyboard: + + make takashicompany/endzone34: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). diff --git a/keyboards/takashicompany/endzone34/rules.mk b/keyboards/takashicompany/endzone34/rules.mk new file mode 100644 index 000000000000..9a4130536909 --- /dev/null +++ b/keyboards/takashicompany/endzone34/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +OLED_DRIVER_ENABLE = yes From 30843f8329315426ff433a40095f1de2b2669e57 Mon Sep 17 00:00:00 2001 From: Jacob Jerrell <86279411+jjerrell@users.noreply.github.com> Date: Thu, 12 Aug 2021 09:44:15 -0500 Subject: [PATCH 216/328] [Keymap] JJerrell - Add Userspace and ZSA Keyboard Keymaps (#13548) --- .../moonlander/keymaps/jjerrell/config.h | 27 ++ .../moonlander/keymaps/jjerrell/keymap.c | 117 +++++++ .../moonlander/keymaps/jjerrell/readme.md | 3 + .../moonlander/keymaps/jjerrell/rules.mk | 1 + layouts/community/ergodox/bocaj/config.h | 4 - layouts/community/ergodox/bocaj/keymap.c | 175 ---------- layouts/community/ergodox/bocaj/readme.md | 28 -- layouts/community/ergodox/bocaj/rules.mk | 14 - layouts/community/ergodox/jjerrell/config.h | 21 ++ layouts/community/ergodox/jjerrell/keymap.c | 129 +++++++ layouts/community/ergodox/jjerrell/readme.md | 5 + layouts/community/ergodox/jjerrell/rules.mk | 14 + layouts/community/ortho_4x12/bocaj/config.h | 106 ------ layouts/community/ortho_4x12/bocaj/keymap.c | 287 --------------- layouts/community/ortho_4x12/bocaj/readme.md | 23 -- layouts/community/ortho_4x12/bocaj/rules.mk | 43 --- .../community/ortho_4x12/jjerrell/config.h | 57 +++ .../community/ortho_4x12/jjerrell/keymap.c | 227 ++++++++++++ .../community/ortho_4x12/jjerrell/readme.md | 7 + .../community/ortho_4x12/jjerrell/rules.mk | 8 + users/bocaj/.gitignore | 1 - users/bocaj/.gitlab-ci.yml | 24 -- users/bocaj/bocaj.c | 210 ----------- users/bocaj/bocaj.h | 73 ---- users/bocaj/config.h | 113 ------ users/bocaj/process_records.c | 111 ------ users/bocaj/process_records.h | 44 --- users/bocaj/readme.md | 5 - users/bocaj/rgb_matrix_stuff.c | 106 ------ users/bocaj/rgb_matrix_stuff.h | 10 - users/bocaj/wrappers.h | 193 ---------- users/jjerrell/.gitignore | 1 + users/jjerrell/config.h | 26 ++ users/jjerrell/jjerrell.c | 138 ++++++++ users/jjerrell/jjerrell.h | 53 +++ users/jjerrell/process_records.c | 139 ++++++++ users/jjerrell/process_records.h | 41 +++ users/jjerrell/readme.md | 50 +++ users/{bocaj => jjerrell}/rules.mk | 11 +- users/jjerrell/wrappers.h | 329 ++++++++++++++++++ 40 files changed, 1399 insertions(+), 1575 deletions(-) create mode 100644 keyboards/moonlander/keymaps/jjerrell/config.h create mode 100644 keyboards/moonlander/keymaps/jjerrell/keymap.c create mode 100644 keyboards/moonlander/keymaps/jjerrell/readme.md create mode 100644 keyboards/moonlander/keymaps/jjerrell/rules.mk delete mode 100644 layouts/community/ergodox/bocaj/config.h delete mode 100644 layouts/community/ergodox/bocaj/keymap.c delete mode 100644 layouts/community/ergodox/bocaj/readme.md delete mode 100644 layouts/community/ergodox/bocaj/rules.mk create mode 100644 layouts/community/ergodox/jjerrell/config.h create mode 100644 layouts/community/ergodox/jjerrell/keymap.c create mode 100644 layouts/community/ergodox/jjerrell/readme.md create mode 100644 layouts/community/ergodox/jjerrell/rules.mk delete mode 100644 layouts/community/ortho_4x12/bocaj/config.h delete mode 100644 layouts/community/ortho_4x12/bocaj/keymap.c delete mode 100644 layouts/community/ortho_4x12/bocaj/readme.md delete mode 100644 layouts/community/ortho_4x12/bocaj/rules.mk create mode 100644 layouts/community/ortho_4x12/jjerrell/config.h create mode 100644 layouts/community/ortho_4x12/jjerrell/keymap.c create mode 100644 layouts/community/ortho_4x12/jjerrell/readme.md create mode 100644 layouts/community/ortho_4x12/jjerrell/rules.mk delete mode 100644 users/bocaj/.gitignore delete mode 100644 users/bocaj/.gitlab-ci.yml delete mode 100644 users/bocaj/bocaj.c delete mode 100644 users/bocaj/bocaj.h delete mode 100644 users/bocaj/config.h delete mode 100644 users/bocaj/process_records.c delete mode 100644 users/bocaj/process_records.h delete mode 100644 users/bocaj/readme.md delete mode 100644 users/bocaj/rgb_matrix_stuff.c delete mode 100644 users/bocaj/rgb_matrix_stuff.h delete mode 100644 users/bocaj/wrappers.h create mode 100644 users/jjerrell/.gitignore create mode 100644 users/jjerrell/config.h create mode 100644 users/jjerrell/jjerrell.c create mode 100644 users/jjerrell/jjerrell.h create mode 100644 users/jjerrell/process_records.c create mode 100644 users/jjerrell/process_records.h create mode 100644 users/jjerrell/readme.md rename users/{bocaj => jjerrell}/rules.mk (73%) create mode 100644 users/jjerrell/wrappers.h diff --git a/keyboards/moonlander/keymaps/jjerrell/config.h b/keyboards/moonlander/keymaps/jjerrell/config.h new file mode 100644 index 000000000000..1fd17fbbe33f --- /dev/null +++ b/keyboards/moonlander/keymaps/jjerrell/config.h @@ -0,0 +1,27 @@ +/* Copyright 2020 ZSA Technology Labs, Inc <@zsa> + * Copyright 2020 Jack Humbert + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Jacob Jerrell <@jjerrell> + * + * 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 ORYX_CONFIGURATOR + +#undef PRODUCT +#define PRODUCT Moonlander Mark I - Modified by <@jjerrell> + +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/moonlander/keymaps/jjerrell/keymap.c b/keyboards/moonlander/keymaps/jjerrell/keymap.c new file mode 100644 index 000000000000..012b77367890 --- /dev/null +++ b/keyboards/moonlander/keymaps/jjerrell/keymap.c @@ -0,0 +1,117 @@ +/** + * Copyright (C) 2021 Jerrell, Jacob <@jjerrell> + * + * This file is part of qmk_firmware. + * + * qmk_firmware is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * qmk_firmware 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 qmk_firmware. If not, see . + */ + +#include "jjerrell.h" + +enum moonlander_layers { + _GAME_LOWER = LAYER_SAFE_RANGE, + // _GAME_RAISE, +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_WORKMAN] = LAYOUT_moonlander_mods( + __________________WORKMN_L1__________________, __________________WORKMN_R1__________________, + __________________WORKMN_L2__________________, __________________WORKMN_R2__________________, + __________________WORKMN_L3__________________, __________________WORKMN_R3__________________, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX + ), + + [_LOWER] = LAYOUT_moonlander_mods( + __________________LOWER_L1___________________, __________________LOWER_R1___________________, + __________________LOWER_L2___________________, __________________LOWER_R2___________________, + __________________LOWER_L3___________________, __________________LOWER_R3___________________, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_0, KC_DOT, KC_COMM, KC_PLUS + ), + + [_RAISE] = LAYOUT_moonlander_common( + __________________RAISE_L1___________________, __________________RAISE_R1___________________, + __________________RAISE_L2___________________, __________________RAISE_R2___________________, + __________________RAISE_L3___________________, __________________RAISE_R3___________________, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX + ), + + [_ADJUST] = LAYOUT_moonlander_common( + __________________ADJUST_L1__________________, __________________ADJUST_R1__________________, + __________________ADJUST_L2__________________, __________________ADJUST_R2__________________, + __________________ADJUST_L3__________________, __________________ADJUST_R3__________________, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX + ), + + [_SPECIAL] = LAYOUT_moonlander_common( + XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_WH_L, KC_WH_U, KC_WH_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LALT, KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX + ), + + [_GAME] = LAYOUT_moonlander_gamepad( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, __________________QWERTY_L1__________________, KC_SLSH, + KC_LALT, __________________QWERTY_L2__________________, KC_BSLS, + KC_LSFT, __________________QWERTY_L3__________________, + KC_LGUI, MACRO_1, MACRO_2, MACRO_3, MACRO_4, KC_LOCK, + KC_SPC, KC_BTN2, MO(_LOWER) + ), + [_GAME_LOWER] = LAYOUT_moonlander_gamepad( + KC_GRV, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + KC_TAB, __________________QWERTY_L1__________________, KC_SLSH, + KC_LALT, __________________QWERTY_L2__________________, KC_BSLS, + KC_LSFT, __________________QWERTY_L3__________________, + KC_LGUI, MACRO_5, MACRO_6, MACRO_7, MACRO_8, KC_LOCK, + KC_SPC, KC_BTN2, MO(_LOWER) + ) +}; +// clang-format on + +layer_state_t layer_state_set_keymap(layer_state_t state) { + ML_LED_1(0); + ML_LED_2(0); + ML_LED_3(0); + ML_LED_4(0); + ML_LED_5(0); + ML_LED_6(0); + state = update_tri_layer_state(state, _GAME, _LOWER, _GAME_LOWER); + switch (get_highest_layer(state)) { + case 1: + ML_LED_1(1); + ML_LED_4(1); + break; + case 2: + ML_LED_2(1); + ML_LED_5(1); + break; + case 3: + ML_LED_3(1); + break; + case 4: + ML_LED_4(1); + break; + case 5: + ML_LED_5(1); + break; + case 6: + ML_LED_6(1); + break; + default: + break; + } + + return state; +} diff --git a/keyboards/moonlander/keymaps/jjerrell/readme.md b/keyboards/moonlander/keymaps/jjerrell/readme.md new file mode 100644 index 000000000000..51476f8ab998 --- /dev/null +++ b/keyboards/moonlander/keymaps/jjerrell/readme.md @@ -0,0 +1,3 @@ +# Jacob Jerrell's Moonlander Keymap + +Concrete proof and acceptance of a problem. There is some not so custom Moonlander LED control in here but everything else is implemented in [my userspace](../../../../users/jjerrell/). diff --git a/keyboards/moonlander/keymaps/jjerrell/rules.mk b/keyboards/moonlander/keymaps/jjerrell/rules.mk new file mode 100644 index 000000000000..ef72559a0c1f --- /dev/null +++ b/keyboards/moonlander/keymaps/jjerrell/rules.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes diff --git a/layouts/community/ergodox/bocaj/config.h b/layouts/community/ergodox/bocaj/config.h deleted file mode 100644 index 621ae784cfb1..000000000000 --- a/layouts/community/ergodox/bocaj/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -#define LEADER_TIMEOUT 250 -#define LEADER_PER_KEY_TIMING diff --git a/layouts/community/ergodox/bocaj/keymap.c b/layouts/community/ergodox/bocaj/keymap.c deleted file mode 100644 index ba105a8f1d04..000000000000 --- a/layouts/community/ergodox/bocaj/keymap.c +++ /dev/null @@ -1,175 +0,0 @@ -/* -Copyright 2020 Jacob Jerrell @JacobJerrell - -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 "bocaj.h" - -/* - * The `LAYOUT_ergodox_pretty_base` macro is a template to allow the use of - * identical modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, - * etc), so that there is no need to set them up for each layout, and modify - * all of them if I want to change them. This helps to keep consistency and - * ease of use. K## is a placeholder to pass through the individual keycodes - */ -#define LAYOUT_ergodox_bocaj(...) WRAPPER_ergodox_bocaj(__VA_ARGS__) -#define LAYOUT_ergodox_bocaj_WIN(...) WRAPPER_ergodox_bocaj_WIN(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_WORKMAN] = LAYOUT_ergodox_bocaj( - KC_ESC, ________________NUMBER_LEFT________________, KC_ARRW, KC_MINS, ________________NUMBER_RIGHT_______________, KC_EQUAL, - KC_DEL, _________________WORKMAN_L1________________, KC_LPRN, KC_RPRN, _________________WORKMAN_R1________________, KC_BSLS, - _______, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, - KC_LSFT, _________________WORKMAN_L3________________, KC_LBRC, KC_RBRC, _________________WORKMAN_R3________________, _______, - MO_MOD, KC_PGUP, KC_HOME, KC_UP, KC_LEFT, KC_RIGHT, KC_DOWN, KC_END, KC_PGDN, WORKMAN, - KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, - KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, - KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER - ), - - [_WWORKMAN] = LAYOUT_ergodox_bocaj_WIN( - KC_ESC, ________________NUMBER_LEFT________________, KC_ARRW, KC_MINS, ________________NUMBER_RIGHT_______________, KC_EQUAL, - KC_DEL, _________________WORKMAN_L1________________, KC_LPRN, KC_RPRN, _________________WORKMAN_R1________________, KC_BSLS, - _______, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, - KC_LSFT, _________________WORKMAN_L3________________, KC_LBRC, KC_RBRC, _________________WORKMAN_R3________________, _______, - MO_MOD, KC_PGUP, KC_HOME, KC_UP, KC_LEFT, KC_RIGHT, KC_DOWN, KC_END, KC_PGDN, WORKMAN, - KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, - KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, - KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER - ), - - [_LOWER] = LAYOUT_ergodox_bocaj( - KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_BSLS, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_4, KC_5, KC_6, KC_ASTR, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_PLUS, _______, - _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, KC_MINS, _______, - KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, - KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, - KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER - ), - - [_RAISE] = LAYOUT_ergodox_bocaj( - KC_TILD, _________________RAISE_L1__________________, _______, _______, _________________RAISE_R1__________________, _______, - KC_F11, _________________RAISE_L2__________________, _______, _______, _________________RAISE_R2__________________, KC_F12, - _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, - _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, _______, ___________________BLANK___________________, _______, - ___________________BLANK___________________, ___________________BLANK___________________, - KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, - KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, - KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER - ), - - [_ADJUST] = LAYOUT_ergodox_pretty( - KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST, - VRSN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, - _______, KC__MUTE, KC__VOLDOWN, KC__VOLUP, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, - KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, - KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER - ), - - // Wrapping Mouse-Wheel Keys with `X_T()` style functions seems - // to break the mouse button. So we can't use the wrapper here. - [_MOD] = LAYOUT_ergodox_pretty( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_WH_D, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, _______, _______, - _______, _______, KC_WH_L, KC_WH_U, KC_WH_R, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, - _______,_______, /* <- LHS/RHS -> */ _______,_______, - _______, /* <- LHS/RHS -> */ _______, - KC_BTN1,KC_BTN2,_______, /* <- LHS/RHS -> */ _______,KC_BTN3,KC_BTN4 - ) - -}; -// clang-format on - -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void matrix_init_keymap(void) {}; - -// Runs whenever there is a layer state change. -layer_state_t layer_state_set_keymap(layer_state_t state) { - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - - uint8_t layer = get_highest_layer(state); - switch (layer) { - case _LOWER: - ergodox_right_led_3_on(); - break; - case _MOD: - ergodox_right_led_2_on(); - break; - case _RAISE: - ergodox_right_led_1_on(); - break; - case _ADJUST: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - break; - default: - break; - } - - ergodox_right_led_1_set(25); - ergodox_right_led_2_set(25); - ergodox_right_led_3_set(25); - - return state; -}; - -void matrix_scan_keymap(void) { - uint8_t modifiers = get_mods(); - uint8_t led_usb_state = host_keyboard_leds(); - uint8_t one_shot = get_oneshot_mods(); - uint8_t layer_is_workman = layer_state_is(_WORKMAN); - - if ((modifiers) && (layer_is_workman)) { - if (modifiers & MODS_SHIFT_MASK || led_usb_state & (1< +// +// This file is part of qmk_firmware. +// +// qmk_firmware is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// qmk_firmware 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 qmk_firmware. If not, see . + +#ifdef KEYBOARD_ergodox_ez +#undef PRODUCT +#define PRODUCT ErgoDox EZ - Modified by <@jjerrell> +#endif diff --git a/layouts/community/ergodox/jjerrell/keymap.c b/layouts/community/ergodox/jjerrell/keymap.c new file mode 100644 index 000000000000..110a8aba63fd --- /dev/null +++ b/layouts/community/ergodox/jjerrell/keymap.c @@ -0,0 +1,129 @@ +/** + * Copyright (C) 2021 Jerrell, Jacob <@jjerrell> + * + * This file is part of qmk_firmware. + * + * qmk_firmware is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * qmk_firmware 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 qmk_firmware. If not, see . + */ + +#include "jjerrell.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [_WORKMAN] = LAYOUT_ergodox_mods( + __________________WORKMN_L1__________________, __________________WORKMN_R1__________________, + __________________WORKMN_L2__________________, __________________WORKMN_R2__________________, + __________________WORKMN_L3__________________, __________________WORKMN_R3__________________, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX + ), + /* Lower - Nav/Select/Nums */ + [_LOWER] = LAYOUT_ergodox_mods( + __________________LOWER_L1___________________, __________________LOWER_R1___________________, + __________________LOWER_L2___________________, __________________LOWER_R2___________________, + __________________LOWER_L3___________________, __________________LOWER_R3___________________, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_0, KC_DOT, KC_COMM, KC_PLUS + ), + /* Raise - Symbols */ + [_RAISE] = LAYOUT_ergodox_common( + __________________RAISE_L1___________________, __________________RAISE_R1___________________, + __________________RAISE_L2___________________, __________________RAISE_R2___________________, + __________________RAISE_L3___________________, __________________RAISE_R3___________________, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX + ), + /* Adjust (Lower + Raise) */ + [_ADJUST] = LAYOUT_ergodox_common( + __________________ADJUST_L1__________________, __________________ADJUST_R1__________________, + __________________ADJUST_L2__________________, __________________ADJUST_R2__________________, + __________________ADJUST_L3__________________, __________________ADJUST_R3__________________, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX + ), + [_SPECIAL] = LAYOUT_ergodox_common( + XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_WH_L, KC_WH_U, KC_WH_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LALT, KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX + ) +// clang-format on +}; + +#ifdef KEYBOARD_ergodox_ez +// Runs whenever there is a layer state change. +layer_state_t layer_state_set_keymap(layer_state_t state) { + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + uint8_t layer = get_highest_layer(state); + switch (layer) { + case _LOWER: + ergodox_right_led_3_on(); + break; + case _RAISE: + ergodox_right_led_1_on(); + break; + case _ADJUST: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; + case _SPECIAL: + ergodox_right_led_2_on(); + break; + default: + break; + } + + ergodox_right_led_1_set(25); + ergodox_right_led_2_set(25); + ergodox_right_led_3_set(25); + + return state; +}; + +void matrix_scan_keymap(void) { + uint8_t modifiers = get_mods(); + uint8_t led_usb_state = host_keyboard_leds(); + uint8_t one_shot = get_oneshot_mods(); + uint8_t layer_is_workman = layer_state_is(_WORKMAN); + + if ((modifiers) && (layer_is_workman)) { + if (modifiers & MOD_MASK_SHIFT || led_usb_state & (1< @JacobJerrell - -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 "bocaj.h" - -#ifdef BACKLIGHT_ENABLE -enum planck_keycodes { - BACKLIT = NEW_SAFE_RANGE, - TH_LVL, -}; - -#else -# define BACKLIT OSM(MOD_LSFT) -enum planck_keycodes { - TH_LVL = NEW_SAFE_RANGE, -}; -#endif - -/* - * Tap/Hold Wrapper - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | |Shift | Cmd | Alt | | | Alt | Cmd |Shift | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Ctrl | | | | | | | | | Ctrl | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | |Lower | |Raise | | | | | - * `-----------------------------------------------------------------------------------' - */ -#define LAYOUT_ortho_4x12_bocaj(...) WRAPPER_planck_bocaj(__VA_ARGS__) - -/* - * Base Alphanumeric Wrapper + Tap/Hold Wrapper - * ,-----------------------------------------------------------------------------------. - * | Esc | | | | | | | | | | | - | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | | | | | HYPR | MEH | | | | | ' | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| | | | | | | | | | | TTMOD| - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | MOMOD| Lead | Up | Left |BkSpc | Space |Enter |Right | Down | XXX | XXX | - * `-----------------------------------------------------------------------------------' - */ -#define LAYOUT_ortho_4x12_bocaj_base(...) WRAPPER_planck_bocaj_base(__VA_ARGS__) -#define LAYOUT_ortho_4x12_bocaj_base_WIN(...) WRAPPER_planck_bocaj_base_WIN(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_WORKMAN] = LAYOUT_ortho_4x12_bocaj_base( - _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, - _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, - _________________WORKMAN_L3________________, _________________WORKMAN_R3________________ - ), - [_WWORKMAN] = LAYOUT_ortho_4x12_bocaj_base_WIN( - _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, - _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, - _________________WORKMAN_L3________________, _________________WORKMAN_R3________________ - ), - - [_QWERTY] = LAYOUT_ortho_4x12_bocaj_base( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - [_WQWERTY] = LAYOUT_ortho_4x12_bocaj_base_WIN( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - - [_LOWER] = LAYOUT_ortho_4x12_bocaj( - ___________________LOWER_L1_EXT____________________, ___________________LOWER_R1_EXT____________________, - ___________________LOWER_L2_EXT____________________, ___________________LOWER_R2_EXT____________________, - ___________________LOWER_L3_EXT____________________, ___________________LOWER_R3_EXT____________________, - _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, _______, _______ - ), - - [_RAISE] = LAYOUT_ortho_4x12_bocaj( - KC_TILD, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_EQUAL, - KC_F11, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_F12, - _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJUST] = WRAPPER_ortho_4x12( - KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST, - VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, - TH_LVL, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, - HPT_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - -}; -// clang-format on - -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { -#ifdef BACKLIGHT_ENABLE - case BACKLIT: - if (record->event.pressed) { - register_code(KC_RSFT); -# ifdef BACKLIGHT_ENABLE - backlight_step(); -# endif - } else { - unregister_code(KC_RSFT); - } - break; -#endif -#ifdef KEYBOARD_planck_ez - case TH_LVL: - if (record->event.pressed) { - keyboard_config.led_level++; - if (keyboard_config.led_level > 4) { - keyboard_config.led_level = 0; - } - planck_ez_right_led_level((uint8_t)keyboard_config.led_level * 255 / 4); - planck_ez_left_led_level((uint8_t)keyboard_config.led_level * 255 / 4); - eeconfig_update_kb(keyboard_config.raw); - layer_state_set_kb(layer_state); - } - break; -#endif - } - return true; -} - -bool music_mask_user(uint16_t keycode) { - switch (keycode) { - default: - return true; - } -} - -#ifdef RGB_MATRIX_ENABLE - -// clang-format off -void suspend_power_down_keymap(void) { - rgb_matrix_set_suspend_state(true); -} - -void suspend_wakeup_init_keymap(void) { - rgb_matrix_set_suspend_state(false); -} -// clang-format on - -void rgb_matrix_indicators_user(void) { - uint8_t this_mod = get_mods(); - uint8_t this_led = host_keyboard_leds(); - uint8_t this_osm = get_oneshot_mods(); - bool is_ez; -# ifdef KEYBOARD_planck_ez - is_ez = true; -# endif - - if (g_suspend_state || !rgb_matrix_config.enable) return; - -# if defined(RGBLIGHT_ENABLE) - if (!userspace_config.rgb_layer_change) -# else - if (userspace_config.rgb_layer_change) -# endif - { - switch (get_highest_layer(layer_state)) { - case _MOD: - rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _RAISE: - rgb_matrix_layer_helper(HSV_BLUE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _LOWER: - rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _ADJUST: - rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - default: { - bool mods_enabled = false; - switch (get_highest_layer(default_layer_state)) { - case _QWERTY: - rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _WQWERTY: - rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _WORKMAN: - rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _WWORKMAN: - rgb_matrix_layer_helper(HSV_GREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - } - break; - } - } - } - - switch (get_highest_layer(default_layer_state)) { - case _QWERTY: - rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0xFF); - break; - case _WORKMAN: - rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21); - break; - } - - if ((this_mod | this_osm) & MODS_SHIFT_MASK || this_led & (1 << USB_LED_CAPS_LOCK)) { - rgb_matrix_set_color_row(0, 0x00, 0xFF, 0x00); - } - if ((this_mod | this_osm) & MODS_CTRL_MASK && (this_mod | this_osm) & MODS_GUI_MASK) { - rgb_matrix_set_color_row(1, 0xFF, 0xD9, 0xFF); - } else if ((this_mod | this_osm) & MODS_CTRL_MASK) { - rgb_matrix_set_color_row(1, 0xFF, 0x00, 0x00); - } else if ((this_mod | this_osm) & MODS_GUI_MASK) { - rgb_matrix_set_color_row(1, 0xFF, 0xD9, 0x00); - } - if ((this_mod | this_osm) & MODS_ALT_MASK) { - rgb_matrix_set_color_row(2, 0x00, 0x00, 0xFF); - } -} -#endif // RGB_MATRIX_INIT - -void matrix_init_keymap(void) {} - -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (get_highest_layer(layer_state)) { - case _RAISE: - clockwise ? tap_code(KC_VOLD) : tap_code(KC_VOLU); - break; - case _LOWER: -# ifdef RGB_MATRIX_ENABLE - clockwise ? rgb_matrix_step() : rgb_matrix_step_reverse(); -# else - clockwise ? tap_code(KC_PGDN) : tap_code(KC_PGUP); -# endif - break; - case _ADJUST: -# ifdef AUDIO_CLICKY - clockwise ? clicky_freq_up() : clicky_freq_down(); -# endif - break; - default: - clockwise ? tap_code(KC_DOWN) : tap_code(KC_UP); - } -# ifdef AUDIO_CLICKY - clicky_play(); -# endif - return true; -} -#endif // ENCODER_ENABLE - -#ifdef KEYBOARD_planck_ez -layer_state_t layer_state_set_keymap(layer_state_t state) { - planck_ez_left_led_off(); - planck_ez_right_led_off(); - switch (get_highest_layer(state)) { - case _LOWER: - planck_ez_left_led_on(); - break; - case _RAISE: - planck_ez_right_led_on(); - break; - case _ADJUST: - planck_ez_right_led_on(); - planck_ez_left_led_on(); - break; - default: - break; - } - return state; -} -#endif diff --git a/layouts/community/ortho_4x12/bocaj/readme.md b/layouts/community/ortho_4x12/bocaj/readme.md deleted file mode 100644 index a3716b8dc04d..000000000000 --- a/layouts/community/ortho_4x12/bocaj/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# Overview - -This is my Planck EZ layout, heavily based upon [my ergodox layout](../../ergodox/bocaj/). - -I got this keyboard for two reasons: - -1. QMK spoiled me and the Ergodox isn't incredibly portable (ok 3 reasons) -2. This can sit ontop of my janky Macbook Pro keyboard (disabled with Karabiner if the planck is connected) when I want to work from the couch. - -## How to Build - -Put simply: -`make planck/ez:bocaj` - -On that note, I use a separate workspace when making changes to my layouts or userspace. In that repo, there is a tool that does this for me. See [JacobJerrell/qmk_layouts/tools/](https://github.com/JacobJerrell/qmk_layouts/tree/master/tools) until I get documentation finished (Write code first, define requirements second... right?). - -## Layers - -* WORKMAN/QWERTY: Default is workman, can be switched via the ADJUST layer. Idk why you would though. -* LOWER: Nums across the top, switches enter key to tab and tab key to delete. Symbols in the middle, remenascent of the ergodox -* RAISE: Symbols across the top, F-Keys on the 2nd row. Switches backspace to delete -* ADJUST: Computer Audio controls, RGB controls, Sound controls, macros, etc. -* MOD: Mouse controls under the left hand. Numpad under the right hand \ No newline at end of file diff --git a/layouts/community/ortho_4x12/bocaj/rules.mk b/layouts/community/ortho_4x12/bocaj/rules.mk deleted file mode 100644 index 5c642e65ca35..000000000000 --- a/layouts/community/ortho_4x12/bocaj/rules.mk +++ /dev/null @@ -1,43 +0,0 @@ -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -TAP_DANCE_ENABLE = no -SPACE_CADET_ENABLE = no -NKRO_ENABLE = yes - -ifneq ($(strip $(KEYBOARD)), planck/rev6) - CONSOLE_ENABLE = no - COMMAND_ENABLE = no - ifeq ($(strip $(LAYOUT_HAS_RGB)), yes) - RGBLIGHT_ENABLE = yes - INDICATOR_LIGHTS = yes - RGBLIGHT_TWINKLE = yes - RGBLIGHT_STARTUP_ANIMATION = yes - endif -else - CONSOLE_ENABLE = yes - COMMAND_ENABLE = yes - RGBLIGHT_ENABLE = yes - RGBLIGHT_STARTUP_ANIMATION = yes - RGB_MATRIX_ENABLE = no - AUDIO_ENABLE = yes - EEPROM_DRIVER = i2c -endif -ifeq ($(strip $(KEYBOARD)), planck/light) - RGB_MATRIX_ENABLE = yes - RGBLIGHT_ENABLE = yes - RGBLIGHT_STARTUP_ANIMATION = yes - AUDIO_ENABLE = yes - # HAPTIC_ENABLE += SOLENOID -endif -ifeq ($(strip $(KEYBOARD)), planck/ez) - RGBLIGHT_ENABLE = no - ENCODER_ENABLE = yes - RGB_MATRIX_ENABLE = IS31FL3737 - INDICATOR_LIGHTS = yes - RGBLIGHT_TWINKLE = yes - RGBLIGHT_STARTUP_ANIMATION = yes - CONSOLE_ENABLE = yes - COMMAND_ENABLE = yes - AUDIO_ENABLE = yes -endif diff --git a/layouts/community/ortho_4x12/jjerrell/config.h b/layouts/community/ortho_4x12/jjerrell/config.h new file mode 100644 index 000000000000..aee885b8d058 --- /dev/null +++ b/layouts/community/ortho_4x12/jjerrell/config.h @@ -0,0 +1,57 @@ +// Copyright (C) 2021 Jerrell, Jacob <@jjerrell> +// +// This file is part of qmk_firmware. +// +// qmk_firmware is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// qmk_firmware 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 qmk_firmware. If not, see . + +#pragma once + +// Allows time for repositioning hands due to awkward key placement +#define LEADER_NO_TIMEOUT + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#ifdef KEYBOARD_planck_ez_glow +#undef PRODUCT +#define PRODUCT Planck EZ Glow - Modified by <@jjerrell> +#endif + +/* + * MIDI options + */ + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 diff --git a/layouts/community/ortho_4x12/jjerrell/keymap.c b/layouts/community/ortho_4x12/jjerrell/keymap.c new file mode 100644 index 000000000000..d873907e91a4 --- /dev/null +++ b/layouts/community/ortho_4x12/jjerrell/keymap.c @@ -0,0 +1,227 @@ +/* Copyright 2015-2017 Jack Humbert + * Copyright 2021 Jacob Jerrell <@jjerrell> + * + * 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 "jjerrell.h" + +enum planck_layers { + _GAME_LOWER = LAYER_SAFE_RANGE, + // _GAME_RAISE, +}; + +#define LAYOUT_planck_plain(...) WRAPPER_ortho_4x12(__VA_ARGS__) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_WORKMAN] = LAYOUT_planck_base( + __________________WORKMN_L1__________________, __________________WORKMN_R1__________________, + __________________WORKMN_L2__________________, __________________WORKMN_R2__________________, + __________________WORKMN_L3__________________, __________________WORKMN_R3__________________ + ), + /* Lower - Nav/Select/Nums + * ,-----------------------------------------------------------------------------------. + * | PGUP | BSPC | UP | DEL | PGDN | | | | 7 | 8 | 9 | * | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | HOME | LEFT | DOWN | RGHT | END | | | | 4 | 5 | 6 | / | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ESC | TAB | | ENTR | | | | | 1 | 2 | 3 | - | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | held | SPACE | ENTR | 0 | . | , | + | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_planck_mods( + __________________LOWER_L1___________________, XXXXXXX, XXXXXXX, __________________LOWER_R1___________________, + __________________LOWER_L2___________________, XXXXXXX, XXXXXXX, __________________LOWER_R2___________________, + __________________LOWER_L3___________________, XXXXXXX, XXXXXXX, __________________LOWER_R3___________________, + _________________________________________PLANCK_LOWER_BOTTOM_ROW_________________________________________ + ), + /* Raise - Symbols + * ,-----------------------------------------------------------------------------------. + * | % | _ | [ | ] | ^ | | | ! | < | > | = | : | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | \ | / | { | } | * | | | ? | ( | ) | - | ; | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | # | $ | | | ~ | ` | | | @ | " | ' | + | & | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | LEAD | | | BSPC | SPACE | held | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_planck_common( + __________________RAISE_L1___________________, __________________RAISE_R1___________________, + __________________RAISE_L2___________________, __________________RAISE_R2___________________, + __________________RAISE_L3___________________, __________________RAISE_R3___________________ + ), + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | Make | Debug|Reset |TermOn|TrmOff| | |MusMod|Mus On|MusOff|MidiOn|MidOff| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Mute | Vol- | Vol+ | Play | Skip | | |Voice-| HUE+ | HUE- | SAT+ | SAT- | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Vrsn | AudOn|AudOff|CGswap|CGnorm| | |Voice+|RGBTog|RGBMod|BRGHT+|BRGHT-| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | held | | held | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT_planck_common( + __________________ADJUST_L1__________________, __________________ADJUST_R1__________________, + __________________ADJUST_L2__________________, __________________ADJUST_R2__________________, + __________________ADJUST_L3__________________, __________________ADJUST_R3__________________ + ), + [_GAME] = LAYOUT_planck_plain( + __________________QWERTY_L1__________________, _______, _______, XXXXXXX, KC_9, KC_0, KC_MINS, KC_EQL, + __________________QWERTY_L2__________________, XXXXXXX, XXXXXXX, XXXXXXX, KC_5, KC_6, KC_7, KC_8, + __________________QWERTY_L3__________________, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_4, + KC_LSFT, KC_LGUI, KC_LALT, KC_LCTL, LT(_LOWER, KC_BSPC), KC_SPC, XXXXXXX, LT(_WORKMAN, KC_ENT), MACRO_1, MACRO_2, MACRO_3, MACRO_4 + ), + [_GAME_LOWER] = LAYOUT_planck_plain( + _______, _______, _______, _______, _______, _______, _______, _______, C(_______), C(_______), C(_______), C(_______), + _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, C(_______), C(_______), C(_______), C(_______), + _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, C(_______), C(_______), C(_______), C(_______), + MACRO_1, MACRO_2, MACRO_3, MACRO_4, _______, _______, XXXXXXX, _______, MACRO_5, MACRO_6, MACRO_7, MACRO_8 + ) + +}; +// clang-format on + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +#ifdef KEYBOARD_planck_ez +void planck_ez_teeth_set(layer_state_t state) { + switch (get_highest_layer(state)) { + case _LOWER: + planck_ez_left_led_level(40); + break; + case _RAISE: + planck_ez_right_led_level(40); + break; + case _ADJUST: + planck_ez_left_led_level(40); + planck_ez_right_led_level(40); + break; + case _GAME_LOWER: + planck_ez_left_led_level(20); + break; +// todo case _GAME_RAISE: + // planck_ez_right_led_level(20); + // break; + case _WORKMAN: + if (IS_LAYER_ON(_GAME)) { + planck_ez_left_led_level(60); + planck_ez_right_led_level(60); + break; + } + default: + planck_ez_left_led_off(); + planck_ez_right_led_off(); + break; + } +} + +layer_state_t layer_state_set_keymap(layer_state_t state) { + planck_ez_left_led_off(); + planck_ez_right_led_off(); + state = update_tri_layer_state(state, _GAME, _LOWER, _GAME_LOWER); + planck_ez_teeth_set(state); + return state; +} +#endif + +bool encoder_update(bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { +# ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); +# else + tap_code(KC_PGDN); +# endif + } else { +# ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); +# else + tap_code(KC_PGUP); +# endif + } + } + return true; +} + +void dip_switch_update_keymap(uint8_t index, bool active) { + switch (index) { + case 0: { + if (active) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + break; + } + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } +} + +#ifdef AUDIO_ENABLE +void matrix_scan_keymap(void) { + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } else { + if (muse_counter) { + stop_all_notes(); + muse_counter = 0; + } + } +} +#endif + +bool music_mask_keymap(uint16_t keycode) { + switch (keycode) { + case _RAISE: + case _LOWER: + return false; + default: + return true; + } +} diff --git a/layouts/community/ortho_4x12/jjerrell/readme.md b/layouts/community/ortho_4x12/jjerrell/readme.md new file mode 100644 index 000000000000..ec947ea3539d --- /dev/null +++ b/layouts/community/ortho_4x12/jjerrell/readme.md @@ -0,0 +1,7 @@ +# JJerrell's Planck EZ Layout + +As with my other keymaps, this layout is a close adaptation of the Neo keyboard. Obvious differences are that the alpha keymap is Workman and if you're already used to the secondary layers of the Neo keymap, this might be very uncomfortable for you because of slight variations. + +The keymap has been setup to pretty much remove the center columns above the spacebar and limit use of the bottom row by supplying paths to removed functionality that are simpler to process mentally and require less finger acrobatics. + +My ownership of this keyboard could not have been easily predicted because my original justification of this hobby was health related. I found QMK through the Ergodox EZ and this keyboard is a result of that discovery -- I could not live without some QMK features. As you can see, my problem has come full circle... now I use this keyboard when I'm not at a desk and it's tiny. This is offset by eliminating use of the center columns, relying on a symbol layer almost exclusively, and relying on a navigation layer instead of getting by with the minimum on the alpha layers which became uncomfortable even with the thumbs doing the heavy lifting and mods being comfortably placed on the home row. diff --git a/layouts/community/ortho_4x12/jjerrell/rules.mk b/layouts/community/ortho_4x12/jjerrell/rules.mk new file mode 100644 index 000000000000..39f31a266ec6 --- /dev/null +++ b/layouts/community/ortho_4x12/jjerrell/rules.mk @@ -0,0 +1,8 @@ +SRC += muse.c + +BOOTMAGIC_ENABLE = lite +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +TAP_DANCE_ENABLE = no +SPACE_CADET_ENABLE = no +NKRO_ENABLE = no diff --git a/users/bocaj/.gitignore b/users/bocaj/.gitignore deleted file mode 100644 index c6df8c013951..000000000000 --- a/users/bocaj/.gitignore +++ /dev/null @@ -1 +0,0 @@ -secrets.c diff --git a/users/bocaj/.gitlab-ci.yml b/users/bocaj/.gitlab-ci.yml deleted file mode 100644 index 71e3d26eb43e..000000000000 --- a/users/bocaj/.gitlab-ci.yml +++ /dev/null @@ -1,24 +0,0 @@ -stages: - - test - -QMK Firmware: - stage: test - variables: - GIT_SUBMODULE_STRATEGY: recursive - tags: - - linux - image: qmkfm/base_container - before_script: - - apt-get update -qy - - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi git libnewlib-arm-none-eabi gcc-avr python3 unzip wget zip - - avr-gcc --version - - uname -a - script: - - make planck/rev6:default planck/rev5:default - - make all:bocaj -j2 - artifacts: - name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" - paths: - - ./*.hex - - ./*.bin - expire_in: 1 month diff --git a/users/bocaj/bocaj.c b/users/bocaj/bocaj.c deleted file mode 100644 index 83fe812311dc..000000000000 --- a/users/bocaj/bocaj.c +++ /dev/null @@ -1,210 +0,0 @@ -/* -Copyright 2020 Jacob Jerrell @JacobJerrell - -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 "bocaj.h" - -#ifdef KEYBOARD_planck_ez -userspace_config_t userspace_config; -#endif - -bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed) { - static uint16_t this_timer; - if (pressed) { - this_timer = timer_read(); - } else { - if (timer_elapsed(this_timer) < TAPPING_TERM) { - tap_code(code); - } else { - register_code(mod_code); - tap_code(code); - unregister_code(mod_code); - } - } - return false; -} - -bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer) { - if (pressed) { - this_timer = timer_read(); - } else { - if (timer_elapsed(this_timer) < TAPPING_TERM) { - tap_code(code); - } else { - register_code(mod_code); - tap_code(code); - unregister_code(mod_code); - } - } - return false; -} - -void bootmagic_lite(void) { - matrix_scan(); -#if defined(DEBOUNCING_DELAY) && DEBOUNCING_DELAY > 0 - wait_ms(DEBOUNCING_DELAY * 2); -#elif defined(DEBOUNCE) && DEBOUNCE > 0 - wait_ms(DEBOUNCE * 2); -#else - wait_ms(30); -#endif - matrix_scan(); - if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) { - bootloader_jump(); - } -} - -__attribute__((weak)) void keyboard_pre_init_keymap(void) {} - -void keyboard_pre_init_user(void) { -#ifdef KEYBOARD_planck_ez - userspace_config.raw = eeconfig_read_user(); -#endif - keyboard_pre_init_keymap(); -} -// Add reconfigurable functions here, for keymap customization -// This allows for a global, userspace functions, and continued -// customization of the keymap. Use _keymap instead of _user -// functions in the keymaps -__attribute__((weak)) void matrix_init_keymap(void) {} - -// Call user matrix init, set default RGB colors and then -// call the keymap's init function -void matrix_init_user(void) { - matrix_init_keymap(); -} - -__attribute__((weak)) void keyboard_post_init_keymap(void) {} - -void keyboard_post_init_user(void) { -#if defined(RGB_MATRIX_ENABLE) - keyboard_post_init_rgb_matrix(); -#endif - keyboard_post_init_keymap(); -} - -__attribute__((weak)) void shutdown_keymap(void) {} - -void rgb_matrix_update_pwm_buffers(void); - -void shutdown_user(void) { -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_color_all(0xFF, 0x00, 0x00); - rgb_matrix_update_pwm_buffers(); - -#endif // RGB_MATRIX_ENABLE - shutdown_keymap(); -} - -__attribute__((weak)) void suspend_power_down_keymap(void) {} - -void suspend_power_down_user(void) { suspend_power_down_keymap(); } - -__attribute__((weak)) void suspend_wakeup_init_keymap(void) {} - -void suspend_wakeup_init_user(void) { suspend_wakeup_init_keymap(); } - -__attribute__((weak)) void matrix_scan_secrets(void) {} -__attribute__((weak)) void matrix_scan_keymap(void) {} - -LEADER_EXTERNS(); - -// No global matrix scan code, so just run keymap's matrix -// scan function -void matrix_scan_user(void) { - static bool has_ran_yet; - if (!has_ran_yet) { - has_ran_yet = true; - startup_user(); - } - - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - // Website Refresh / XCode "Run" - SEQ_ONE_KEY(KC_R) { - SEND_STRING(SS_LGUI("r")); - } - - SEQ_TWO_KEYS(KC_B, KC_D) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " Built at: " QMK_BUILDDATE); - } - - #ifndef NO_SECRETS - matrix_scan_secrets(); - #endif // !NO_SECRETS - } - -#if defined(RGB_MATRIX_ENABLE) - matrix_scan_rgb_matrix(); -#endif - - matrix_scan_keymap(); -} - -__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; } - -// on layer change, no matter where the change was initiated -// Then runs keymap's layer change check -layer_state_t layer_state_set_user(layer_state_t state) { - state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); -#if defined(RGBLIGHT_ENABLE) - state = layer_state_set_rgb_light(state); -#endif // RGBLIGHT_ENABLE - return layer_state_set_keymap(state); -} - -__attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t state) { return state; } - -// Runs state check and changes underglow color and animation -layer_state_t default_layer_state_set_user(layer_state_t state) { - state = default_layer_state_set_keymap(state); -#if 0 -# if defined(RGB_MATRIX_ENABLE) - state = default_layer_state_set_rgb(state); -# endif // RGB_MATRIX_ENABLE -#endif - return state; -} - -__attribute__((weak)) void led_set_keymap(uint8_t usb_led) {} - -// Any custom LED code goes here. -// So far, I only have keyboard specific code, -// So nothing goes here. -void led_set_user(uint8_t usb_led) { led_set_keymap(usb_led); } - -__attribute__((weak)) void eeconfig_init_keymap(void) {} - -void eeconfig_init_user(void) { -#ifdef KEYBOARD_planck_ez - userspace_config.raw = 0; -# if defined(RGB_MATRIX_ENABLE) - userspace_config.rgb_layer_change = true; -# endif - eeconfig_update_user(userspace_config.raw); -#endif - eeconfig_init_keymap(); - keyboard_init(); -} - -bool hasAllBitsInMask(uint8_t value, uint8_t mask) { - value &= 0xF; - mask &= 0xF; - - return (value & mask) == mask; -} diff --git a/users/bocaj/bocaj.h b/users/bocaj/bocaj.h deleted file mode 100644 index e69be74da574..000000000000 --- a/users/bocaj/bocaj.h +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright 2017 Christopher Courtney @drashna -Copyright 2020 Jacob Jerrell @JacobJerrell - -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 QMK_KEYBOARD_H - -#include "version.h" -#include "eeprom.h" -#include "process_records.h" -#include "wrappers.h" -#if defined(RGB_MATRIX_ENABLE) -# include "rgb_matrix_stuff.h" -#endif - -/* Define layer names */ -enum userspace_layers { - _WORKMAN = 0, - _QWERTY, - _WWORKMAN, - _WQWERTY, - _LOWER, - _RAISE, - _ADJUST, - _MOD, - LAYER_SAFE_RANGE, -}; - -#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) -#define MODS_CTRL_MASK (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL)) -#define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) -#define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)) - -bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed); -bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer); -void matrix_init_keymap(void); -void shutdown_keymap(void); -void suspend_power_down_keymap(void); -void suspend_wakeup_init_keymap(void); -void matrix_scan_keymap(void); -layer_state_t layer_state_set_keymap(layer_state_t state); -layer_state_t default_layer_state_set_keymap(layer_state_t state); -void led_set_keymap(uint8_t usb_led); -void eeconfig_init_keymap(void); -bool hasAllBitsInMask(uint8_t value, uint8_t mask); - -// clang-format off -#ifdef KEYBOARD_planck_ez -typedef union { - uint32_t raw; - struct { - bool rgb_layer_change :1; - bool rgb_matrix_idle_anim :1; - }; -} userspace_config_t; -// clang-format on - -extern userspace_config_t userspace_config; -#endif diff --git a/users/bocaj/config.h b/users/bocaj/config.h deleted file mode 100644 index 2a44aabfc447..000000000000 --- a/users/bocaj/config.h +++ /dev/null @@ -1,113 +0,0 @@ -#pragma once - -// Use custom magic number so that when switching branches, EEPROM always gets reset -#define EECONFIG_MAGIC_NUMBER (uint16_t)0x1339 - -/* Set Polling rate to 1000Hz */ -#define USB_POLLING_INTERVAL_MS 1 - -#ifdef AUDIO_ENABLE - -# define AUDIO_CLICKY -# define STARTUP_SONG SONG(RICK_ROLL) -# define GOODBYE_SONG SONG(SONIC_RING) -# define DEFAULT_LAYER_SONGS \ - { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(OVERWATCH_THEME) } - -# define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f - -# define UNICODE_SONG_MAC SONG(RICK_ROLL) -# define UNICODE_SONG_LNX SONG(RICK_ROLL) -# define UNICODE_SONG_WIN SONG(RICK_ROLL) -# define UNICODE_SONG_BSD SONG(RICK_ROLL) -# define UNICODE_SONG_WINC SONG(RICK_ROLL) -#endif // !AUDIO_ENABLE - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) -// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects -# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended -// # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 -// # define EECONFIG_RGB_MATRIX (uint32_t *)16 - -# if defined(__AVR__) && !defined(__AVR_AT90USB1286__) -# define DISABLE_RGB_MATRIX_ALPHAS_MODS -# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# define DISABLE_RGB_MATRIX_BREATHING -# define DISABLE_RGB_MATRIX_BAND_SAT -# define DISABLE_RGB_MATRIX_BAND_VAL -# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT -# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL -# define DISABLE_RGB_MATRIX_CYCLE_ALL -# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN -# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN -// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define DISABLE_RGB_MATRIX_DUAL_BEACON -# define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL -# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL -# define DISABLE_RGB_MATRIX_RAINBOW_BEACON -# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS -# define DISABLE_RGB_MATRIX_RAINDROPS -# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -// # define DISABLE_RGB_MATRIX_TYPING_HEATMAP -# define DISABLE_RGB_MATRIX_DIGITAL_RAIN -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define DISABLE_RGB_MATRIX_SPLASH -# define DISABLE_RGB_MATRIX_MULTISPLASH -# define DISABLE_RGB_MATRIX_SOLID_SPLASH -# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH -# endif // AVR -#endif // RGB_MATRIX_ENABLE - -#ifdef QMK_KEYS_PER_SCAN -# undef QMK_KEYS_PER_SCAN -# define QMK_KEYS_PER_SCAN 1 -#endif // !QMK_KEYS_PER_SCAN - -// this makes it possible to do rolling combos (zx) with keys that -// convert to other keys on hold (z becomes ctrl when you hold it, -// and when this option isn't enabled, z rapidly followed by x -// actually sends Ctrl-x. That's bad.) -#define IGNORE_MOD_TAP_INTERRUPT -#undef PERMISSIVE_HOLD -//#define TAPPING_FORCE_HOLD -//#define RETRO_TAPPING - -#define FORCE_NKRO - -#ifndef TAPPING_TOGGLE -# define TAPPING_TOGGLE 1 -#endif - -#ifdef TAPPING_TERM -# undef TAPPING_TERM -#endif // TAPPING_TERM -#if defined(KEYBOARD_ergodox_ez) -# define TAPPING_TERM 185 -#else -# define TAPPING_TERM 175 -#endif - -#define TAP_CODE_DELAY 5 - -/* Disable unused and unneeded features to reduce on firmware size */ -#ifdef LOCKING_SUPPORT_ENABLE -# undef LOCKING_SUPPORT_ENABLE -#endif -#ifdef LOCKING_RESYNC_ENABLE -# undef LOCKING_RESYNC_ENABLE -#endif diff --git a/users/bocaj/process_records.c b/users/bocaj/process_records.c deleted file mode 100644 index 9eb181ad441c..000000000000 --- a/users/bocaj/process_records.c +++ /dev/null @@ -1,111 +0,0 @@ -#include "bocaj.h" -#include - -__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } - -__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; } - -// Defines actions tor my global custom keycodes. Defined in bocaj.h file -// Then runs the _keymap's record handler if not processed here -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - - if (process_record_keymap(keycode, record) && process_record_secrets(keycode, record) -#ifdef RGB_MATRIX_ENABLE - && process_record_user_rgb_matrix(keycode, record) -#endif - ) { - switch (keycode) { - case KC_WORKMAN: - if (!record->event.pressed) { - uint8_t mods = mod_config(get_mods()); - if (!mods) { - set_single_persistent_default_layer(_WORKMAN); - - } else if (mods & (MODS_GUI_MASK | MODS_CTRL_MASK)) { - set_single_persistent_default_layer(_WWORKMAN); - } - } - return false; - break; - case KC_QWERTY: - if (!record->event.pressed) { - uint8_t mods = mod_config(get_mods()); - if (!mods) { - set_single_persistent_default_layer(_QWERTY); - } else if (mods & (MODS_GUI_MASK | MODS_CTRL_MASK)) { - set_single_persistent_default_layer(_WQWERTY); - } - } - return false; - break; - - case MC_ARRW: - if (!record->event.pressed) { - clear_mods(); - send_string_with_delay_P(PSTR("->"), TAP_CODE_DELAY); - } - return false; - break; - - case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader - if (!record->event.pressed) { - clear_mods(); - send_string_with_delay_P(PSTR("qmk compile "), TAP_CODE_DELAY); - send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD), TAP_CODE_DELAY); - send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY); - } - return false; - break; - - case VRSN: // Prints firmware version - if (!record->event.pressed) { - send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); - } - break; -#if defined(RGB_MATRIX_ENABLE) - case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal - if (!record->event.pressed) { - userspace_config.rgb_layer_change ^= 1; - dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); - eeconfig_update_user(userspace_config.raw); - if (userspace_config.rgb_layer_change) { - rgblight_enable_noeeprom(); - layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) - } else { - rgblight_disable_noeeprom(); - } - } - return false; - break; - case RGB_TOG: - if (!record->event.pressed) { -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_toggle(); -# endif - } - return false; - break; - case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions - if (!record->event.pressed) { - bool is_eeprom_updated; -# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) - if (userspace_config.rgb_matrix_idle_anim) { - userspace_config.rgb_matrix_idle_anim = false; - dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); - is_eeprom_updated = true; - } -# endif - if (is_eeprom_updated) { - eeconfig_update_user(userspace_config.raw); - } - } - return false; - break; -#endif - } - } -#ifdef CONSOLE_ENABLE - uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); -#endif - return true; -} diff --git a/users/bocaj/process_records.h b/users/bocaj/process_records.h deleted file mode 100644 index c17e2ffdc1b8..000000000000 --- a/users/bocaj/process_records.h +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once -#include "bocaj.h" - -#if defined(KEYMAP_SAFE_RANGE) -# define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE -#else -# define PLACEHOLDER_SAFE_RANGE SAFE_RANGE -#endif - -enum userspace_custom_keycodes { - VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info - KC_WORKMAN, // Sets default layer to WORKMAN - KC_QWERTY, // Sets default layer to QWERTY - // KC_COLEMAK, // Sets default layer to COLEMAK - // KC_DVORAK, // Sets default layer to DVORAK - KC_MAKE, // Run keyboard's customized make command - KC_RGB_T, // Toggles RGB Layer Indication mode - RGB_IDL, // RGB Idling animations - MC_ARRW, // -> - UC_FLIP, // (ಠ痊ಠ)┻━┻ - UC_TABL, // ┬─┬ノ( º _ ºノ) - UC_SHRG, // ¯\_(ツ)_/¯ - UC_DISA, // ಠ_ಠ - NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes -}; - -bool process_record_secrets(uint16_t keycode, keyrecord_t *record); -bool process_record_keymap(uint16_t keycode, keyrecord_t *record); - -#define QWERTY KC_QWERTY -#define WORKMAN KC_WORKMAN - -#define KC_ARRW MC_ARRW - -#define KC_RST RESET - -#define MO_MOD MO(_MOD) -#define ALT_APP ALT_T(KC_APP) -#define HYP_LBK ALL_T(KC_LBRACKET) -#define MEH_RBK MEH_T(KC_RBRACKET) -#define HYP_LPR ALL_T(KC_LPRN) -#define MEH_RPR MEH_T(KC_RPRN) - -#define MG_NKRO MAGIC_TOGGLE_NKRO diff --git a/users/bocaj/readme.md b/users/bocaj/readme.md deleted file mode 100644 index 1206359675bc..000000000000 --- a/users/bocaj/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# Overview - -This is my personal userspace file. Most of my code exists here, as it's heavily shared. - -The template was taken from [Drashna's userspace](https://github.com/qmk/qmk_firmware/tree/master/users/drashna). There isn't much if anything in this userspace that warrants documentation he hasn't already covered. diff --git a/users/bocaj/rgb_matrix_stuff.c b/users/bocaj/rgb_matrix_stuff.c deleted file mode 100644 index bc50349d23ee..000000000000 --- a/users/bocaj/rgb_matrix_stuff.c +++ /dev/null @@ -1,106 +0,0 @@ -#include "bocaj.h" - -#include "lib/lib8tion/lib8tion.h" -extern led_config_t g_led_config; - -static uint32_t hypno_timer; -#if defined(SPLIT_KEYBOARD) || defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_crkbd) -# define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN_DUAL -#else -# define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN -#endif - -void rgb_matrix_set_color_row(uint8_t row, uint8_t red, uint8_t green, uint8_t blue) { -#ifdef KEYBOARD_planck_ez - if (row > 2) { - row = 0; - } - uint8_t row_multiplier = row * 12; - - rgb_matrix_set_color(1 + row_multiplier, red, green, blue); - rgb_matrix_set_color(2 + row_multiplier, red, green, blue); - rgb_matrix_set_color(3 + row_multiplier, red, green, blue); - rgb_matrix_set_color(4 + row_multiplier, red, green, blue); - rgb_matrix_set_color(5 + row_multiplier, red, green, blue); - rgb_matrix_set_color(6 + row_multiplier, red, green, blue); - rgb_matrix_set_color(7 + row_multiplier, red, green, blue); - rgb_matrix_set_color(8 + row_multiplier, red, green, blue); - rgb_matrix_set_color(9 + row_multiplier, red, green, blue); - rgb_matrix_set_color(10 + row_multiplier, red, green, blue); -#endif -} - -void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type) { - HSV hsv = {hue, sat, val}; - if (hsv.v > rgb_matrix_get_val()) { - hsv.v = rgb_matrix_get_val(); - } - - switch (mode) { - case 1: // breathing - { - uint16_t time = scale16by8(g_rgb_timer, speed / 8); - hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { - if (HAS_FLAGS(g_led_config.flags[i], led_type)) { - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } - } - break; - } - default: // Solid Color - { - RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { - if (HAS_FLAGS(g_led_config.flags[i], led_type)) { - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } - } - break; - } - } -} - -__attribute__((weak)) void rgb_matrix_indicator_keymap(void) {} - -void matrix_scan_rgb_matrix(void) { -#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) - if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && timer_elapsed32(hypno_timer) > 15000) { - rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); - } -#endif - rgb_matrix_indicator_keymap(); -} - -void keyboard_post_init_rgb_matrix(void) { -#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) - if (userspace_config.rgb_matrix_idle_anim) { - rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); - } -#endif -} - -bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) { -#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) - hypno_timer = timer_read32(); - if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) { - rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); - } -#endif - switch (keycode) { - case RGB_IDL: -#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) - if (record->event.pressed) { - userspace_config.rgb_matrix_idle_anim ^= 1; - dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); - eeconfig_update_user(userspace_config.raw); - if (userspace_config.rgb_matrix_idle_anim) { - rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); - } - } -#endif - break; - } - return true; -} diff --git a/users/bocaj/rgb_matrix_stuff.h b/users/bocaj/rgb_matrix_stuff.h deleted file mode 100644 index e48add218620..000000000000 --- a/users/bocaj/rgb_matrix_stuff.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once -#include "quantum.h" - -bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record); -void keyboard_post_init_rgb_matrix(void); -void matrix_scan_rgb_matrix(void); - -void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type); -void rgb_matrix_set_color_row(uint8_t row, uint8_t red, uint8_t green, uint8_t blue); diff --git a/users/bocaj/wrappers.h b/users/bocaj/wrappers.h deleted file mode 100644 index 0f18d346a39a..000000000000 --- a/users/bocaj/wrappers.h +++ /dev/null @@ -1,193 +0,0 @@ -#pragma once -#include "bocaj.h" - -/* -Since our quirky block definitions are basically a list of comma separated -arguments, we need a wrapper in order for these definitions to be -expanded before being used as arguments to the LAYOUT_xxx macro. -*/ -#if (!defined(LAYOUT) && defined(KEYMAP)) -# define LAYOUT KEYMAP -#endif - -// clang-format off -#define WRAPPER_ergodox_pretty(...) LAYOUT_ergodox_pretty(__VA_ARGS__) -#define WRAPPER_ortho_4x12(...) LAYOUT_ortho_4x12(__VA_ARGS__) - -/* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */ -#define WRAPPER_ergodox_bocaj( \ - L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \ - L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \ - L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \ - L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \ - L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \ - L55,L56, R50,R51, \ - L54, R52, \ - L53,L52,L51, R55,R54,R53 ) \ - WRAPPER_ergodox_pretty( \ - L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ - L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ - L20, L21, SFT_T(L22), GUI_T(L23), ALT_T(L24), L25, R21, ALT_T(R22), GUI_T(R23), SFT_T(R24), R25, R26, \ - L30, CTL_T(L31), L32, L33, L34, L35, ALL_T(L36), MEH_T(R30), R31, R32, R33, R34, CTL_T(R35), R36, \ - L40, L41, L42, L43, L44, R42, R43, R44, R45, R46, \ - L55,L56, /* <- LHS/RHS -> */ R50,R51, \ - L54, /* <- LHS/RHS -> */ R52, \ - LT(_LOWER, L53),L52,L51, /* <- LHS/RHS -> */ R55,R54,LT(_RAISE, R53) \ -) - -#define WRAPPER_ergodox_bocaj_WIN( \ - L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \ - L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \ - L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \ - L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \ - L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \ - L55,L56, R50,R51, \ - L54, R52, \ - L53,L52,L51, R55,R54,R53 ) \ - WRAPPER_ergodox_pretty( \ - L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ - L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ - L20, L21, SFT_T(L22), CTL_T(L23), ALT_T(L24), L25, R21, ALT_T(R22), CTL_T(R23), SFT_T(R24), R25, R26, \ - L30, GUI_T(L31), L32, L33, L34, L35, ALL_T(L36), MEH_T(R30), R31, R32, R33, R34, GUI_T(R35), R36, \ - L40, L41, L42, L43, L44, R42, R43, R44, R45, R46, \ - L55,L56, /* <- LHS/RHS -> */ R50,R51, \ - L54, /* <- LHS/RHS -> */ R52, \ - LT(_LOWER, L53),L52,L51, /* <- LHS/RHS -> */ R55,R54,LT(_RAISE, R53) \ -) - -/* - Planck EZ Wrappers -*/ -#define WRAPPER_planck_bocaj( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ - K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \ -)\ - WRAPPER_ortho_4x12( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ - K11, K12, SFT_T(K13), GUI_T(K14), ALT_T(K15), K16, K17, ALT_T(K18), GUI_T(K19), SFT_T(K1A), K1B, K1C, \ - K21, CTL_T(K22), K23, K24, K25, K26, K27, K28, K29, K2A, CTL_T(K2B), K2C, \ - K31, K32, K33, K34, LT(_LOWER, K35), K36, K37, LT(_RAISE, K38), K39, K3A, K3B, K3C ) - -#define WRAPPER_planck_bocaj_WIN( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ - K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \ -)\ - WRAPPER_ortho_4x12( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ - K11, K12, SFT_T(K13), CTL_T(K14), ALT_T(K15), K16, K17, ALT_T(K18), CTL_T(K19), SFT_T(K1A), K1B, K1C, \ - K21, GUI_T(K22), K23, K24, K25, K26, K27, K28, K29, K2A, GUI_T(K2B), K2C, \ - K31, K32, K33, K34, LT(_LOWER, K35), K36, K37, LT(_RAISE, K38), K39, K3A, K3B, K3C ) - -#define WRAPPER_planck_bocaj_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ -) \ - WRAPPER_planck_bocaj( \ - KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ - KC_TAB, K11, K12, K13, K14, ALL_T(K15), MEH_T(K16), K17, K18, K19, K1A, KC_QUOT, \ - KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, _______, \ - _______, KC_LEAD, KC_UP, KC_LEFT, KC_BSPC, KC_SPC, KC_SPC, KC_ENTER, KC_RIGHT, KC_DOWN, QWERTY, WORKMAN \ - ) - -#define WRAPPER_planck_bocaj_base_WIN( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ -) \ - WRAPPER_planck_bocaj_WIN( \ - KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ - KC_TAB, K11, K12, K13, K14, ALL_T(K15), MEH_T(K16), K17, K18, K19, K1A, KC_QUOT, \ - KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, _______, \ - _______, KC_LEAD, KC_UP, KC_LEFT, KC_BSPC, KC_SPC, KC_SPC, KC_ENTER, KC_RIGHT, KC_DOWN, QWERTY, WORKMAN \ - ) - -/* -Blocks for each of the four major keyboard layouts -Organized so we can quickly adapt and modify all of them -at once, rather than for each keyboard, one at a time. -And this allows for much cleaner blocks in the keymaps. -For instance Tap/Hold for Control on all of the layouts - -NOTE: These are all the same length. If you do a search/replace - then you need to add/remove underscores to keep the - lengths consistent. -*/ - -#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T -#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G -#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B - -#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P -#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN -#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH - -#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G -#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D -#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B - -#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN -#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O -#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH - -#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y -#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I -#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X - -#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L -#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S -#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z - -#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B -#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G -#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V - -#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN -#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I -#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH - -#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 -#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0 -#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 -#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 - -#define ___________________BLANK___________________ _______, _______, _______, _______, _______ -#define _________________UNDEFINED_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - -#define ___________________LOWER_L1_EXT____________________ KC_GRV, _______, _______, KC_UP, _______, KC_ARRW -#define ___________________LOWER_L2_EXT____________________ KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_LPRN -#define ___________________LOWER_L3_EXT____________________ _______, _______, _______, _______, _______, KC_LBRC - -#define ___________________LOWER_R1_EXT____________________ KC_MINS, KC_7, KC_8, KC_9, KC_PLUS, KC_EQUAL -#define ___________________LOWER_R2_EXT____________________ KC_RPRN, KC_4, KC_5, KC_6, KC_ASTR, KC_BSLS -#define ___________________LOWER_R3_EXT____________________ KC_RBRC, KC_1, KC_2, KC_3, KC_SLSH, _______ - -// #define _________________LOWER_L1__________________ ________________NUMBER_LEFT________________ -// #define _________________LOWER_L2__________________ _______, _______, _______, _______, KC_LPRN -// #define _________________LOWER_L3__________________ _______, _______, _______, KC_ARRW, KC_LBRC - -// #define _________________LOWER_R1__________________ ________________NUMBER_RIGHT_______________ -// #define _________________LOWER_R2__________________ KC_RPRN, _______, _______, _______, _______ -// #define _________________LOWER_R3__________________ KC_RBRC, _______, _______, _______, _______ - -#define _________________RAISE_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC -#define _________________RAISE_L2__________________ _________________FUNC_LEFT_________________ -#define _________________RAISE_L3__________________ ___________________BLANK___________________ - -#define _________________RAISE_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN -#define _________________RAISE_R2__________________ _________________FUNC_RIGHT________________ -#define _________________RAISE_R3__________________ ___________________BLANK___________________ - -#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG -#define _________________ADJUST_L2_________________ KC__MUTE, KC__VOLDOWN, KC__VOLUP, _______, KC_MNXT -#define _________________ADJUST_L3_________________ RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_RGB_T - -#define _________________ADJUST_R1_________________ ___________________BLANK___________________ -#define _________________ADJUST_R2_________________ CG_SWAP, WORKMAN, QWERTY, _______, _______ -#define _________________ADJUST_R3_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM - -// clang-format on diff --git a/users/jjerrell/.gitignore b/users/jjerrell/.gitignore new file mode 100644 index 000000000000..1753bf931b6d --- /dev/null +++ b/users/jjerrell/.gitignore @@ -0,0 +1 @@ +secrets.* diff --git a/users/jjerrell/config.h b/users/jjerrell/config.h new file mode 100644 index 000000000000..bddafe155724 --- /dev/null +++ b/users/jjerrell/config.h @@ -0,0 +1,26 @@ +// Copyright (C) 2021 Jerrell, Jacob <@jjerrell> +// +// This file is part of jjerrell. +// +// jjerrell is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// jjerrell 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 jjerrell. If not, see . + +#pragma once + +#define LEADER_TIMEOUT 250 +#define LEADER_PER_KEY_TIMING + +#if defined(TAP_CODE_DELAY) +# undef TAP_CODE_DELAY +#endif +#define TAP_CODE_DELAY 20 diff --git a/users/jjerrell/jjerrell.c b/users/jjerrell/jjerrell.c new file mode 100644 index 000000000000..95c2acba5ee7 --- /dev/null +++ b/users/jjerrell/jjerrell.c @@ -0,0 +1,138 @@ +/** + * Copyright (C) 2021 Jerrell, Jacob <@jjerrell> + * + * This file is part of qmk_firmware. + * + * qmk_firmware is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * qmk_firmware 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 qmk_firmware. If not, see . + */ + +#include "jjerrell.h" + +__attribute__((weak)) void matrix_scan_keymap(void) {} +__attribute__((weak)) void leader_scan_secrets(void) {} + +#ifdef LEADER_ENABLE + LEADER_EXTERNS(); + void matrix_scan_leader(void) { + static uint8_t mods = 0; + mods = get_mods(); + LEADER_DICTIONARY() { + leading = false; + leader_end(); + clear_mods(); + + // Website Refresh / XCode "Run" + SEQ_ONE_KEY(KC_R) { + SEND_STRING(SS_LGUI("r")); + } + + SEQ_TWO_KEYS(KC_B, KC_D) { + send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " Built at: " QMK_BUILDDATE), TAP_CODE_DELAY); + } + + SEQ_TWO_KEYS(KC_L, KC_C) { + send_string_with_delay("/** */", TAP_CODE_DELAY); + wait_ms(TAPPING_TERM); + tap_code(KC_LEFT); + tap_code(KC_LEFT); + tap_code(KC_LEFT); + if (!(mods & MOD_MASK_SHIFT)) { + tap_code(KC_ENT); + } + } + + set_mods(mods); + #ifndef NO_SECRETS + leader_scan_secrets(); + #endif // !NO_SECRETS + } + } +#endif + +static bool is_first_run = true; +void matrix_scan_user(void) { + if (is_first_run) { + is_first_run = false; + startup_user(); + } + #ifdef LEADER_ENABLE + matrix_scan_leader(); + #endif + matrix_scan_keymap(); +} + +__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; } + +// on layer change, no matter where the change was initiated +// Then runs keymap's layer change check +layer_state_t layer_state_set_user(layer_state_t state) { + if (!is_keyboard_master()) { + return state; + } + + state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); + state = layer_state_set_keymap(state); +#if defined(RGBLIGHT_ENABLE) + state = layer_state_set_rgb_light(state); +#endif // RGBLIGHT_ENABLE + return state; +} + +__attribute__((weak)) void dip_switch_update_keymap(uint8_t index, bool active) {} +void dip_switch_update_user(uint8_t index, bool active) { + dip_switch_update_keymap(index, active); +} + +__attribute__((weak)) bool music_mask_keymap(uint16_t keycode) { return true; } +bool music_mask_user(uint16_t keycode) { + switch (keycode){ + default: + return music_mask_keymap(keycode); + break; + } +} + +__attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t state) { return state; } + +// Runs state check and changes underglow color and animation +layer_state_t default_layer_state_set_user(layer_state_t state) { + if (!is_keyboard_master()) { + return state; + } + return default_layer_state_set_keymap(state); +} + +#ifdef AUDIO_ENABLE +__attribute__((weak)) void startup_keymap(void) {} +void startup_user(void) +{ + wait_ms(TAP_CODE_DELAY); // gets rid of tick + startup_keymap(); +} + +__attribute__((weak)) void shutdown_keymap(void) {} +void shutdown_user(void) +{ + wait_ms(TAP_CODE_DELAY); + stop_all_notes(); + shutdown_keymap(); +} + +__attribute__((weak)) void music_on_keymap(void) {} +void music_on_user(void) +{ + music_scale_user(); + music_on_keymap(); +} +#endif // AUDIO_ENABLE diff --git a/users/jjerrell/jjerrell.h b/users/jjerrell/jjerrell.h new file mode 100644 index 000000000000..92b95ccc01bf --- /dev/null +++ b/users/jjerrell/jjerrell.h @@ -0,0 +1,53 @@ +/** + * Copyright (C) 2021 Jerrell, Jacob <@jjerrell> + * + * This file is part of qmk_firmware. + * + * qmk_firmware is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * qmk_firmware 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 qmk_firmware. If not, see . + */ + +#pragma once +#include QMK_KEYBOARD_H + +/** QMK Includes **/ +#include "version.h" +#include "eeprom.h" +#include "muse.h" + +#include "process_records.h" +#include "wrappers.h" + +/************************* Userspace Layers ************************* + * Keymaps can define additional layers by making the first case + * equal to `LAYER_SAFE_RANGE` + ********************************************************************/ +enum userspace_layers { + _WORKMAN, + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, + _SPECIAL, + _GAME, + LAYER_SAFE_RANGE, +}; + +void matrix_scan_keymap(void); +layer_state_t layer_state_set_keymap(layer_state_t state); +void dip_switch_update_keymap(uint8_t index, bool active); +bool music_mask_keymap(uint16_t keycode); +layer_state_t default_layer_state_set_keymap(layer_state_t state); +void startup_keymap(void); +void shutdown_keymap(void); +void music_on_keymap(void); diff --git a/users/jjerrell/process_records.c b/users/jjerrell/process_records.c new file mode 100644 index 000000000000..abdcd0934c62 --- /dev/null +++ b/users/jjerrell/process_records.c @@ -0,0 +1,139 @@ +/** + * Copyright (C) 2021 Jerrell, Jacob <@jjerrell> + * + * This file is part of qmk_firmware. + * + * qmk_firmware is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * qmk_firmware 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 qmk_firmware. If not, see . + */ + +#include "jjerrell.h" + +float game_song[][2] = SONG(TO_BOLDLY_GO); +float work_song[][2] = SONG(MARIO_GAMEOVER); +float doom_song[][2] = SONG(E1M1_DOOM); + +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +static uint16_t key_timer; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (process_record_keymap(keycode, record)) { + static uint8_t mods = 0; + // static uint8_t layer = 0; + mods = get_mods(); + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case KC_WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + break; + case KC_CCCV: + if (record->event.pressed) { + key_timer = timer_read(); + } else { + clear_mods(); + if (timer_elapsed(key_timer) > TAPPING_TERM) { // Hold, copy + tap_code16(G(KC_C)); + } else if (mods & MOD_MASK_SHIFT) { + // Tap w/ shift held, open [Paste App](https://pasteapp.io) (no affiliation) + // Shift + Command(GUI) + V + tap_code16(S(G(KC_V))); + } else { // Regular tap, do paste + tap_code16(G(KC_V)); + } + set_mods(mods); + } + return false; + break; + case KC_ARROW: + if (record->event.pressed) { + clear_mods(); + if (mods & MOD_MASK_SHIFT) { + SEND_STRING("=>"); + } else { + SEND_STRING("->"); + } + set_mods(mods); + } + return false; + break; + case KC_MAKE: + if (!record->event.pressed) { +#ifndef MAKE_BOOTLOADER + uint8_t temp_mod = mod_config(get_mods()); + uint8_t temp_osm = mod_config(get_oneshot_mods()); + clear_mods(); + clear_oneshot_mods(); +#endif + send_string_with_delay_P(PSTR("qmk"), TAP_CODE_DELAY); +#ifndef MAKE_BOOTLOADER + if ((temp_mod | temp_osm) & MOD_MASK_SHIFT) +#endif + { + send_string_with_delay_P(PSTR(" flash "), TAP_CODE_DELAY); +#ifndef MAKE_BOOTLOADER + } else { + send_string_with_delay_P(PSTR(" compile "), TAP_CODE_DELAY); +#endif + } + send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP), TAP_CODE_DELAY); + send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY); + } + return false; + break; + case KC_VRSN: + if (!record->event.pressed) { + send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " Built at: " QMK_BUILDDATE), TAP_CODE_DELAY); + } + return false; + break; + case KC_GAME: + if (record->event.pressed) { + key_timer = timer_read(); + } else { + if (IS_LAYER_OFF(_GAME)) { + if (timer_elapsed(key_timer) > TAPPING_TERM) { + layer_move(_GAME); +#ifdef AUDIO_ENABLE +PLAY_SONG(game_song); +#endif + } + break; + // todo: cycle game layers + // } else if (mods & MOD_MASK_SHIFT) { +// #ifdef AUDIO_ENABLE +// PLAY_SONG(doom_song); +// #endif +// break; + } else { + layer_move(_WORKMAN); +#ifdef AUDIO_ENABLE +PLAY_SONG(work_song); +#endif + break; + } + } + return false; + break; + } + } + return true; +} diff --git a/users/jjerrell/process_records.h b/users/jjerrell/process_records.h new file mode 100644 index 000000000000..de37421b109c --- /dev/null +++ b/users/jjerrell/process_records.h @@ -0,0 +1,41 @@ +// Copyright (C) 2021 Jerrell, Jacob <@jjerrell> +// +// This file is part of qmk_firmware. +// +// qmk_firmware is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// qmk_firmware 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 qmk_firmware. If not, see . + +#pragma once +#include "jjerrell.h" + +#if defined(KEYMAP_SAFE_RANGE) +# define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE +#else +# define PLACEHOLDER_SAFE_RANGE SAFE_RANGE +#endif + +enum userspace_keycodes { + KC_ARROW = PLACEHOLDER_SAFE_RANGE, // `->` + KC_MAKE, // Runs the keyboard's make command + KC_QWERTY, // Default Layer -> QWERTY + KC_WORKMAN, // Default Layer -> Workman + KC_VRSN, // Print QMK Firmware and board info + RGB_IDL, // Toggle RGB Idle animations + RGB_TGL, // Toggle RGB Layer Indication + KC_CCCV, // One key copy/paste, + KC_GAME, // To game layer. If on game layer, cycle game layers + NEW_SAFE_RANGE // use NEW_SAFE_RANGE for keymap specific codes +}; + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record); + diff --git a/users/jjerrell/readme.md b/users/jjerrell/readme.md new file mode 100644 index 000000000000..a382524f2ecb --- /dev/null +++ b/users/jjerrell/readme.md @@ -0,0 +1,50 @@ + + +# JJerrell's QMK Userspace + +This userspace showcases my personal journey with QMK keyboards and aims to simplify additional development, reduce code duplication, and maintain a consistent experience across my current keyboards. My original userspace has been archived because I wanted to take the time to grasp _how_ what I was doing worked -- rather than copy/pasta and blind luck. + +Some keyboard specific code is stored here because it's contextually relevant. It may be somewhat pedantic, but an effort has been made to wrap this code with preprocessor checks. i.e. `#if (defined(KEYBOARD_planck_ez))`. + +## Daily Drivers + +1. Ergodox EZ - My first mechanical love. Now the office keyboard (if we go back). After finding inferior travel cases for exorbitant amounts of money, I built a custom travel case out of a case designed for drones and maticulous work cutting guncase foam. Around $50 with plenty of foam left over for family LARPing weapons. I'll post a picture one of these days. It also has a spot for my wireless touchpad. +2. Planck EZ - The solution to not being able to sit at a desk 100% of the time and not being able to live without QMK for any amount of time. Karabiner-Elements disables the Macbook keyboard when this is plugged in and the planck sits ontop of it with a very short usb-c cable. Probably terrible for the built in keyboard but they screwed up this generation anyway. +3. Moonlander - Just when I thought it was over, the lovely people with ZSA did it again. This one stays at home on my desk. + +## Features + +- Keymap level customization + - User methods implemented here will give the keymaps a chance to override functionality by optionally implementing relevant _keymap methods +- Layer Macros + - WRAPPER defines in [wrapper.c] simplify consistent keymaps +- Leader key secrets + - [jjerrell.c] sets up the functionality for this feature and calls into the leader_scan_secrets method. + - TODO: add documentation for leader_scan_secrets implementation + +## Issues + +### Tap/hold keys and shifted keycodes + +An immediate part of my love for QMK was it's ability to differentiate between holds and presses to a level where you can apply modifiers when a normal alpha code is held. This feature was the single-most health related improvement to adopting QMK, in my opinion. + +Beloved as it may be it comes with some baggage; shifted keycodes will be applied as their unshifted counterparts. I've worked around this in the past but the solution this time is a close adoption of the symbol layer inspired by the Neo keyboard. + +There is also a problem with relying on SFT_T() for all of your shifting needs because if you attempt to swap which fingers are holding it and don't release the first before pressing the second, shift won't register anymore. This could probably be fixed but it discourages typing in all caps because it becomes too tedious. However, most layers do have a dedicated shift key to counteract this when necessary. diff --git a/users/bocaj/rules.mk b/users/jjerrell/rules.mk similarity index 73% rename from users/bocaj/rules.mk rename to users/jjerrell/rules.mk index a0e7e93bc1fa..db359a575772 100644 --- a/users/bocaj/rules.mk +++ b/users/jjerrell/rules.mk @@ -1,4 +1,4 @@ -SRC += bocaj.c \ +SRC += jjerrell.c \ process_records.c LEADER_ENABLE = yes @@ -20,7 +20,8 @@ ifneq ($(strip $(NO_SECRETS)), yes) endif endif -RGB_MATRIX_ENABLE ?= no -ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) - SRC += rgb_matrix_stuff.c -endif +# TODO: RGB is next +# RGB_MATRIX_ENABLE ?= no +# ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) +# SRC += rgb_matrix_stuff.c +# endif diff --git a/users/jjerrell/wrappers.h b/users/jjerrell/wrappers.h new file mode 100644 index 000000000000..cc0f963e8dc8 --- /dev/null +++ b/users/jjerrell/wrappers.h @@ -0,0 +1,329 @@ +// Copyright (C) 2021 Jerrell, Jacob <@jjerrell> +// +// This file is part of qmk_firmware. +// +// qmk_firmware is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// qmk_firmware 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 qmk_firmware. If not, see . + +#pragma once +#include "jjerrell.h" + +#define QWERTY KC_QWERTY +#define WORKMN KC_WORKMAN + +#define KC_CUT LGUI(KC_X) + +// Non-sane shortcuts for software macros or keybindings +#define MACRO_1 ALL_T(KC_F12) +#define MACRO_2 ALL_T(KC_F13) +#define MACRO_3 ALL_T(KC_F14) +#define MACRO_4 ALL_T(KC_F15) + +#define MACRO_5 ALL_T(KC_F16) +#define MACRO_6 ALL_T(KC_F17) +#define MACRO_7 ALL_T(KC_F18) +#define MACRO_8 ALL_T(KC_F19) + +// clang-format off +#if (!defined(LAYOUT) && defined(KEYMAP)) +# define LAYOUT KEYMAP +#endif + +#if (defined(KEYBOARD_planck_ez)) +/** Planck EZ Empty + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + +# define ____________________________________________________________PLANCK_VERBOSE_BOTTOM_ROW_____________________________________________________________ \ + KC_LEAD, KC_LSFT, KC_CCCV, KC_HYPR, LT(_LOWER, KC_BSPC), SFT_T(KC_SPC), XXXXXXX, LT(_RAISE, KC_ENT), KC_MEH, RGB_TOG, RGB_IDL, LED_LEVEL + +# define _________________________________________PLANCK_LOWER_BOTTOM_ROW_________________________________________ \ + KC_LEAD, KC_LSFT, KC_CCCV, KC_HYPR, KC_BSPC, KC_SPC, XXXXXXX, KC_ENT, KC_0, KC_DOT, KC_COMM, LED_LEVEL +// TODO: It would be nice to find a way to apply the bottom row with optional left/right varargs. +// I'm completely unsure if this language can support something like that though. + +/** + * Basic Planck EZ Wrapper to expand "block" defines before sending + * to LAYOUT_ortho_4x12 + */ +# define WRAPPER_ortho_4x12(...) LAYOUT_ortho_4x12(__VA_ARGS__) + +# define WRAPPER_planck_common( \ + K01, K02, K03, K04, K05, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K28, K29, K2A, K2B, K2C \ + ) WRAPPER_ortho_4x12( \ + K01, K02, K03, K04, K05 , XXXXXXX , XXXXXXX, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15 , XXXXXXX , XXXXXXX, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25 , XXXXXXX , XXXXXXX, K28, K29, K2A, K2B, K2C, \ + ____________________________________________________________PLANCK_VERBOSE_BOTTOM_ROW_____________________________________________________________ ) + +/** + * Shifted Key conflicts: + * K12, K13, K14, K19, K1A, K1B, K21, K2C + */ +# define WRAPPER_planck_base( \ + K01, K02, K03, K04, K05, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K28, K29, K2A, K2B, K2C \ + ) WRAPPER_ortho_4x12( \ + K01 , K02 , K03 , K04 , K05 , KC_GAME , KC_GAME, K08, K09 , K0A , K0B , K0C, \ + K11 , SFT_T(K12), GUI_T(K13), ALT_T(K14), K15 , XXXXXXX , XXXXXXX, K18, ALT_T(K19), GUI_T(K1A), SFT_T(K1B), K1C, \ + CTL_T(K21), K22 , K23 , K24 , K25 , XXXXXXX , XXXXXXX, K28, K29 , K2A , K2B , CTL_T(K2C), \ + ____________________________________________________________PLANCK_VERBOSE_BOTTOM_ROW_____________________________________________________________ ) + +# define WRAPPER_planck_mods( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \ + ) WRAPPER_ortho_4x12( \ + K01 , K02 , K03 , K04 , K05 , K06 , K07, K08, K09 , K0A , K0B , K0C, \ + K11 , SFT_T(K12), GUI_T(K13), ALT_T(K14), K15 , K16 , K17, K18, ALT_T(K19), GUI_T(K1A), SFT_T(K1B), K1C, \ + CTL_T(K21), K22 , K23 , K24 , K25 , K26 , K27, K28, K29 , K2A , K2B , CTL_T(K2C), \ + K31, K32 , K33 , K34 , LT(_LOWER, K35), SFT_T(K36), XXXXXXX, LT(_RAISE, K38), K39 , K3A , K3B, K3C ) + + + +// These macros are used when defining layouts in keymap.c +# define LAYOUT_planck_base(...) WRAPPER_planck_base(__VA_ARGS__) +# define LAYOUT_planck_common(...) WRAPPER_planck_common(__VA_ARGS__) +# define LAYOUT_planck_mods(...) WRAPPER_planck_mods(__VA_ARGS__) + +#elif defined(KEYBOARD_moonlander) +/** Moonlander Empty + * ( \ + k00, k01, k02, k03, k04, k05, k06, k60, k61, k62, k63, k64, k65, k66, \ + k10, k11, k12, k13, k14, k15, k16, k70, k71, k72, k73, k74, k75, k76, \ + k20, k21, k22, k23, k24, k25, k26, k80, k81, k82, k83, k84, k85, k86, \ + k30, k31, k32, k33, k34, k35, k91, k92, k93, k94, k95, k96, \ + k40, k41, k42, k43, k44, k53, kb3, ka2, ka3, ka4, ka5, ka6, \ + k50, k51, k52, kb4, kb5, kb6 \ + ) \ + */ +# define WRAPPER_moonlander(...) LAYOUT_moonlander(__VA_ARGS__) +# define WRAPPER_moonlander_common( \ + k11, k12, k13, k14, k15, k71, k72, k73, k74, k75, \ + k21, k22, k23, k24, k25, k81, k82, k83, k84, k85, \ + k31, k32, k33, k34, k35, k91, k92, k93, k94, k95, \ + k41, k42, k43, k44, ka2, ka3, ka4, ka5 \ + ) WRAPPER_moonlander( \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, k11, k12, k13, k14, k15, XXXXXXX, XXXXXXX, k71, k72, k73, k74, k75, XXXXXXX, \ + XXXXXXX, k21, k22, k23, k24, k25, XXXXXXX, XXXXXXX, k81, k82, k83, k84, k85, XXXXXXX, \ + KC_LSFT, k31, k32, k33, k34, k35, k91, k92, k93, k94, k95, KC_RSFT, \ + MO(_SPECIAL), k41, k42, k43, k44, TO(_GAME), XXXXXXX, ka2, ka3, ka4, ka5, MO(_SPECIAL), \ + LT(_LOWER, KC_SPC),HYPR_T(KC_BSPC),KC_LEAD, KC_CCCV,SFT_T(KC_TAB),LT(_RAISE, KC_ENT) ) + +# define WRAPPER_moonlander_mods( \ + k11, k12, k13, k14, k15, k71, k72, k73, k74, k75, \ + k21, k22, k23, k24, k25, k81, k82, k83, k84, k85, \ + k31, k32, k33, k34, k35, k91, k92, k93, k94, k95, \ + k41, k42, k43, k44, ka2, ka3, ka4, ka5 \ + ) WRAPPER_moonlander_common( \ + k11 , k12 , k13 , k14 , k15, k71, k72, k73, k74, k75, \ + k21 , SFT_T(k22), GUI_T(k23), ALT_T(k24), k25, k81, ALT_T(k82), GUI_T(k83), SFT_T(k84), k85, \ + CTL_T(k31), k32 , k33 , k34 , k35, k91, k92, k93, k94, CTL_T(k95), \ + k41 , k42 , k43 , k44 , ka2, ka3, ka4, ka5 \ + ) +# define WRAPPER_moonlander_gamepad( \ + k00, k01, k02, k03, k04, k05, k06, \ + k10, k11, k12, k13, k14, k15, k16, \ + k20, k21, k22, k23, k24, k25, k26, \ + k30, k31, k32, k33, k34, k35, \ + k40, k41, k42, k43, k44, k53, \ + k50, k51, k52 \ + ) WRAPPER_moonlander( \ + k00, k01, k02, k03, k04, k05, k06, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + k10, k11, k12, k13, k14, k15, k16, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + k20, k21, k22, k23, k24, k25, k26, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + k30, k31, k32, k33, k34, k35, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + k40, k41, k42, k43, k44, k53, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + k50, k51, k52, XXXXXXX, XXXXXXX, TO(_WORKMAN) \ + ) + +# define LAYOUT_moonlander_common(...) WRAPPER_moonlander_common(__VA_ARGS__) +# define LAYOUT_moonlander_mods(...) WRAPPER_moonlander_mods(__VA_ARGS__) +# define LAYOUT_moonlander_gamepad(...) WRAPPER_moonlander_gamepad(__VA_ARGS__) +#elif defined(KEYBOARD_ergodox_ez) +/** Ergodox EZ Empty + .---------------------------------------------. .---------------------------------------------. + | | | | | | | | ! | | | | | | | + !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! + | | | | | | | | ! | | | | | | | + !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! + | | | | | | |-------! !-------! | | | | | | + !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! + | | | | | | | | ! | | | | | | | + '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | | | | | | ! | | | | | + '------------------------------' '------------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' + + ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- + ( \ + L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \ + L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \ + L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \ + L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \ + L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \ + L55,L56, R50,R51, \ + L54, R52, \ + L53,L52,L51, R55,R54,R53 \ + ) +*/ +# define WRAPPER_ergodox_ez(...) LAYOUT_ergodox_pretty(__VA_ARGS__) + +/** Common Wrapper + .---------------------------------------------. .---------------------------------------------. + | X | X | X | X | X | X | X | ! X | X | X | X | X | X | X | + !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! + | X | | | | | | X | ! X | | | | | | X | + !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! + | X | | | | | |-------! !-------! | | | | | X | + !-------+-----+-----+-----x-----x-----! X ! ! X !-----x-----x-----+-----+-----+-------! + | X | | | | | | | ! | | | | | | X | + '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | SPCL | | | | | ! | | | | SPCL | + '------------------------------' '------------------------------' + .---------------. .---------------. + | X | X | ! X | X | + .-------+-------+-------! !-------+-------+-------. + ! Space ! BSpace| X | ! X | Tab ! Enter ! + ! / ! / !-------! !-------! / ! / ! + | LOWER | Hyper | LEAD | ! CCCV | Meh | RAISE | + '-----------------------' '-----------------------' +*/ +# define WRAPPER_ergodox_common( \ + L11,L12,L13,L14,L15, R11,R12,R13,R14,R15, \ + L21,L22,L23,L24,L25, R21,R22,R23,R24,R25, \ + L31,L32,L33,L34,L35, R31,R32,R33,R34,R35, \ + L41,L42,L43,L44, R42,R43,R44,R45 \ + ) WRAPPER_ergodox_ez( \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, L11, L12, L13, L14, L15, XXXXXXX, XXXXXXX, R11, R12, R13, R14, R15, XXXXXXX, \ + XXXXXXX, L21, L22, L23, L24, L25, R21, R22, R23, R24, R25, XXXXXXX, \ + KC_LSFT, L31, L32, L33, L34, L35, XXXXXXX, XXXXXXX, R31, R32, R33, R34, R35, KC_RSFT, \ + MO(_SPECIAL), L41, L42, L43, L44, R42, R43, R44, R45, MO(_SPECIAL), \ + \ + XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX, \ + XXXXXXX, XXXXXXX, \ + LT(_LOWER, KC_SPC),HYPR_T(KC_BSPC),KC_LEAD, KC_CCCV,SFT_T(KC_TAB),LT(_RAISE, KC_ENT) ) + +/** Common Wrapper with Mod Tap/Hold overlay + .---------------------------------------------. .---------------------------------------------. + | X | X | X | X | X | X | X | ! X | X | X | X | X | X | X | + !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! + | X | | | | | | X | ! X | | | | | | X | + !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! + | X | |Shift| Cmd | Alt | |-------! !-------! | Alt | Cmd |Shift| | X | + !-------+-----+-----+-----x-----x-----! X ! ! X !-----x-----x-----+-----+-----+-------! + | Sft | Ctl | | | | | | ! | | | | | Ctl | Sft | + '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | SPCL | | | | | ! | | | | SPCL | + '------------------------------' '------------------------------' + .---------------. .---------------. + | X | X | ! X | X | + .-------+-------+-------! !-------+-------+-------. + ! Space ! BSpace| X | ! X | Tab ! Enter ! + ! / ! / !-------! !-------! / ! / ! + | LOWER | Hyper | LEAD | ! CCCV | Meh | RAISE | + '-----------------------' '-----------------------' +*/ +# define WRAPPER_ergodox_mods( \ + L11,L12,L13,L14,L15, R11,R12,R13,R14,R15, \ + L21,L22,L23,L24,L25, R21,R22,R23,R24,R25, \ + L31,L32,L33,L34,L35, R31,R32,R33,R34,R35, \ + L41,L42,L43,L44, R42,R43,R44,R45 \ + ) WRAPPER_ergodox_common( \ + L11 , L12 , L13 , L14 , L15, R11, R12 , R13 , R14 , R15, \ + L21 , SFT_T(L22), GUI_T(L23), ALT_T(L24), L25, R21, ALT_T(R22), GUI_T(R23), SFT_T(R24), R25, \ + CTL_T(L31), L32 , L33 , L34 , L35, R31, R32 , R33 , R34 , CTL_T(R35), \ + L41 , L42 , L43 , L44 , R42 , R43 , R44 , R45 ) + +// These macros are used when defining layouts in keymap.c +# define LAYOUT_ergodox_common(...) WRAPPER_ergodox_common(__VA_ARGS__) +# define LAYOUT_ergodox_mods(...) WRAPPER_ergodox_mods(__VA_ARGS__) +#endif // END Keyboard specific wrapper defines +/** + * Alpha/Num key wrappers for portability + */ + +// Workman +#define __________________WORKMN_L1__________________ KC_Q, KC_D, KC_R, KC_W, KC_B +#define __________________WORKMN_L2__________________ KC_A, KC_S, KC_H, KC_T, KC_G +#define __________________WORKMN_L3__________________ KC_Z, KC_X, KC_M, KC_C, KC_V + +#define __________________WORKMN_R1__________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN +#define __________________WORKMN_R2__________________ KC_Y, KC_N, KC_E, KC_O, KC_I +#define __________________WORKMN_R3__________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH + +// QWERTY +#define __________________QWERTY_L1__________________ KC_Q, KC_W, KC_E, KC_R, KC_T +#define __________________QWERTY_L2__________________ KC_A, KC_S, KC_D, KC_F, KC_G +#define __________________QWERTY_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define __________________QWERTY_R1__________________ KC_Y, KC_U, KC_I, KC_O, KC_P +#define __________________QWERTY_R2__________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN +#define __________________QWERTY_R3__________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH + +#define ________________QWERTY_R1_LHS________________ KC_P, KC_O, KC_I, KC_U, KC_Y +#define ________________QWERTY_R2_LHS________________ KC_SCLN, KC_L, KC_K, KC_J, KC_H +#define ________________QWERTY_R3_LHS________________ KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N + +// Nums +#define ___________________NUMS_L____________________ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6 +#define ___________________NUMS_R____________________ KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL + +// Lower +#define __________________LOWER_L1___________________ KC_PGUP, KC_TAB, KC_UP, KC_ENT, KC_PGDN +#define __________________LOWER_L2___________________ KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END +#define __________________LOWER_L3___________________ KC_ESC, KC_BSPC, KC_CUT, KC_DEL, KC_CCCV + +#define __________________LOWER_R1___________________ XXXXXXX, KC_7, KC_8, KC_9, KC_ASTR +#define __________________LOWER_R2___________________ XXXXXXX, KC_4, KC_5, KC_6, KC_SLSH +#define __________________LOWER_R3___________________ XXXXXXX, KC_1, KC_2, KC_3, KC_MINS +// Relevant keys: -> KC_0, KC_DOT, KC_COMM, KC_PLUS <- these keys break our lovely wrapper pattern + +// Raise +#define __________________RAISE_L1___________________ KC_PIPE, KC_UNDS, KC_LBRC, KC_RBRC, KC_AMPR +#define __________________RAISE_L2___________________ KC_BSLS, KC_SLSH, KC_LCBR, KC_RCBR, KC_ASTR +#define __________________RAISE_L3___________________ KC_HASH, KC_DLR , KC_PERC, KC_TILD, KC_GRV + +#define __________________RAISE_R1___________________ KC_EXLM, KC_LABK, KC_RABK, KC_MINS, KC_SCLN +#define __________________RAISE_R2___________________ KC_QUES, KC_LPRN, KC_RPRN, KC_EQL, KC_COLN +#define __________________RAISE_R3___________________ KC_AT, KC_QUOT, KC_DQUO, KC_PLUS, KC_CIRC + +// Adjust +#define __________________ADJUST_L1__________________ KC_MAKE, DEBUG, RESET, TERM_ON, TERM_OFF +#define __________________ADJUST_L2__________________ KC__MUTE, KC__VOLDOWN, KC__VOLUP, KC_MPLY, KC_MNXT +#define __________________ADJUST_L3__________________ KC_VRSN, AU_ON, AU_OFF, CG_SWAP, CG_NORM + +#define __________________ADJUST_R1__________________ MU_MOD, MU_ON, MU_OFF, MI_ON, MI_OFF +#define __________________ADJUST_R2__________________ MUV_IN, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD +#define __________________ADJUST_R3__________________ MUV_DE, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD +// clang-format on From 356561c438766df09e8b90a81778b2053e319a6a Mon Sep 17 00:00:00 2001 From: Quentin Date: Thu, 12 Aug 2021 16:45:42 +0200 Subject: [PATCH 217/328] [Keyboard] Add Skeletyl keyboard (#13495) Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/bastardkb/skeletyl/config.h | 57 +++++++++++++++ keyboards/bastardkb/skeletyl/info.json | 49 +++++++++++++ .../skeletyl/keymaps/default/keymap.c | 70 +++++++++++++++++++ keyboards/bastardkb/skeletyl/readme.md | 17 +++++ keyboards/bastardkb/skeletyl/rules.mk | 33 +++++++++ keyboards/bastardkb/skeletyl/skeletyl.c | 57 +++++++++++++++ keyboards/bastardkb/skeletyl/skeletyl.h | 37 ++++++++++ 7 files changed, 320 insertions(+) create mode 100644 keyboards/bastardkb/skeletyl/config.h create mode 100644 keyboards/bastardkb/skeletyl/info.json create mode 100644 keyboards/bastardkb/skeletyl/keymaps/default/keymap.c create mode 100644 keyboards/bastardkb/skeletyl/readme.md create mode 100644 keyboards/bastardkb/skeletyl/rules.mk create mode 100644 keyboards/bastardkb/skeletyl/skeletyl.c create mode 100644 keyboards/bastardkb/skeletyl/skeletyl.h diff --git a/keyboards/bastardkb/skeletyl/config.h b/keyboards/bastardkb/skeletyl/config.h new file mode 100644 index 000000000000..2431f59df4fa --- /dev/null +++ b/keyboards/bastardkb/skeletyl/config.h @@ -0,0 +1,57 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 VENDOR_ID 0xA8F8 +#define PRODUCT_ID 0x1830 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bastard Keyboards +#define PRODUCT Skeletyl + +#define MATRIX_ROWS 8 +#define MATRIX_COLS 5 +#define RGBLIGHT_LIMIT_VAL 180 +#define MATRIX_ROW_PINS { B5, F7, F6, B6 } +#define MATRIX_COL_PINS { E6, C6, B1, B3, B2 } + +#define DIODE_DIRECTION ROW2COL + +#define RGB_DI_PIN D2 +#define RGBLED_NUM 36 +#define RGBLED_SPLIT { 18, 18 } +#define RGBLIGHT_ANIMATIONS + +#define DEBOUNCE 5 + +#define SOFT_SERIAL_PIN D0 + +#define USB_POLLING_INTERVAL_MS 1 +#define MASTER_RIGHT + +// RGB matrix support +#ifdef RGB_MATRIX_ENABLE +# define SPLIT_TRANSPORT_MIRROR +# define DRIVER_LED_TOTAL 36 // Number of LEDs +# define RGB_MATRIX_SPLIT { 18, 18 } +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +# ifndef RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_DISABLE_WHEN_USB_SUSPENDED true +# endif +# define RGB_MATRIX_KEYPRESSES +#endif diff --git a/keyboards/bastardkb/skeletyl/info.json b/keyboards/bastardkb/skeletyl/info.json new file mode 100644 index 000000000000..d7ebf8014794 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/info.json @@ -0,0 +1,49 @@ +{ + "keyboard_name": "Skeletyl", + "url": "https://www.bastardkb.com", + "maintainer": "Quentin Lebastard", + "width": 17, + "height": 4, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"label":"L00", "x":0, "y":0}, + {"label":"L01", "x":1, "y":0}, + {"label":"L02", "x":2, "y":0}, + {"label":"L03", "x":3, "y":0}, + {"label":"L04", "x":4, "y":0}, + {"label":"R00", "x":11, "y":0}, + {"label":"R01", "x":12, "y":0}, + {"label":"R02", "x":13, "y":0}, + {"label":"R03", "x":14, "y":0}, + {"label":"R04", "x":15, "y":0}, + {"label":"L10", "x":0, "y":1}, + {"label":"L11", "x":1, "y":1}, + {"label":"L12", "x":2, "y":1}, + {"label":"L13", "x":3, "y":1}, + {"label":"L14", "x":4, "y":1}, + {"label":"R10", "x":11, "y":1}, + {"label":"R11", "x":12, "y":1}, + {"label":"R12", "x":13, "y":1}, + {"label":"R13", "x":14, "y":1}, + {"label":"R14", "x":15, "y":1}, + {"label":"L20", "x":0, "y":2}, + {"label":"L21", "x":1, "y":2}, + {"label":"L22", "x":2, "y":2}, + {"label":"L23", "x":3, "y":2}, + {"label":"L24", "x":4, "y":2}, + {"label":"R20", "x":11, "y":2}, + {"label":"R21", "x":12, "y":2}, + {"label":"R22", "x":13, "y":2}, + {"label":"R23", "x":14, "y":2}, + {"label":"R24", "x":15, "y":2}, + {"label":"L33", "x":4, "y":3}, + {"label":"L34", "x":5, "y":3}, + {"label":"L31", "x":6, "y":3}, + {"label":"R33", "x":9, "y":3}, + {"label":"R34", "x":10, "y":3}, + {"label":"R31", "x":11, "y":3} + ] + } + } +} diff --git a/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c new file mode 100644 index 000000000000..56e56d9a434c --- /dev/null +++ b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC , MO(1), MO(2), KC_ENT , KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, MO(3), KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, MO(3), _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/bastardkb/skeletyl/readme.md b/keyboards/bastardkb/skeletyl/readme.md new file mode 100644 index 000000000000..6c36b5835641 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/readme.md @@ -0,0 +1,17 @@ +# Skeletyl + +A very small keyboard made for ergonomic enthusiasts. + +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastardkb.com](https://bastardkb.com/) + +Make example for this keyboard (after setting up your build environment): + + make bastardkb/skeletyl:default + +This keyboard is made to be used with the Miryoku layout, do not use the default keymap. + +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). + +See the [keyboard build instructions](http://docs.bastardkb.com/) diff --git a/keyboards/bastardkb/skeletyl/rules.mk b/keyboards/bastardkb/skeletyl/rules.mk new file mode 100644 index 000000000000..1afabf51c3b2 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) +RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes +TAP_DANCE_ENABLE = no +LTO_ENABLE = yes + +AUDIO_SUPPORTED = no +RGB_MATRIX_SUPPORTED = yes +RGBLIGHT_SUPPORTED = yes + +LAYOUTS = split_3x5_3 diff --git a/keyboards/bastardkb/skeletyl/skeletyl.c b/keyboards/bastardkb/skeletyl/skeletyl.c new file mode 100644 index 000000000000..057465b4a887 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/skeletyl.c @@ -0,0 +1,57 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 "skeletyl.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // left + { 0, 5, 6, 11, 12 }, + { 1, 4, 7, 10, 13 }, + { 2, 3, 8, 9, 14 }, + { 15, NO_LED, 16, 17, NO_LED }, + // right + { 18, 23, 24, 29, 30 }, + { 19, 22, 25, 28, 31 }, + { 20, 21, 26, 27, 32 }, + { 33, NO_LED, 34, 35, NO_LED } +}, { + // left + { 0, 0 }, { 0, 21 }, { 0, 42 }, // col 1 + { 25, 42 }, { 25, 21 }, { 25, 0 }, // col 2 + { 50, 0 }, { 50, 21 }, { 50, 42 }, + { 74, 42 }, { 74, 21 }, { 74, 0 }, + { 99, 0 }, { 99, 21 }, { 99, 42 }, + { 50, 64 }, { 74, 64 }, { 99, 64 }, // left thumb cluster + // right + { 224, 0 }, { 224, 21 }, { 224, 42 }, // col 10 + { 198, 42 }, { 198, 21 }, { 198, 0 }, // col 9 + { 174, 0 }, { 174, 21 }, { 174, 42 }, + { 149, 42 }, { 149, 21 }, { 149, 0 }, + { 124, 0 }, { 124, 21 }, { 124, 42 }, + { 174, 64 }, { 149, 64 }, { 124, 64 } // right thumb cluster +}, { + // left + 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, + // right + 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2 +} }; +#endif diff --git a/keyboards/bastardkb/skeletyl/skeletyl.h b/keyboards/bastardkb/skeletyl/skeletyl.h new file mode 100644 index 000000000000..36399567ff81 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/skeletyl.h @@ -0,0 +1,37 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once +#include "quantum.h" + +#define LAYOUT_split_3x5_3( \ + k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ + k33, k34, k31, k71, k74, k73 \ +)\ +{\ + { k00, k01, k02, k03, k04 }, \ + { k10, k11, k12, k13, k14 }, \ + { k20, k21, k22, k23, k24 }, \ + { k31, KC_NO, k33, k34, KC_NO }, \ + { k40, k41, k42, k43, k44 }, \ + { k50, k51, k52, k53, k54 }, \ + { k60, k61, k62, k63, k64 }, \ + { k71, KC_NO, k73, k74, KC_NO }, \ +} From 8b9c5a9c337856b94587c975f762cfc6ddae75f0 Mon Sep 17 00:00:00 2001 From: Miles Flavel Date: Thu, 12 Aug 2021 23:25:09 +0800 Subject: [PATCH 218/328] [Keyboard] Fix incorrect RGBLED_NUM value for kbd67 (#13166) From 022e2748aff77ba9f22511a83e205fc4a6703bf6 Mon Sep 17 00:00:00 2001 From: Christian Sandven Date: Thu, 12 Aug 2021 17:38:37 +0200 Subject: [PATCH 219/328] [Keyboard] Keyprez rhino (#13035) Co-authored-by: Ryan --- keyboards/keyprez/rhino/config.h | 115 +++++++++++ keyboards/keyprez/rhino/info.json | 179 ++++++++++++++++++ .../keyprez/rhino/keymaps/default/keymap.c | 116 ++++++++++++ .../keyprez/rhino/keymaps/default/readme.md | 1 + .../keyprez/rhino/keymaps/default_7u/keymap.c | 117 ++++++++++++ .../rhino/keymaps/default_7u/readme.md | 1 + .../rhino/keymaps/default_ergo/keymap.c | 124 ++++++++++++ .../rhino/keymaps/default_ergo/readme.md | 1 + keyboards/keyprez/rhino/readme.md | 22 +++ keyboards/keyprez/rhino/rhino.c | 32 ++++ keyboards/keyprez/rhino/rhino.h | 80 ++++++++ keyboards/keyprez/rhino/rules.mk | 23 +++ 12 files changed, 811 insertions(+) create mode 100644 keyboards/keyprez/rhino/config.h create mode 100644 keyboards/keyprez/rhino/info.json create mode 100644 keyboards/keyprez/rhino/keymaps/default/keymap.c create mode 100644 keyboards/keyprez/rhino/keymaps/default/readme.md create mode 100644 keyboards/keyprez/rhino/keymaps/default_7u/keymap.c create mode 100644 keyboards/keyprez/rhino/keymaps/default_7u/readme.md create mode 100644 keyboards/keyprez/rhino/keymaps/default_ergo/keymap.c create mode 100644 keyboards/keyprez/rhino/keymaps/default_ergo/readme.md create mode 100644 keyboards/keyprez/rhino/readme.md create mode 100644 keyboards/keyprez/rhino/rhino.c create mode 100644 keyboards/keyprez/rhino/rhino.h create mode 100644 keyboards/keyprez/rhino/rules.mk diff --git a/keyboards/keyprez/rhino/config.h b/keyboards/keyprez/rhino/config.h new file mode 100644 index 000000000000..b89be8fdc2b3 --- /dev/null +++ b/keyboards/keyprez/rhino/config.h @@ -0,0 +1,115 @@ +/* +Copyright 2021 Christian Sandven + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Christian Sandven +#define PRODUCT rhino + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 7 + +/* + * 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 { B3, B2, B6, B1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { D3, D2, D4, D7, E6, B4, B5 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define ENCODERS_PAD_A { D1 } +#define ENCODERS_PAD_B { D0 } +#define ENCODER_RESOLUTION 4 + +#define AUDIO_PIN C6 +#define MUSIC_MAP + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 2 + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/keyprez/rhino/info.json b/keyboards/keyprez/rhino/info.json new file mode 100644 index 000000000000..5bf37e06b6fc --- /dev/null +++ b/keyboards/keyprez/rhino/info.json @@ -0,0 +1,179 @@ +{ + "keyboard_name": "rhino", + "url": "", + "maintainer": "Christian Sandven", + "width": 14, + "height": 4, + "layouts": { + "LAYOUT_ortho_2x2u": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "w": 1.5}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2}, + {"x": 13.5, "y": 2, "w": 1.5}, + + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4}, + {"x": 3.5, "y": 4}, + {"x": 4.5, "y": 4}, + {"x": 5.5, "y": 4, "w": 2}, + {"x": 7.5, "y": 4, "w": 2}, + {"x": 9.5, "y": 4}, + {"x": 10.5, "y": 4}, + {"x": 11.5, "y": 4}, + {"x": 12.5, "y": 4} + ] + }, + + "LAYOUT_ergo_2x2u": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0, "h": 1.5}, + {"x": 7.5, "y": 0, "h": 1.5}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "w": 1.5}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1.5, "h": 1.5}, + {"x": 7.5, "y": 1.5, "h": 1.5}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2}, + {"x": 13.5, "y": 2, "w": 1.5}, + + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4}, + {"x": 3.5, "y": 4}, + {"x": 4.5, "y": 4}, + {"x": 5.5, "y": 4, "w": 2}, + {"x": 7.5, "y": 4, "w": 2}, + {"x": 9.5, "y": 4}, + {"x": 10.5, "y": 4}, + {"x": 11.5, "y": 4}, + {"x": 12.5, "y": 4} + ] + }, + + "LAYOUT_ortho_7u": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0, "h": 1.5}, + {"x": 7.5, "y": 0, "h": 1.5}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "w": 1.5}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1.5, "h": 1.5}, + {"x": 7.5, "y": 1.5, "h": 1.5}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1, "w": 1.5}, + {"x": 14, "y": 1}, + + {"x": 0, "y": 2, "w": 1.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2, "w": 1.5}, + {"x": 13, "y": 2}, + {"x": 14, "y": 2}, + + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4, "w": 1.5}, + {"x": 4, "y": 4, "w": 7}, + {"x": 11, "y": 4, "w": 1.5}, + {"x": 12.5, "y": 4} + ] + } + } +} diff --git a/keyboards/keyprez/rhino/keymaps/default/keymap.c b/keyboards/keyprez/rhino/keymaps/default/keymap.c new file mode 100644 index 000000000000..c58c3e8ccb4f --- /dev/null +++ b/keyboards/keyprez/rhino/keymaps/default/keymap.c @@ -0,0 +1,116 @@ +/* Copyright 2021 Christian Sandven + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _LOWER, + _RAISE +}; + +#define LOWER MO(_LOWER) +#define FN MO(_FN) +#define TAB_CTL MT(MOD_LCTL, KC_TAB) +#define SPC_RAISE LT(_RAISE, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_MUTE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | GESC | Q | W | E | R | T | [ | ] | Y | U | I | O | P | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | TAB | A | S | D | F | G | HOME | PG UP | H | J | K | L | ; | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LSHIFT | Z | X | C | V | B | END | PG DN | N | M | , | . | / | ENTER | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | LGUI | FN | LALT | LOWER | SPACE | SPACE | LEFT | UP | DOWN | RIGHT | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_BASE] = LAYOUT_ortho_2x2u( + KC_MUTE, + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, + TAB_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSPC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, FN, KC_LALT, LOWER, KC_SPC, KC_SPC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT + ), + + /* FN Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_APP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | DEL | PRT SC | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | | | | | | | | | | | | | RESET | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | MUTE | VOL UP |VOL DOWN| PAUSE | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_FN] = LAYOUT_ortho_2x2u( + KC_APP, + 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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, KC_DEL, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + MU_TOG, MU_MOD, _______, _______, _______, _______, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPLY + ), + + /* LOWER Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_APP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | | INSERT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO # | ISO / | | | | \ | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | HOME | PG UP | PG DN | END | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_2x2u( + KC_APP, + 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, _______, _______, KC_INS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_PGDOWN, KC_END + ), + + /* RAISE Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_APP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | - | = | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | { | } | | | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO ~ | ISO | | | | | | INSERT | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_2x2u( + KC_APP, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS, KC_EQL, KC_PIPE, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_DEL, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/keyprez/rhino/keymaps/default/readme.md b/keyboards/keyprez/rhino/keymaps/default/readme.md new file mode 100644 index 000000000000..2a9de9d74632 --- /dev/null +++ b/keyboards/keyprez/rhino/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for rhino diff --git a/keyboards/keyprez/rhino/keymaps/default_7u/keymap.c b/keyboards/keyprez/rhino/keymaps/default_7u/keymap.c new file mode 100644 index 000000000000..a24f45db65a4 --- /dev/null +++ b/keyboards/keyprez/rhino/keymaps/default_7u/keymap.c @@ -0,0 +1,117 @@ +/* Copyright 2021 Christian Sandven + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _LOWER, + _RAISE +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define FN MO(_FN) +#define ESC_CTL MT(MOD_LCTL, KC_ESC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_MUTE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | BACKSP | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | FN | PG DN | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | LGUI | LALT | SPACE | RALT | RGUI | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_BASE] = LAYOUT_ortho_7u( + KC_MUTE, + 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, + ESC_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSPC, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, FN, KC_PGDN, + LOWER, KC_LALT, KC_SPC, RAISE, KC_RGUI + ), + + /* FN Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_APP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | DEL | PRT SC | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | | | | | | | | | | | | | RESET | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | MU TOG | MU MOD | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_FN] = LAYOUT_ortho_7u( + KC_APP, + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, KC_UP, _______, _______, _______, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + MU_TOG, MU_MOD, _______, _______, _______ + ), + + /* LOWER Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_APP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | LEFT | DOWN | UP | RIGHT | | | DEL | INSERT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO # | ISO / | | | | | \ | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | | F6 | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_7u( + KC_APP, + 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_PIPE, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_DEL, KC_INS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, _______, KC_BSLS, + _______, KC_F6, _______, _______, _______ + ), + + /* RAISE Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_APP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | - | = | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | { | } | | DEL | INSERT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO ~ | ISO | | | | | | \ | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_7u( + KC_APP, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS, KC_EQL, KC_PIPE, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, KC_DEL, KC_INS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______, _______, KC_BSLS, + _______, _______, _______, _______, _______ + ), +}; + diff --git a/keyboards/keyprez/rhino/keymaps/default_7u/readme.md b/keyboards/keyprez/rhino/keymaps/default_7u/readme.md new file mode 100644 index 000000000000..1b930c1e7d7d --- /dev/null +++ b/keyboards/keyprez/rhino/keymaps/default_7u/readme.md @@ -0,0 +1 @@ +# The default 7u keymap for rhino diff --git a/keyboards/keyprez/rhino/keymaps/default_ergo/keymap.c b/keyboards/keyprez/rhino/keymaps/default_ergo/keymap.c new file mode 100644 index 000000000000..ac73e3d79606 --- /dev/null +++ b/keyboards/keyprez/rhino/keymaps/default_ergo/keymap.c @@ -0,0 +1,124 @@ +/* Copyright 2021 Christian Sandven + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _LOWER, + _RAISE +}; + +#define LOWER MO(_LOWER) +#define FN MO(_FN) +#define TAB_CTL MT(MOD_LCTL, KC_TAB) +#define SPC_RAISE LT(_RAISE, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_MUTE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | GESC | Q | W | E | R | T | | | Y | U | I | O | P | ' | + * |--------+--------+--------+--------+--------+--------+ [ + ] +--------+--------+--------+-----------------+--------| + * | TAB | A | S | D | F | G |--------|--------| H | J | K | L | ; | BACKSP | + * |--------+--------+--------+--------+--------+--------+ HOME + END +--------+--------+--------------------------+--------| + * | LSHIFT | Z | X | C | V | B | | | N | M | , | . | / | ENTER | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | LGUI | FN | LALT | LOWER | SPACE | SPACE | LEFT | UP | DOWN | RIGHT | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_BASE] = LAYOUT_ergo_2x2u( + KC_MUTE, + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, + TAB_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_END, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSPC, + 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, FN, KC_LALT, LOWER, KC_SPC, SPC_RAISE, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT + ), + + /* FN Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_APP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ` | F1 | F2 | F3 | F4 | F5 | | | F8 | F9 | F10 | F11 | F12 | | + * |--------+--------+--------+--------+--------+--------+ F6 + F7 +--------+--------+--------+-----------------+---------| + * | | F7 | F8 | F9 | F10 | F11 |--------|--------| | | | | | PRT SC | + * |--------+--------+--------+--------+--------+--------+ F12 + +--------+--------+--------------------------+--------| + * | | | | | | | | | | | | | | RESET | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | MU TOG | MU MOD | | | | | MUTE | VOL UP |VOL DOWN| PAUSE | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_FN] = LAYOUT_ergo_2x2u( + KC_APP, + 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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + MU_TOG, MU_MOD, _______, _______, _______, _______, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPLY + ), + + /* LOWER Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_APP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ` | 1 | 2 | 3 | 4 | 5 | | | 8 | 9 | 0 | - | = | | | + * |--------+--------+--------+--------+--------+--------+ 6 + 7 +--------+--------+--------+-----------------+--------| + * | | F1 | F2 | F3 | F4 | F5 |--------|--------| | | | | DEL | INSERT | + * |--------+--------+--------+--------+--------+--------+ F12 + +--------+--------+--------------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | | | | | | | \ | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | HOME | PG UP | PG DN | END | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ergo_2x2u( + KC_APP, + 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_PIPE, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F12, _______, _______, _______, _______, _______, KC_DEL, KC_INS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, _______, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_PGDOWN, KC_END + ), + + /* RAISE Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | KC_APP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ~ | ! | @ | # | $ | % | | | * | ( | ) | - | = | | | + * |--------+--------+--------+--------+--------+--------+ ^ + & +--------+--------+--------+-----------------+--------| + * | | F1 | F2 | F3 | F4 | F5 |--------|--------| = | { | } | | DEL | INSERT | + * |--------+--------+--------+--------+--------+--------+ F12 + _ +--------+--------+--------------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | | | ISO ~ | ISO | | | | \ | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ergo_2x2u( + KC_APP, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS, KC_EQL, KC_PIPE, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, KC_DEL, KC_INS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, S(KC_NUHS), S(KC_NUBS), _______, _______, _______, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ergo_2x2u( + 0, + 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 3, 0, 6, 8, 9, 11, 13, 15, 0, 18, 20, 0, + 0, 0, 2, 4, 5, 7, 12, 14, 16, 17, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +); diff --git a/keyboards/keyprez/rhino/keymaps/default_ergo/readme.md b/keyboards/keyprez/rhino/keymaps/default_ergo/readme.md new file mode 100644 index 000000000000..2a9de9d74632 --- /dev/null +++ b/keyboards/keyprez/rhino/keymaps/default_ergo/readme.md @@ -0,0 +1 @@ +# The default keymap for rhino diff --git a/keyboards/keyprez/rhino/readme.md b/keyboards/keyprez/rhino/readme.md new file mode 100644 index 000000000000..d63c1b23b049 --- /dev/null +++ b/keyboards/keyprez/rhino/readme.md @@ -0,0 +1,22 @@ +# rhino + +Rhino is a 50 percent keyboard taking inspiration from the Boardwalk keyboard. It supports some of the layouts the bordwalk does, but in a smaller form factor. The number row is removed and replaced with through hole components. + +![](https://i.imgur.com/OqCJZWah.jpg) + + +* Keyboard Maintainer: [Christian Sandven](https://github.com/csandven) +* Hardware Supported: *Pro micro compatible boards* +* Hardware Availability: *TBA* + +Make example for this keyboard (after setting up your build environment): + + make keyprez/rhino:default + +Flashing example for this keyboard: + + make keyprez/rhino:default:flash + +You can then press the reset button on the top right to flash the keyboard. + +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). diff --git a/keyboards/keyprez/rhino/rhino.c b/keyboards/keyprez/rhino/rhino.c new file mode 100644 index 000000000000..31302eff5b71 --- /dev/null +++ b/keyboards/keyprez/rhino/rhino.c @@ -0,0 +1,32 @@ +/* Copyright 2021 Christian Sandven + * + * 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 "rhino.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + tap_code(clockwise ? KC_VOLU : KC_VOLD); + return true; +} + +__attribute__ ((weak)) +const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_2x2u( + 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 3, 0, 6, 8, 10, 0, 13, 15, 0, 18, 20, 0, + 0, 0, 2, 4, 5, 7, 9, 11, 12, 14, 16, 17, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +); diff --git a/keyboards/keyprez/rhino/rhino.h b/keyboards/keyprez/rhino/rhino.h new file mode 100644 index 000000000000..30ebb94cbc18 --- /dev/null +++ b/keyboards/keyprez/rhino/rhino.h @@ -0,0 +1,80 @@ +/* Copyright 2021 Christian Sandven + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_2x2u( \ + k70, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, \ + k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06 }, \ + { k20, k21, k22, k23, k24, k25, k26 }, \ + { k40, k41, k42, k43, k44, k45, k46 }, \ + { KC_NO, k60, k61, k62, k63, KC_NO, k64 }, \ + { k07, k08, k09, k10, k11, k12, k13 }, \ + { k27, k28, k29, k30, k31, k32, k33 }, \ + { k47, k48, k49, k50, k51, k52, k53 }, \ + { k65, KC_NO, k66, k67, k68, k69, k70 } \ +} + +#define LAYOUT_ergo_2x2u( \ + k70, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, \ + k40, k41, k42, k43, k44, k45, k48, k49, k50, k51, k52, k53, \ + k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06 }, \ + { k20, k21, k22, k23, k24, k25, k26 }, \ + { k40, k41, k42, k43, k44, k45, KC_NO }, \ + { KC_NO, k60, k61, k62, k63, KC_NO, k64 }, \ + { k07, k08, k09, k10, k11, k12, k13 }, \ + { k27, k28, k29, k30, k31, k32, k33 }, \ + { KC_NO, k48, k49, k50, k51, k52, k53 }, \ + { k65, KC_NO, k66, k67, k68, k69, k70 } \ +} + +#define LAYOUT_ortho_7u( \ + k65, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, \ + k60, k61, k62, k63, k64 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06 }, \ + { k20, k21, k22, k23, k24, k25, k26 }, \ + { k40, k41, k42, k43, k44, k45, k46 }, \ + { KC_NO, k60, k61, KC_NO, KC_NO, KC_NO, k62 }, \ + { k07, k08, k09, k10, k11, k12, k13 }, \ + { k27, k28, k29, k30, k31, k32, k33 }, \ + { k47, k48, k49, k50, k51, k52, k53 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, k63, k64, k65 } \ +} + diff --git a/keyboards/keyprez/rhino/rules.mk b/keyboards/keyprez/rhino/rules.mk new file mode 100644 index 000000000000..745d1e372085 --- /dev/null +++ b/keyboards/keyprez/rhino/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = yes # Audio output +ENCODER_ENABLE = yes From 7ee2b0f1eea867da7b03a6acd4e5e0774cabc81d Mon Sep 17 00:00:00 2001 From: Paul James Date: Thu, 12 Aug 2021 17:49:51 +0200 Subject: [PATCH 220/328] [Keyboard] Add Tripel keyboard (#12635) --- keyboards/peej/tripel/config.h | 38 +++++++++ keyboards/peej/tripel/info.json | 82 +++++++++++++++++++ .../peej/tripel/keymaps/default/keymap.c | 54 ++++++++++++ keyboards/peej/tripel/keymaps/via/keymap.c | 50 +++++++++++ keyboards/peej/tripel/keymaps/via/rules.mk | 1 + keyboards/peej/tripel/left/left.h | 38 +++++++++ keyboards/peej/tripel/left/readme.md | 21 +++++ keyboards/peej/tripel/left/rules.mk | 1 + keyboards/peej/tripel/middle/middle.h | 38 +++++++++ keyboards/peej/tripel/middle/readme.md | 21 +++++ keyboards/peej/tripel/middle/rules.mk | 1 + keyboards/peej/tripel/right/readme.md | 21 +++++ keyboards/peej/tripel/right/right.h | 38 +++++++++ keyboards/peej/tripel/right/rules.mk | 1 + keyboards/peej/tripel/rules.mk | 24 ++++++ 15 files changed, 429 insertions(+) create mode 100644 keyboards/peej/tripel/config.h create mode 100644 keyboards/peej/tripel/info.json create mode 100644 keyboards/peej/tripel/keymaps/default/keymap.c create mode 100644 keyboards/peej/tripel/keymaps/via/keymap.c create mode 100644 keyboards/peej/tripel/keymaps/via/rules.mk create mode 100644 keyboards/peej/tripel/left/left.h create mode 100644 keyboards/peej/tripel/left/readme.md create mode 100644 keyboards/peej/tripel/left/rules.mk create mode 100644 keyboards/peej/tripel/middle/middle.h create mode 100644 keyboards/peej/tripel/middle/readme.md create mode 100644 keyboards/peej/tripel/middle/rules.mk create mode 100644 keyboards/peej/tripel/right/readme.md create mode 100644 keyboards/peej/tripel/right/right.h create mode 100644 keyboards/peej/tripel/right/rules.mk create mode 100644 keyboards/peej/tripel/rules.mk diff --git a/keyboards/peej/tripel/config.h b/keyboards/peej/tripel/config.h new file mode 100644 index 000000000000..50b0cc882983 --- /dev/null +++ b/keyboards/peej/tripel/config.h @@ -0,0 +1,38 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x706A +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Peej +#define PRODUCT Tripel + +/* key matrix size */ +#define MATRIX_ROWS 9 +#define MATRIX_COLS 8 +#define MATRIX_ROW_PINS { C6, D4, D0, B4, E6, D7, D1, D2, D3 } +#define MATRIX_COL_PINS { B5, B6, B2, B3, B1, F7, F6, F5 } +#define UNUSED_PINS { F4 } + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/peej/tripel/info.json b/keyboards/peej/tripel/info.json new file mode 100644 index 000000000000..2ad9480ff595 --- /dev/null +++ b/keyboards/peej/tripel/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "Tripel", + "url": "https://github.com/peej/tripel-keyboard", + "maintainer": "Peej", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_ortho_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":12, "y":0 }, + { "x":13, "y":0 }, + { "x":14, "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":12, "y":1 }, + { "x":13, "y":1 }, + { "x":14, "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":12, "y":2 }, + { "x":13, "y":2 }, + { "x":14, "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":12, "y":3 }, + { "x":13, "y":3 }, + { "x":14, "y":3 }, + { "x":0, "y":4 }, + { "x":1, "y":4 }, + { "x":2, "y":4 }, + { "x":3, "y":4 }, + { "x":7, "y":4, "w":7 }, + { "x":11, "y":4 }, + { "x":12, "y":4 }, + { "x":13, "y":4 }, + { "x":14, "y":4 } + ] + } + } +} diff --git a/keyboards/peej/tripel/keymaps/default/keymap.c b/keyboards/peej/tripel/keymaps/default/keymap.c new file mode 100644 index 000000000000..2b08adf773c7 --- /dev/null +++ b/keyboards/peej/tripel/keymaps/default/keymap.c @@ -0,0 +1,54 @@ +/* + * 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 + +// Layer shorthand +enum layer { + _BASE, + _FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + * ,-----------------------------------------------------------------------------------------------------------------------. + * | Gesc | 1 | 2 | 3 | 4 | 5 | - | Num | = | 6 | 7 | 8 | 9 | 0 | Bksp | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | Tab | Q | W | E | R | T | 7 | 8 | 9 | Y | U | I | O | P | Del | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | Ctrl | A | S | D | F | G | 4 | 5 | 6 | H | J | K | L | ; | ' | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | Shift | Z | X | C | V | B | 1 | 2 | 3 | N | M | , | . | / | Enter | + * |-------+-------+---------------------------------------------------------------------------------------+-------+-------| + * | Ctrl | Fn | Alt | Cmd | Space | Left | Down | Up | Right | + * `-----------------------------------------------------------------------------------------------------------------------' + */ + [_BASE] = LAYOUT_ortho_7u( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_NLCK, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, 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_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, MO(_FN), KC_LALT, KC_LGUI, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [_FN] = LAYOUT_ortho_7u( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F13, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/peej/tripel/keymaps/via/keymap.c b/keyboards/peej/tripel/keymaps/via/keymap.c new file mode 100644 index 000000000000..7c2664ee05c9 --- /dev/null +++ b/keyboards/peej/tripel/keymaps/via/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2021 Paul James + * + * 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_ortho_7u( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_NLCK, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, 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_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, MO(1), KC_LALT, KC_LGUI, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), +[1] = LAYOUT_ortho_7u( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F13, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[2] = LAYOUT_ortho_7u( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[3] = LAYOUT_ortho_7u( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; diff --git a/keyboards/peej/tripel/keymaps/via/rules.mk b/keyboards/peej/tripel/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/peej/tripel/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/peej/tripel/left/left.h b/keyboards/peej/tripel/left/left.h new file mode 100644 index 000000000000..852a503e6072 --- /dev/null +++ b/keyboards/peej/tripel/left/left.h @@ -0,0 +1,38 @@ +/* Copyright 2021 Paul James + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_7u( \ + l11, l12, l13, l14, l15, m11, m12, m13, m14, m15, r11, r12, r13, r14, r15, \ + l21, l22, l23, l24, l25, m21, m22, m23, m24, m25, r21, r22, r23, r24, r25, \ + l31, l32, l33, l34, l35, m31, m32, m33, m34, m35, r31, r32, r33, r34, r35, \ + l41, l42, l43, l44, l45, m41, m42, m43, m44, m45, r41, r42, r43, r44, r45, \ + l51, l52, l53, l54, m53, r52, r53, r54, r51 \ +) \ +{ \ + { r11, r12, r13, r14, r15, r25, r35, r45 }, \ + { r21, r22, r23, r24, r34, r44, r53, r54 }, \ + { r31, r32, r33, r43, r42, r41, r51, r52 }, \ + { l11, l12, l13, l14, l15, l25, l35, l45 }, \ + { l21, l22, l23, l24, l34, l44, l53, l54 }, \ + { l31, l32, l33, l43, l42, l41, l51, l52 }, \ + { m11, m12, m13, m14, m15, m25, m35, m45 }, \ + { m21, m22, m23, m24, m34, m44, m53, KC_NO }, \ + { m31, m32, m33, m43, m42, m41, KC_NO, KC_NO } \ +} diff --git a/keyboards/peej/tripel/left/readme.md b/keyboards/peej/tripel/left/readme.md new file mode 100644 index 000000000000..256622475732 --- /dev/null +++ b/keyboards/peej/tripel/left/readme.md @@ -0,0 +1,21 @@ +# Tripel +## Sub-100x100mm modula 60% ortholinear 7u PCB + +![tripel](https://github.com/peej/tripel-keyboard/raw/master/images/3pcbs.jpg) + +15x5 ortholinear PCB for 60% tray mount cases using only prototype sized PCBs. + +This revision is for when the Pro-Micro is mounted on the left most PCB. + +* Keyboard Maintainer: [Paul James](https://github.com/peej) +* Hardware Supported: Pro-Micro [PCB](https://github.com/peej/tripel-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make peej/tripel/left:default + +Flashing example for this keyboard: + + make peej/tripel/left: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). diff --git a/keyboards/peej/tripel/left/rules.mk b/keyboards/peej/tripel/left/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/peej/tripel/left/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/peej/tripel/middle/middle.h b/keyboards/peej/tripel/middle/middle.h new file mode 100644 index 000000000000..450eb095c358 --- /dev/null +++ b/keyboards/peej/tripel/middle/middle.h @@ -0,0 +1,38 @@ +/* Copyright 2021 Paul James + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_7u( \ + l11, l12, l13, l14, l15, m11, m12, m13, m14, m15, r11, r12, r13, r14, r15, \ + l21, l22, l23, l24, l25, m21, m22, m23, m24, m25, r21, r22, r23, r24, r25, \ + l31, l32, l33, l34, l35, m31, m32, m33, m34, m35, r31, r32, r33, r34, r35, \ + l41, l42, l43, l44, l45, m41, m42, m43, m44, m45, r41, r42, r43, r44, r45, \ + l51, l52, l53, l54, m53, r52, r53, r54, r51 \ +) \ +{ \ + { l11, l12, l13, l14, l15, l25, l35, l45 }, \ + { l21, l22, l23, l24, l34, l44, l53, l54 }, \ + { l31, l32, l33, l43, l42, l41, l51, l52 }, \ + { m11, m12, m13, m14, m15, m25, m35, m45 }, \ + { m21, m22, m23, m24, m34, m44, m53, KC_NO }, \ + { m31, m32, m33, m43, m42, m41, KC_NO, KC_NO }, \ + { r11, r12, r13, r14, r15, r25, r35, r45 }, \ + { r21, r22, r23, r24, r34, r44, r53, r54 }, \ + { r31, r32, r33, r43, r42, r41, r51, r52 } \ +} diff --git a/keyboards/peej/tripel/middle/readme.md b/keyboards/peej/tripel/middle/readme.md new file mode 100644 index 000000000000..25b11a671470 --- /dev/null +++ b/keyboards/peej/tripel/middle/readme.md @@ -0,0 +1,21 @@ +# Tripel +## Sub-100x100mm modula 60% ortholinear 7u PCB + +![tripel](https://github.com/peej/tripel-keyboard/raw/master/images/3pcbs.jpg) + +15x5 ortholinear PCB for 60% tray mount cases using only prototype sized PCBs. + +This revision is for when the Pro-Micro is mounted on the middle PCB. + +* Keyboard Maintainer: [Paul James](https://github.com/peej) +* Hardware Supported: Pro-Micro [PCB](https://github.com/peej/tripel-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make peej/tripel/middle:default + +Flashing example for this keyboard: + + make peej/tripel/middle: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). diff --git a/keyboards/peej/tripel/middle/rules.mk b/keyboards/peej/tripel/middle/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/peej/tripel/middle/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/peej/tripel/right/readme.md b/keyboards/peej/tripel/right/readme.md new file mode 100644 index 000000000000..f965a74de20b --- /dev/null +++ b/keyboards/peej/tripel/right/readme.md @@ -0,0 +1,21 @@ +# Tripel +## Sub-100x100mm modula 60% ortholinear 7u PCB + +![tripel](https://github.com/peej/tripel-keyboard/raw/master/images/3pcbs.jpg) + +15x5 ortholinear PCB for 60% tray mount cases using only prototype sized PCBs. + +This revision is for when the Pro-Micro is mounted on the right most PCB. + +* Keyboard Maintainer: [Paul James](https://github.com/peej) +* Hardware Supported: Pro-Micro [PCB](https://github.com/peej/tripel-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make peej/tripel/right:default + +Flashing example for this keyboard: + + make peej/tripel/right: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). diff --git a/keyboards/peej/tripel/right/right.h b/keyboards/peej/tripel/right/right.h new file mode 100644 index 000000000000..5fa38270c918 --- /dev/null +++ b/keyboards/peej/tripel/right/right.h @@ -0,0 +1,38 @@ +/* Copyright 2021 Paul James + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_7u( \ + l11, l12, l13, l14, l15, m11, m12, m13, m14, m15, r11, r12, r13, r14, r15, \ + l21, l22, l23, l24, l25, m21, m22, m23, m24, m25, r21, r22, r23, r24, r25, \ + l31, l32, l33, l34, l35, m31, m32, m33, m34, m35, r31, r32, r33, r34, r35, \ + l41, l42, l43, l44, l45, m41, m42, m43, m44, m45, r41, r42, r43, r44, r45, \ + l51, l52, l53, l54, m53, r52, r53, r54, r51 \ +) \ +{ \ + { m11, m12, m13, m14, m15, m25, m35, m45 }, \ + { m21, m22, m23, m24, m34, m44, m53, KC_NO }, \ + { m31, m32, m33, m43, m42, m41, KC_NO, KC_NO }, \ + { r11, r12, r13, r14, r15, r25, r35, r45 }, \ + { r21, r22, r23, r24, r34, r44, r53, r54 }, \ + { r31, r32, r33, r43, r42, r41, r51, r52 }, \ + { l11, l12, l13, l14, l15, l25, l35, l45 }, \ + { l21, l22, l23, l24, l34, l44, l53, l54 }, \ + { l31, l32, l33, l43, l42, l41, l51, l52 } \ +} diff --git a/keyboards/peej/tripel/right/rules.mk b/keyboards/peej/tripel/right/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/peej/tripel/right/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/peej/tripel/rules.mk b/keyboards/peej/tripel/rules.mk new file mode 100644 index 000000000000..2de6deef42d2 --- /dev/null +++ b/keyboards/peej/tripel/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +DEFAULT_FOLDER = peej/tripel/left From 74aff52bff3800aee75611bd444e1f85f2877bb6 Mon Sep 17 00:00:00 2001 From: Vanilla <77503059+vanillakeyboards@users.noreply.github.com> Date: Thu, 12 Aug 2021 11:50:12 -0400 Subject: [PATCH 221/328] [Keyboard] Add Spacey keyboard firmware (#12599) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: tfjones24 --- keyboards/spacey/config.h | 110 +++++++++++++++++++++ keyboards/spacey/info.json | 87 ++++++++++++++++ keyboards/spacey/keymaps/default/keymap.c | 47 +++++++++ keyboards/spacey/keymaps/default/readme.md | 1 + keyboards/spacey/readme.md | 19 ++++ keyboards/spacey/rules.mk | 23 +++++ keyboards/spacey/spacey.c | 29 ++++++ keyboards/spacey/spacey.h | 41 ++++++++ 8 files changed, 357 insertions(+) create mode 100644 keyboards/spacey/config.h create mode 100644 keyboards/spacey/info.json create mode 100644 keyboards/spacey/keymaps/default/keymap.c create mode 100644 keyboards/spacey/keymaps/default/readme.md create mode 100644 keyboards/spacey/readme.md create mode 100644 keyboards/spacey/rules.mk create mode 100644 keyboards/spacey/spacey.c create mode 100644 keyboards/spacey/spacey.h diff --git a/keyboards/spacey/config.h b/keyboards/spacey/config.h new file mode 100644 index 000000000000..58249d4f19ad --- /dev/null +++ b/keyboards/spacey/config.h @@ -0,0 +1,110 @@ +/* +Copyright 2021 vanilla + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER vanilla +#define PRODUCT spacey + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + + +#define ENCODERS_PAD_A { D0 } +#define ENCODERS_PAD_B { D1 } +#define ENCODER_RESOLUTION 4 + +/* + * 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 { D4, C6, F6, F5, F4 } +#define MATRIX_COL_PINS { D5, B7, B5, B4, E6, D7, C7, B3, B2, B6, F0, F1, B1, F7 } + +/* 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/spacey/info.json b/keyboards/spacey/info.json new file mode 100644 index 000000000000..39a4e46b547d --- /dev/null +++ b/keyboards/spacey/info.json @@ -0,0 +1,87 @@ +{ + "keyboard_name": "spacey", + "url": "", + "maintainer": "vanilla", + "width": 14, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0A", "x":10, "y":0}, + {"label":"k0B", "x":11, "y":0}, + {"label":"k0C", "x":12, "y":0}, + {"label":"k0D", "x":13, "y":0}, + + {"label":"k10", "x":0, "y":1}, + {"label":"k11", "x":1, "y":1}, + {"label":"k12", "x":2, "y":1}, + {"label":"k13", "x":3, "y":1}, + {"label":"k14", "x":4, "y":1}, + {"label":"k15", "x":5, "y":1}, + {"label":"k16", "x":6, "y":1}, + {"label":"k17", "x":7, "y":1}, + {"label":"k18", "x":8, "y":1}, + {"label":"k19", "x":9, "y":1}, + {"label":"k1A", "x":10, "y":1}, + {"label":"k1B", "x":11, "y":1}, + {"label":"k1C", "x":12, "y":1}, + {"label":"k1D", "x":13, "y":1}, + + {"label":"k20", "x":0, "y":2}, + {"label":"k21", "x":1, "y":2}, + {"label":"k22", "x":2, "y":2}, + {"label":"k23", "x":3, "y":2}, + {"label":"k24", "x":4, "y":2}, + {"label":"k25", "x":5, "y":2}, + {"label":"k26", "x":6, "y":2}, + {"label":"k27", "x":7, "y":2}, + {"label":"k28", "x":8, "y":2}, + {"label":"k29", "x":9, "y":2}, + {"label":"k2A", "x":10, "y":2}, + {"label":"k2B", "x":11, "y":2}, + {"label":"k2C", "x":12, "y":2}, + {"label":"k2D", "x":13, "y":2}, + + {"label":"k30", "x":0, "y":3}, + {"label":"k31", "x":1, "y":3}, + {"label":"k32", "x":2, "y":3}, + {"label":"k33", "x":3, "y":3}, + {"label":"k34", "x":4, "y":3}, + {"label":"k35", "x":5, "y":3}, + {"label":"k36", "x":6, "y":3}, + {"label":"k37", "x":7, "y":3}, + {"label":"k38", "x":8, "y":3}, + {"label":"k39", "x":9, "y":3}, + {"label":"k3A", "x":10, "y":3}, + {"label":"k3B", "x":11, "y":3}, + {"label":"k3C", "x":12, "y":3}, + {"label":"k3D", "x":13, "y":3}, + + {"label":"k40", "x":0, "y":4}, + {"label":"k41", "x":1, "y":4}, + {"label":"k42", "x":2, "y":4}, + {"label":"k43", "x":3, "y":4}, + {"label":"k44", "x":4, "y":4}, + {"label":"k45", "x":5, "y":4}, + + {"label":"k47", "x":7, "y":4}, + {"label":"k48", "x":8, "y":4}, + + {"label":"k4A", "x":10, "y":4}, + {"label":"k4B", "x":11, "y":4}, + {"label":"k4C", "x":12, "y":4}, + {"label":"k4D", "x":13, "y":4} + ] + } + } +} diff --git a/keyboards/spacey/keymaps/default/keymap.c b/keyboards/spacey/keymaps/default/keymap.c new file mode 100644 index 000000000000..4d08a279e0f3 --- /dev/null +++ b/keyboards/spacey/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 vanilla + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#define FN MO(_FN) + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE = 0, + _FN +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QMKBEST = SAFE_RANGE, + QMKURL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_CLCK,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_UP, + 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_LEFT, KC_DOWN, + KC_LCTL, KC_LGUI, FN, KC_MUTE, KC_LALT, KC_SPC, KC_NO, KC_BSPC, KC_DEL, KC_NO, KC_RALT, KC_RGUI, KC_RCTL, KC_RGHT + ), + [_FN] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, + KC_TAB, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_ENT, KC_MS_U, + KC_LSFT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, KC_MS_L, KC_MS_D, + KC_LCTL, KC_LGUI, KC_NO, KC_ESC, KC_LALT, KC_SPC, KC_NO, KC_BSPC, KC_RALT, KC_NO, KC_APP, KC_RGUI, KC_RCTL, KC_MS_R + ) +}; diff --git a/keyboards/spacey/keymaps/default/readme.md b/keyboards/spacey/keymaps/default/readme.md new file mode 100644 index 000000000000..808ab68264cd --- /dev/null +++ b/keyboards/spacey/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for spacey diff --git a/keyboards/spacey/readme.md b/keyboards/spacey/readme.md new file mode 100644 index 000000000000..e61585269330 --- /dev/null +++ b/keyboards/spacey/readme.md @@ -0,0 +1,19 @@ +# spacey + +![spacey](https://i.imgur.com/Dzon2hbh.jpeg) + +Spacey, designed by Vanilla Keyboards is a 45/65% keyboard with a little personality. Hosting ortholinear alphas with traditional modifiers, diamond shaped arrows, rotary encoder, and a couple optional spacebars at the top of the board, it's a balance between functional and unique. + +* Keyboard Maintainer: [vanilla](https://github.com/vanillakeyboards) +* Hardware Supported: Elite C, Spacey PCB plates and acrylic drop_in case +* Hardware Availability: https://p3dstore.com/collections/ended-group-buys/products/spacey?variant=37742593147064 and https://keeb.io/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make spacey:default + +Flashing example for this keyboard: + + make spacey: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). diff --git a/keyboards/spacey/rules.mk b/keyboards/spacey/rules.mk new file mode 100644 index 000000000000..fb12719ce81e --- /dev/null +++ b/keyboards/spacey/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/spacey/spacey.c b/keyboards/spacey/spacey.c new file mode 100644 index 000000000000..32f1e4dd9c07 --- /dev/null +++ b/keyboards/spacey/spacey.c @@ -0,0 +1,29 @@ +/* Copyright 2021 vanilla + * + * 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 "spacey.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(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + return true; +} diff --git a/keyboards/spacey/spacey.h b/keyboards/spacey/spacey.h new file mode 100644 index 000000000000..5a288fae83e4 --- /dev/null +++ b/keyboards/spacey/spacey.h @@ -0,0 +1,41 @@ +/* Copyright 2021 vanilla + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + 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, k2C, k2D, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D \ +) { \ + { 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, k2C, k2D }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D } \ +} From 541e749aa894c526217b68314df1621f812411b6 Mon Sep 17 00:00:00 2001 From: David Hoelscher Date: Thu, 12 Aug 2021 10:51:34 -0500 Subject: [PATCH 222/328] [Keyboard] Update to customMK Genesis (#12511) Co-authored-by: Ray --- keyboards/custommk/genesis/config.h | 42 ----- keyboards/custommk/genesis/readme.md | 4 +- keyboards/custommk/genesis/rev1/config.h | 65 +++++++ .../custommk/genesis/{ => rev1}/info.json | 2 +- .../{ => rev1}/keymaps/default/keymap.c | 0 .../{ => rev1}/keymaps/default/readme.md | 0 .../{ => rev1}/keymaps/numpad/keymap.c | 0 .../{ => rev1}/keymaps/numpad/readme.md | 0 .../genesis/{ => rev1}/keymaps/via/keymap.c | 4 +- .../genesis/{ => rev1}/keymaps/via/readme.md | 0 .../genesis/{ => rev1}/keymaps/via/rules.mk | 0 keyboards/custommk/genesis/rev1/readme.md | 19 ++ .../genesis/{genesis.c => rev1/rev1.c} | 34 ++-- .../genesis/{genesis.h => rev1/rev1.h} | 40 ++--- keyboards/custommk/genesis/rev1/rules.mk | 0 keyboards/custommk/genesis/rev2/config.h | 66 +++++++ keyboards/custommk/genesis/rev2/info.json | 76 ++++++++ .../genesis/rev2/keymaps/default/keymap.c | 76 ++++++++ .../genesis/rev2/keymaps/default/readme.md | 6 + .../genesis/rev2/keymaps/numpad/keymap.c | 89 ++++++++++ .../genesis/rev2/keymaps/numpad/readme.md | 3 + .../genesis/rev2/keymaps/via/keymap.c | 167 ++++++++++++++++++ .../genesis/rev2/keymaps/via/readme.md | 3 + .../genesis/rev2/keymaps/via/rules.mk | 2 + keyboards/custommk/genesis/rev2/readme.md | 19 ++ keyboards/custommk/genesis/rev2/rev2.c | 39 ++++ keyboards/custommk/genesis/rev2/rev2.h | 66 +++++++ keyboards/custommk/genesis/rev2/rules.mk | 23 +++ keyboards/custommk/genesis/rules.mk | 4 +- 29 files changed, 764 insertions(+), 85 deletions(-) create mode 100644 keyboards/custommk/genesis/rev1/config.h rename keyboards/custommk/genesis/{ => rev1}/info.json (97%) rename keyboards/custommk/genesis/{ => rev1}/keymaps/default/keymap.c (100%) rename keyboards/custommk/genesis/{ => rev1}/keymaps/default/readme.md (100%) rename keyboards/custommk/genesis/{ => rev1}/keymaps/numpad/keymap.c (100%) rename keyboards/custommk/genesis/{ => rev1}/keymaps/numpad/readme.md (100%) rename keyboards/custommk/genesis/{ => rev1}/keymaps/via/keymap.c (95%) rename keyboards/custommk/genesis/{ => rev1}/keymaps/via/readme.md (100%) rename keyboards/custommk/genesis/{ => rev1}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/custommk/genesis/rev1/readme.md rename keyboards/custommk/genesis/{genesis.c => rev1/rev1.c} (69%) rename keyboards/custommk/genesis/{genesis.h => rev1/rev1.h} (55%) create mode 100644 keyboards/custommk/genesis/rev1/rules.mk create mode 100644 keyboards/custommk/genesis/rev2/config.h create mode 100644 keyboards/custommk/genesis/rev2/info.json create mode 100644 keyboards/custommk/genesis/rev2/keymaps/default/keymap.c create mode 100644 keyboards/custommk/genesis/rev2/keymaps/default/readme.md create mode 100644 keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c create mode 100644 keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md create mode 100644 keyboards/custommk/genesis/rev2/keymaps/via/keymap.c create mode 100644 keyboards/custommk/genesis/rev2/keymaps/via/readme.md create mode 100644 keyboards/custommk/genesis/rev2/keymaps/via/rules.mk create mode 100644 keyboards/custommk/genesis/rev2/readme.md create mode 100644 keyboards/custommk/genesis/rev2/rev2.c create mode 100644 keyboards/custommk/genesis/rev2/rev2.h create mode 100644 keyboards/custommk/genesis/rev2/rules.mk diff --git a/keyboards/custommk/genesis/config.h b/keyboards/custommk/genesis/config.h index a527737f00d1..72f33c155423 100644 --- a/keyboards/custommk/genesis/config.h +++ b/keyboards/custommk/genesis/config.h @@ -18,45 +18,3 @@ #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF35B -#define PRODUCT_ID 0xFAB0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER customMK -#define PRODUCT Genesis - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 4 - -/* key matrix pins */ -#define MATRIX_ROW_PINS { F0, C7, C6, B6, B5 } -#define MATRIX_COL_PINS { F4, F5, D7, B4 } -#define UNUSED_PINS - -/* 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 - -#define ENCODERS_PAD_A { F6, D2 } -#define ENCODERS_PAD_B { F7, D1 } -#define ENCODER_RESOLUTION 4 -#define TAP_CODE_DELAY 10 - -#define RGB_DI_PIN E6 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 13 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_LIMIT_VAL 128 - diff --git a/keyboards/custommk/genesis/readme.md b/keyboards/custommk/genesis/readme.md index 58bd27121a8d..bf967a2bdaf9 100644 --- a/keyboards/custommk/genesis/readme.md +++ b/keyboards/custommk/genesis/readme.md @@ -1,10 +1,10 @@ # Genesis +Genesis is a 5x4 ortholinear macro pad designed and produced by customMK. + ![Genesis Macro Pad](https://i.imgur.com/voBjLrM.jpeg) ![Genesis Macro Pad PCB](https://i.imgur.com/ST2vtkV.jpeg) -Genesis is a 5x4 ortholinear macro pad designed and produced by customMK. - * Keyboard Maintainer: [customMK](https://github.com/customMK) * Hardware Supported: Genesis Macro Pad * Hardware Availability: [customMK](https://shop.custommk.com/products/genesis_macropad) diff --git a/keyboards/custommk/genesis/rev1/config.h b/keyboards/custommk/genesis/rev1/config.h new file mode 100644 index 000000000000..3393c53302f6 --- /dev/null +++ b/keyboards/custommk/genesis/rev1/config.h @@ -0,0 +1,65 @@ +/* Copyright 2020 customMK + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xF35B +#define PRODUCT_ID 0xFAB0 +#define DEVICE_VER 0x0001 +#define MANUFACTURER customMK +#define PRODUCT GenesisRev1 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F0, C7, C6, B6, B5 } +#define MATRIX_COL_PINS { F4, F5, D7, B4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define ENCODERS_PAD_A { F6, D2 } +#define ENCODERS_PAD_B { F7, D1 } +#define ENCODER_RESOLUTION 2 +#define TAP_CODE_DELAY 10 + +#define RGB_DI_PIN E6 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLED_NUM 13 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 128 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4 + diff --git a/keyboards/custommk/genesis/info.json b/keyboards/custommk/genesis/rev1/info.json similarity index 97% rename from keyboards/custommk/genesis/info.json rename to keyboards/custommk/genesis/rev1/info.json index ddba21f99e0b..67bab74bef0a 100644 --- a/keyboards/custommk/genesis/info.json +++ b/keyboards/custommk/genesis/rev1/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "Genesis", + "keyboard_name": "Genesis Rev1", "url": "https://www.customMK.com", "maintainer": "customMK", "width": 4, diff --git a/keyboards/custommk/genesis/keymaps/default/keymap.c b/keyboards/custommk/genesis/rev1/keymaps/default/keymap.c similarity index 100% rename from keyboards/custommk/genesis/keymaps/default/keymap.c rename to keyboards/custommk/genesis/rev1/keymaps/default/keymap.c diff --git a/keyboards/custommk/genesis/keymaps/default/readme.md b/keyboards/custommk/genesis/rev1/keymaps/default/readme.md similarity index 100% rename from keyboards/custommk/genesis/keymaps/default/readme.md rename to keyboards/custommk/genesis/rev1/keymaps/default/readme.md diff --git a/keyboards/custommk/genesis/keymaps/numpad/keymap.c b/keyboards/custommk/genesis/rev1/keymaps/numpad/keymap.c similarity index 100% rename from keyboards/custommk/genesis/keymaps/numpad/keymap.c rename to keyboards/custommk/genesis/rev1/keymaps/numpad/keymap.c diff --git a/keyboards/custommk/genesis/keymaps/numpad/readme.md b/keyboards/custommk/genesis/rev1/keymaps/numpad/readme.md similarity index 100% rename from keyboards/custommk/genesis/keymaps/numpad/readme.md rename to keyboards/custommk/genesis/rev1/keymaps/numpad/readme.md diff --git a/keyboards/custommk/genesis/keymaps/via/keymap.c b/keyboards/custommk/genesis/rev1/keymaps/via/keymap.c similarity index 95% rename from keyboards/custommk/genesis/keymaps/via/keymap.c rename to keyboards/custommk/genesis/rev1/keymaps/via/keymap.c index fe375547626e..6b795f4c23fe 100644 --- a/keyboards/custommk/genesis/keymaps/via/keymap.c +++ b/keyboards/custommk/genesis/rev1/keymaps/via/keymap.c @@ -20,8 +20,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_5x4( MO(1), KC_PSLS, KC_PAST, KC_PMNS, - KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_P4, KC_P5, KC_P6, KC_PGUP, + KC_P7, KC_P8, KC_P9, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_PPLS, KC_P1, KC_P2, KC_P3, KC_PGDN, KC_P0, KC_SPC, KC_PDOT, KC_PENT), diff --git a/keyboards/custommk/genesis/keymaps/via/readme.md b/keyboards/custommk/genesis/rev1/keymaps/via/readme.md similarity index 100% rename from keyboards/custommk/genesis/keymaps/via/readme.md rename to keyboards/custommk/genesis/rev1/keymaps/via/readme.md diff --git a/keyboards/custommk/genesis/keymaps/via/rules.mk b/keyboards/custommk/genesis/rev1/keymaps/via/rules.mk similarity index 100% rename from keyboards/custommk/genesis/keymaps/via/rules.mk rename to keyboards/custommk/genesis/rev1/keymaps/via/rules.mk diff --git a/keyboards/custommk/genesis/rev1/readme.md b/keyboards/custommk/genesis/rev1/readme.md new file mode 100644 index 000000000000..bba03cceb835 --- /dev/null +++ b/keyboards/custommk/genesis/rev1/readme.md @@ -0,0 +1,19 @@ +# Genesis + +Genesis is a 5x4 ortholinear macro pad designed and produced by customMK. + +* Keyboard Maintainer: [customMK](https://github.com/customMK) +* Hardware Supported: Genesis Macro Pad +* Hardware Availability: [customMK](https://shop.custommk.com/products/genesis_macropad) + +Make example for this keyboard (after setting up your build environment): + + make custommk/genesis/rev1:default + +Flashing example for this keyboard: + + make custommk/genesis/rev1:default:flash + +Genesis Macro Pad has qmk-dfu bootloader preinstalled. To enter the bootloader, run the flashing command above, and then either plug in the USB connection while holding the top-left key, or alternatively, plug in the USB connection and then press the reset button on the PCB + +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). diff --git a/keyboards/custommk/genesis/genesis.c b/keyboards/custommk/genesis/rev1/rev1.c similarity index 69% rename from keyboards/custommk/genesis/genesis.c rename to keyboards/custommk/genesis/rev1/rev1.c index f684d7ef7a5d..ac40eedbf202 100644 --- a/keyboards/custommk/genesis/genesis.c +++ b/keyboards/custommk/genesis/rev1/rev1.c @@ -14,25 +14,25 @@ * along with this program. If not, see . */ -#include "genesis.h" +#include "rev1.h" bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) return false; - /* top left encoder */ - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - /* top right encoder */ - else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } + /* top left encoder */ + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + /* top right encoder */ + else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } return true; } diff --git a/keyboards/custommk/genesis/genesis.h b/keyboards/custommk/genesis/rev1/rev1.h similarity index 55% rename from keyboards/custommk/genesis/genesis.h rename to keyboards/custommk/genesis/rev1/rev1.h index ad107365230f..0516b41ad884 100644 --- a/keyboards/custommk/genesis/genesis.h +++ b/keyboards/custommk/genesis/rev1/rev1.h @@ -19,30 +19,30 @@ #include "quantum.h" #define LAYOUT_numpad_5x4( \ - K00, K01, K02, K03, \ - K10, K11, K12, \ - K20, K21, K22, K23, \ - K30, K31, K32, \ - K40, K42, K43 \ + K00, K01, K02, K03, \ + K10, K11, K12, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K42, K43 \ ) { \ - { K00, K01, K02, K03 }, \ - { K10, K11, K12, KC_NO }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, KC_NO }, \ - { K40, KC_NO, K42, K43 } \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, KC_NO }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, KC_NO, K42, K43 } \ } #define LAYOUT_ortho_5x4( \ - K00, K01, K02, K03, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, K33, \ - K40, K41, K42, K43 \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43 \ ) { \ - { K00, K01, K02, K03 }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, K33 }, \ - { K40, K41, K42, K43 } \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, K43 } \ } diff --git a/keyboards/custommk/genesis/rev1/rules.mk b/keyboards/custommk/genesis/rev1/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/custommk/genesis/rev2/config.h b/keyboards/custommk/genesis/rev2/config.h new file mode 100644 index 000000000000..cbfda53f14c5 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/config.h @@ -0,0 +1,66 @@ +/* Copyright 2020 customMK + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xF35B +#define PRODUCT_ID 0xFAB1 +#define DEVICE_VER 0x0001 +#define MANUFACTURER customMK +#define PRODUCT GenesisRev2 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F0, C7, C6, B6, B5, B0} +#define MATRIX_COL_PINS { F4, F5, D7, B4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define ENCODERS_PAD_A { F6, D2 } +#define ENCODERS_PAD_B { F7, D1 } +#define ENCODER_RESOLUTION 2 +#define TAP_CODE_DELAY 10 + +#define RGB_DI_PIN E6 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLED_NUM 13 +#define RGBLIGHT_LAYERS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 128 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4 + diff --git a/keyboards/custommk/genesis/rev2/info.json b/keyboards/custommk/genesis/rev2/info.json new file mode 100644 index 000000000000..8dda87c1af10 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/info.json @@ -0,0 +1,76 @@ +{ + "keyboard_name": "Genesis Rev2", + "url": "https://www.customMK.com", + "maintainer": "customMK", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT_ortho_5x4": { + "layout": [{"label":"MO(1)", "x":0, "y":0}, + {"label":"/", "x":1, "y":0}, + {"label":"*", "x":2, "y":0}, + {"label":"Mute", "x":3, "y":0}, + {"label":"7", "x":0, "y":1}, + {"label":"8", "x":1, "y":1}, + {"label":"9", "x":2, "y":1}, + {"label":"+", "x":3, "y":1}, + {"label":"4", "x":0, "y":2}, + {"label":"5", "x":1, "y":2}, + {"label":"6", "x":2, "y":2}, + {"label":"Pg Up", "x":3, "y":2}, + {"label":"1", "x":0, "y":3}, + {"label":"2", "x":1, "y":3}, + {"label":"3", "x":2, "y":3}, + {"label":"Pg Dn", "x":3, "y":3}, + {"label":"0", "x":0, "y":4}, + {"label":"Spc", "x":1, "y":4}, + {"label":".", "x":2, "y":4}, + {"label":"Enter", "x":3, "y":4}] + }, + "LAYOUT_numpad_5x4": { + "layout": [{"label":"MO(1)", "x":0, "y":0}, + {"label":"/", "x":1, "y":0}, + {"label":"*", "x":2, "y":0}, + {"label":"-", "x":3, "y":0}, + {"label":"7", "x":0, "y":1}, + {"label":"8", "x":1, "y":1}, + {"label":"9", "x":2, "y":1}, + {"label":"+", "x":3, "y":1, "h":2}, + {"label":"4", "x":0, "y":2}, + {"label":"5", "x":1, "y":2}, + {"label":"6", "x":2, "y":2}, + {"label":"1", "x":0, "y":3}, + {"label":"2", "x":1, "y":3}, + {"label":"3", "x":2, "y":3}, + {"label":"Enter", "x":3, "y":3, "h":2}, + {"label":"0", "x":0, "y":4, "w":2}, + {"label":".", "x":2, "y":4}] + }, + "LAYOUT_via_6x4": { + "layout": [{"label":"Vol-", "x":0, "y":0}, + {"label":"Vol+", "x":1, "y":0}, + {"label":"Vol-", "x":3, "y":0}, + {"label":"Vol+", "x":4, "y":0}, + {"label":"MO(1)", "x":0.5, "y":1.1}, + {"label":"/", "x":1.5, "y":1.1}, + {"label":"*", "x":2.5, "y":1.1}, + {"label":"Mute", "x":3.5, "y":1.1}, + {"label":"7", "x":0.5, "y":2.1}, + {"label":"8", "x":1.5, "y":2.1}, + {"label":"9", "x":2.5, "y":2.1}, + {"label":"+", "x":3.5, "y":2.1}, + {"label":"4", "x":0.5, "y":3.1}, + {"label":"5", "x":1.5, "y":3.1}, + {"label":"6", "x":2.5, "y":3.1}, + {"label":"Pg Up", "x":3.5, "y":3.1}, + {"label":"1", "x":0.5, "y":4.1}, + {"label":"2", "x":1.5, "y":4.1}, + {"label":"3", "x":2.5, "y":4.1}, + {"label":"Pg Dn", "x":3.5, "y":4.1}, + {"label":"0", "x":0.5, "y":5.1}, + {"label":"Spc", "x":1.5, "y":5.1}, + {"label":".", "x":2.5, "y":5.1}, + {"label":"Enter", "x":3.5, "y":5.1}] + } + } +} \ No newline at end of file diff --git a/keyboards/custommk/genesis/rev2/keymaps/default/keymap.c b/keyboards/custommk/genesis/rev2/keymaps/default/keymap.c new file mode 100644 index 000000000000..7ba558ca96d9 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/keymaps/default/keymap.c @@ -0,0 +1,76 @@ +/* Copyright 2020 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +//#define GENESIS_LAYER_COLORS +#define GENESIS_LAYER1_COLOR HSV_CYAN +#define GENESIS_LAYER2_COLOR HSV_GREEN +#define GENESIS_LAYER3_COLOR HSV_WHITE + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_5x4( + MO(1), KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_BSPC, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_CAPS, + KC_P0, KC_SPC, KC_PDOT, KC_ENT), + + [1] = LAYOUT_ortho_5x4( + KC_TRNS, KC_VOLU, RGB_TOG, RGB_MOD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_HUI, KC_TRNS, KC_TRNS, RGB_HUD), + +}; + + +#ifdef GENESIS_LAYER_COLORS +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,13,GENESIS_LAYER1_COLOR} + ); + +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,13,GENESIS_LAYER2_COLOR} + ); + +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,13,GENESIS_LAYER3_COLOR} + ); + + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_layer1_layer, + my_layer2_layer, + my_layer3_layer + ); + +//Set the appropriate layer color +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, 1)); + rgblight_set_layer_state(1, layer_state_cmp(state, 2)); + rgblight_set_layer_state(2, layer_state_cmp(state, 3)); + return state; +} + +void keyboard_post_init_user(void) { + //Enable the LED layers + rgblight_layers = my_rgb_layers; +} +#endif \ No newline at end of file diff --git a/keyboards/custommk/genesis/rev2/keymaps/default/readme.md b/keyboards/custommk/genesis/rev2/keymaps/default/readme.md new file mode 100644 index 000000000000..202402d8319d --- /dev/null +++ b/keyboards/custommk/genesis/rev2/keymaps/default/readme.md @@ -0,0 +1,6 @@ +# Default Genesis Macro Pad Layout + +This is the default layout for the Genesis Macro Pad. It assumes all 1u switches +and optional rotary encoder in the top-left or top-right corner for media volume +control. The top left switch activates Layer 1 which enables control of the RGB +underglow. \ No newline at end of file diff --git a/keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c b/keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c new file mode 100644 index 000000000000..e6b84c3f6be6 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c @@ -0,0 +1,89 @@ +/* Copyright 2020 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +//#define GENESIS_LAYER_COLORS +#define GENESIS_LAYER1_COLOR HSV_CYAN +#define GENESIS_LAYER2_COLOR HSV_GREEN +#define GENESIS_LAYER3_COLOR HSV_WHITE + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_numpad_5x4( + MO(1), KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_ENT), + + [1] = LAYOUT_numpad_5x4( + KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, + KC_TRNS, KC_TRNS, KC_TRNS, + RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, + RGB_HUI, KC_TRNS, RGB_HUD), + + [2] = LAYOUT_numpad_5x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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_numpad_5x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + +}; + + +#ifdef GENESIS_LAYER_COLORS +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,13,GENESIS_LAYER1_COLOR} + ); + +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,13,GENESIS_LAYER2_COLOR} + ); + +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,13,GENESIS_LAYER3_COLOR} + ); + + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_layer1_layer, + my_layer2_layer, + my_layer3_layer + ); + +//Set the appropriate layer color +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, 1)); + rgblight_set_layer_state(1, layer_state_cmp(state, 2)); + rgblight_set_layer_state(2, layer_state_cmp(state, 3)); + return state; +} + +void keyboard_post_init_user(void) { + //Enable the LED layers + rgblight_layers = my_rgb_layers; +} +#endif \ No newline at end of file diff --git a/keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md b/keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md new file mode 100644 index 000000000000..795e4341a961 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md @@ -0,0 +1,3 @@ +# Numpad Genesis Macro Pad Layout + +This is the numpad layout for the Genesis Macro Pad. It assumes the 0, +, and enter keys are all 2u size, with an optional rotary encoder in the top-left or top-right corner for media volume control. The top left switch activates Layer 1 which enables control of the RGB underglow. \ No newline at end of file diff --git a/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c b/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c new file mode 100644 index 000000000000..eb0f7772cf4b --- /dev/null +++ b/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c @@ -0,0 +1,167 @@ +/* Copyright 2020 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +//#define GENESIS_LAYER_COLORS +#define GENESIS_LAYER1_COLOR HSV_CYAN +#define GENESIS_LAYER2_COLOR HSV_GREEN +#define GENESIS_LAYER3_COLOR HSV_WHITE + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_via_6x4( + KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, + MO(1), KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PGDN, + KC_P0, KC_SPC, KC_PDOT, KC_PENT), + + [1] = LAYOUT_via_6x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS), + + [2] = LAYOUT_via_6x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_via_6x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; + +#ifdef GENESIS_LAYER_COLORS +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,13,GENESIS_LAYER1_COLOR} + ); + +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,13,GENESIS_LAYER2_COLOR} + ); + +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,13,GENESIS_LAYER3_COLOR} + ); + + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_layer1_layer, + my_layer2_layer, + my_layer3_layer + ); + +//Set the appropriate layer color +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, 1)); + rgblight_set_layer_state(1, layer_state_cmp(state, 2)); + rgblight_set_layer_state(2, layer_state_cmp(state, 3)); + return state; +} + +void keyboard_post_init_user(void) { + //Enable the LED layers + rgblight_layers = my_rgb_layers; +} +#endif + + +keyevent_t encoder_left_ccw = { + .key = (keypos_t){.row = 5, .col = 0}, + .pressed = false +}; + +keyevent_t encoder_left_cw = { + .key = (keypos_t){.row = 5, .col = 1}, + .pressed = false +}; + +keyevent_t encoder_right_ccw = { + .key = (keypos_t){.row = 5, .col = 2}, + .pressed = false +}; + +keyevent_t encoder_right_cw = { + .key = (keypos_t){.row = 5, .col = 3}, + .pressed = false +}; + +void matrix_scan_user(void) { + if (IS_PRESSED(encoder_left_ccw)) { + encoder_left_ccw.pressed = false; + encoder_left_ccw.time = (timer_read() | 1); + action_exec(encoder_left_ccw); + } + + if (IS_PRESSED(encoder_left_cw)) { + encoder_left_cw.pressed = false; + encoder_left_cw.time = (timer_read() | 1); + action_exec(encoder_left_cw); + } + + if (IS_PRESSED(encoder_right_ccw)) { + encoder_right_ccw.pressed = false; + encoder_right_ccw.time = (timer_read() | 1); + action_exec(encoder_right_ccw); + } + + if (IS_PRESSED(encoder_right_cw)) { + encoder_right_cw.pressed = false; + encoder_right_cw.time = (timer_read() | 1); + action_exec(encoder_right_cw); + } + +} + + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + encoder_left_cw.pressed = true; + encoder_left_cw.time = (timer_read() | 1); + action_exec(encoder_left_cw); + } else { + encoder_left_ccw.pressed = true; + encoder_left_ccw.time = (timer_read() | 1); + action_exec(encoder_left_ccw); + } + } else { + if (clockwise) { + encoder_right_cw.pressed = true; + encoder_right_cw.time = (timer_read() | 1); + action_exec(encoder_right_cw); + } else { + encoder_right_ccw.pressed = true; + encoder_right_ccw.time = (timer_read() | 1); + action_exec(encoder_right_ccw); + } + } + return false; +} diff --git a/keyboards/custommk/genesis/rev2/keymaps/via/readme.md b/keyboards/custommk/genesis/rev2/keymaps/via/readme.md new file mode 100644 index 000000000000..aa70d62257de --- /dev/null +++ b/keyboards/custommk/genesis/rev2/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# Genesis Macro Pad Layout for VIA + +This is the via layout for the Genesis Macro Pad. It is identical to the default 1u layout which assumes all 1u switches and optional rotary encoder in the top-left or top-right corner for media volume control. The top-left switch activates Layer 1 which enables control of the RGB underglow. \ No newline at end of file diff --git a/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk b/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/genesis/rev2/readme.md b/keyboards/custommk/genesis/rev2/readme.md new file mode 100644 index 000000000000..1b531b29c753 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/readme.md @@ -0,0 +1,19 @@ +# Genesis + +Genesis Rev2 is the same as Genesis Rev1 firmware, except Rev2 allows encoder function remapping using VIA. + +* Keyboard Maintainer: [customMK](https://github.com/customMK) +* Hardware Supported: Genesis Macro Pad +* Hardware Availability: [customMK](https://shop.custommk.com/products/genesis_macropad) + +Make example for this keyboard (after setting up your build environment): + + make custommk/genesis/rev2:default + +Flashing example for this keyboard: + + make custommk/genesis/rev2:default:flash + +Genesis Macro Pad has qmk-dfu bootloader preinstalled. To enter the bootloader, run the flashing command above, and then either plug in the USB connection while holding the top-left key, or alternatively, plug in the USB connection and then press the reset button on the PCB + +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). diff --git a/keyboards/custommk/genesis/rev2/rev2.c b/keyboards/custommk/genesis/rev2/rev2.c new file mode 100644 index 000000000000..bfa4cb055830 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/rev2.c @@ -0,0 +1,39 @@ +/* Copyright 2020 customMK + * + * 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 "rev2.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + /* top left encoder */ + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + /* top right encoder */ + else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return false; +} + diff --git a/keyboards/custommk/genesis/rev2/rev2.h b/keyboards/custommk/genesis/rev2/rev2.h new file mode 100644 index 000000000000..e978e706c3b1 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/rev2.h @@ -0,0 +1,66 @@ +/* Copyright 2020 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_numpad_5x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K42, K43 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, KC_NO }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, KC_NO, K42, K43 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO} \ +} + +#define LAYOUT_ortho_5x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, K43 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO} \ +} + + +#define LAYOUT_via_6x4( \ + E00A, E00B, E01A, E01B, \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, K43 }, \ + { E00A, E00B, E01A, E01B } \ +} diff --git a/keyboards/custommk/genesis/rev2/rules.mk b/keyboards/custommk/genesis/rev2/rules.mk new file mode 100644 index 000000000000..1556125ec793 --- /dev/null +++ b/keyboards/custommk/genesis/rev2/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = qmk-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/genesis/rules.mk b/keyboards/custommk/genesis/rules.mk index 1556125ec793..17f46c043526 100644 --- a/keyboards/custommk/genesis/rules.mk +++ b/keyboards/custommk/genesis/rules.mk @@ -20,4 +20,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes \ No newline at end of file +ENCODER_ENABLE = yes + +DEFAULT_FOLDER = custommk/genesis/rev2 From a2d5468df331fec6d76a9c5fd4253ec788507bb1 Mon Sep 17 00:00:00 2001 From: Luis Godinez Date: Thu, 12 Aug 2021 08:51:56 -0700 Subject: [PATCH 223/328] [Keyboard] Add Launch Pad keymaps (#12490) Co-authored-by: Ryan --- keyboards/ungodly/launch_pad/config.h | 68 ++- keyboards/ungodly/launch_pad/info.json | 60 +-- .../launch_pad/keymaps/default/keymap.c | 397 ++++++++++-------- .../ungodly/launch_pad/keymaps/via/keymap.c | 293 +++++++++++++ .../ungodly/launch_pad/keymaps/via/rules.mk | 1 + .../launch_pad/keymaps/warzone/keymap.c | 269 ++++++++++++ .../launch_pad/keymaps/warzone/rules.mk | 2 + keyboards/ungodly/launch_pad/launch_pad.c | 17 - keyboards/ungodly/launch_pad/readme.md | 62 ++- 9 files changed, 923 insertions(+), 246 deletions(-) create mode 100644 keyboards/ungodly/launch_pad/keymaps/via/keymap.c create mode 100644 keyboards/ungodly/launch_pad/keymaps/via/rules.mk create mode 100644 keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c create mode 100644 keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk diff --git a/keyboards/ungodly/launch_pad/config.h b/keyboards/ungodly/launch_pad/config.h index c4da09760158..7cad816e3de5 100644 --- a/keyboards/ungodly/launch_pad/config.h +++ b/keyboards/ungodly/launch_pad/config.h @@ -42,6 +42,7 @@ /* Midi Slider */ #define SLIDER_PIN F6 +#define MIDI_ADVANCED /* RGB Matrix configuration */ #ifdef RGB_MATRIX_ENABLE @@ -49,24 +50,63 @@ #endif #define RGB_DI_PIN F7 -#ifdef RGB_DI_PIN +#ifdef RGB_MATRIX_ENABLE # define RGBLED_NUM 22 -# 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 */ -/*== all animations enable ==*/ -# define RGBLIGHT_ANIMATIONS -// RGB Matrix -# ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL RGBLED_NUM -# endif +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_PINWHEEL // default mode + +/* Reduce the firmware size by only enabling the rgb animations you desire. */ +# define DISABLE_RGB_MATRIX_ALPHAS_MODS +# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define DISABLE_RGB_MATRIX_BREATHING +# define DISABLE_RGB_MATRIX_BAND_SAT +# define DISABLE_RGB_MATRIX_BAND_VAL +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define DISABLE_RGB_MATRIX_CYCLE_ALL +# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define DISABLE_RGB_MATRIX_DUAL_BEACON +// # define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +# define DISABLE_RGB_MATRIX_RAINBOW_BEACON +# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define DISABLE_RGB_MATRIX_RAINDROPS +# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define DISABLE_RGB_MATRIX_TYPING_HEATMAP +# define DISABLE_RGB_MATRIX_DIGITAL_RAIN +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define DISABLE_RGB_MATRIX_SPLASH +# define DISABLE_RGB_MATRIX_MULTISPLASH +# define DISABLE_RGB_MATRIX_SOLID_SPLASH +# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 #define LOCKING_RESYNC_ENABLE - -#define MIDI_ADVANCED diff --git a/keyboards/ungodly/launch_pad/info.json b/keyboards/ungodly/launch_pad/info.json index b766c0721172..bcf9ba8a8d87 100644 --- a/keyboards/ungodly/launch_pad/info.json +++ b/keyboards/ungodly/launch_pad/info.json @@ -1,37 +1,37 @@ { - "keyboard_name": "Launch Pad", - "url": "", - "maintainer": "luis-godinez", - "width": 4, - "height": 5, - "layouts": { - "LAYOUT_ortho_5x4": { - "layout": [ - {"x":0, "y":0}, - {"x":1, "y":0}, - {"x":2, "y":0}, - {"x":3, "y":0}, + "keyboard_name": "Launch Pad", + "url": "https://ungodly.design/products/launch-pad", + "maintainer": "Ungodly Design", + "width": 4, + "height": 5, + "layouts": { + "LAYOUT_ortho_5x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, - {"x":0, "y":1}, - {"x":1, "y":1}, - {"x":2, "y":1}, - {"x":3, "y":1}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, - {"x":0, "y":2}, - {"x":1, "y":2}, - {"x":2, "y":2}, - {"x":3, "y":2}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, - {"x":0, "y":3}, - {"x":1, "y":3}, - {"x":2, "y":3}, - {"x":3, "y":3}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, - {"x":0, "y":4}, - {"x":1, "y":4}, - {"x":2, "y":4}, - {"x":3, "y":4} - ] - } + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4} + ] } + } } diff --git a/keyboards/ungodly/launch_pad/keymaps/default/keymap.c b/keyboards/ungodly/launch_pad/keymaps/default/keymap.c index 880b225d4365..a401be7e8b3c 100644 --- a/keyboards/ungodly/launch_pad/keymaps/default/keymap.c +++ b/keyboards/ungodly/launch_pad/keymaps/default/keymap.c @@ -17,242 +17,277 @@ #include "analog.h" #include "qmk_midi.h" -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum layers { -_BL = 0, -_NV, -_FN +/* Force Numlock on */ +void matrix_init_user (void) { + if (!host_keyboard_led_state().num_lock) { + tap_code(KC_NUMLOCK); + } +} + +/* Custom Layer Up/Down Keystrokes */ +enum custom_keycodes { + KC_LUP = SAFE_RANGE, //cycle layers in up direction + KC_LDN //cycle layers in down direction }; +#define HIGHEST_LAYER 2 //replace X with your highest layer +static uint8_t current_layer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_LUP: + if(record->event.pressed) { + if (current_layer == HIGHEST_LAYER){ + current_layer=0; + } else { + current_layer++; + } + layer_clear(); + layer_on(current_layer); + } + return false; + case KC_LDN: + if(record->event.pressed) { + if (current_layer == 0){ + current_layer=HIGHEST_LAYER; + } else { + current_layer--; + } + layer_clear(); + layer_on(current_layer); + } + return false; + default: + return true; + } +} const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: (Base Layer) Default Numpad Layer * ,-------------------. - * | NV | / | * |BK/FN| + * |LAYR| / | * |BACK | * |----|----|----|-----| * | 7 | 8 | 9 | - | * |----|----|----|-----| * | 4 | 5 | 6 | + | * |----|----|----|-----| - * | 1 | 2 | 3 | | - * |----|----|----| En | - * | 0 | . | | + * | 1 | 2 | 3 | En | + * |----|----|----|-----| + * | 0 | 0 | . | En | * `--------------------' */ - [_BL] = LAYOUT_ortho_5x4( - TG(_NV), KC_PSLS, KC_PAST, LT(_FN, KC_BSPC), - KC_7, KC_8, KC_9, KC_PMNS, - KC_4, KC_5, KC_6, KC_PPLS, - KC_1, KC_2, KC_3, KC_PENT, - KC_0, KC_0, KC_DOT, KC_PENT + [0] = LAYOUT_ortho_5x4( + KC_LUP, KC_PSLS, KC_PAST, LT(2, KC_BSPC), + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT ), /* Keymap _NV: Navigation layer - * ,-------------------. - * |INS |HOME|PGUP| | - * |----|----|----|----| - * |DEL |END |PGDN| | - * |----|----|----|----| - * | | UP | | | - * |----|----|----|----| - * |LEFT|DOWN|RIGH| | - * |----|----|----| | - * | | | | - * `-------------------' - */ - [_NV] = LAYOUT_ortho_5x4( - KC_INS, KC_HOME, KC_PGUP, TG(_NV), - KC_DEL, KC_END, KC_PGDN, XXXXXXX, - XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, - KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), +* ,-------------------. +* |LAYR| | |NUM | +* |----|----|----|----| +* |HOME| UP |PGUP| | +* |----|----|----|----| +* |LEFT| |RIGH| | +* |----|----|----|----| +* |END |DOWN|PGDN| En | +* |----|----|----|----| +* |INS |INS |DEL | En | +* `-------------------' +*/ +[1] = LAYOUT_ortho_5x4( + KC_LUP, KC_NUMLOCK, XXXXXXX, XXXXXXX, + KC_HOME, KC_UP, KC_PGUP, XXXXXXX, + KC_LEFT, XXXXXXX, KC_RGHT, XXXXXXX, + KC_END, KC_DOWN, KC_PGDN, KC_PENT, + KC_INS, KC_INS, KC_DEL, KC_PENT +), /* Keymap _FN: RGB Function Layer * ,-------------------. - * |RMOD|RGBP|RTOG| FN | + * |LAYR| | |RTOG| * |----|----|----|----| - * |HUD |HUI | | | + * |HUD |HUI | |RGBP| * |----|----|----|----| - * |SAD |SAI | | | + * |SAD |SAI | |RMOD| * |----|----|----|----| * |VAD |VAS | | | - * |----|----|----| | - * |RST | | | | + * |----|----|----|----| + * |RST |RST | | | * `-------------------' */ - [_FN] = LAYOUT_ortho_5x4( - RGB_MOD, RGB_M_P, RGB_TOG, _______, - RGB_HUD, RGB_HUI, XXXXXXX, XXXXXXX, - RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, + [2] = LAYOUT_ortho_5x4( + KC_LUP, XXXXXXX, XXXXXXX, RGB_TOG, + RGB_HUD, RGB_HUI, XXXXXXX, RGB_M_P, + RGB_SAD, RGB_SAI, XXXXXXX, RGB_MOD, RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, - RESET, XXXXXXX, XXXXXXX, XXXXXXX + RESET, RESET, XXXXXXX, XXXXXXX ), }; +// (Optional) Rotary Encoder, Volume Control bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { tap_code(KC_VOLU); } else { tap_code(KC_VOLD); } - return true; + return true; } +// Potentiometer Slider, MIDI Control uint8_t divisor = 0; - -void slider(void) { - if (divisor++) { // only run the slider function 1/256 times it's called - return; - } - - midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); +void slider(void){ + if (divisor++) { // only run the slider function 1/256 times it's called + return; + } + midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); } void matrix_scan_user(void) { - slider(); + slider(); } // 0.91" OLED, 128x32 resolution #ifdef OLED_DRIVER_ENABLE - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_180; // flips the display 270 degrees + return OLED_ROTATION_180; } -#define ANIM_SIZE 636 // number of bytes in array, minimize for adequate firmware size, max is 1024 - -layer_state_t layer_state_set_user(layer_state_t state) { - - static const char PROGMEM gui_layers[][ANIM_SIZE] = { - { - // Home Screen - // 'layer_bl', 128x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, - 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, - 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, - 0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f, - 0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, - 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01, - 0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6, - 0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, - 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, - 0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40, - 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, - 0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40, - 0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c, - 0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - // Navigation Screen - // 'layer_nav', 128x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x40, - 0x40, 0x80, 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, 0xd0, 0x20, 0x50, 0x50, 0x90, - 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xc8, 0x28, 0x28, 0x28, 0xc8, 0x10, - 0xb0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xa1, 0x09, 0xe1, - 0xf3, 0x29, 0x05, 0x85, 0xe5, 0xe5, 0xc5, 0x89, 0x92, 0xe4, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x44, - 0x44, 0x22, 0xe2, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, - 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x09, 0x0b, 0x0b, 0x0b, 0x09, 0x04, - 0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, - 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x42, 0x48, 0x43, - 0x66, 0x4e, 0x53, 0x51, 0x51, 0x53, 0x53, 0x49, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x91, - 0x91, 0x52, 0x53, 0x34, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02, - 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - // RGB Screen - // 'layer_rgb', 128x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, - 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, - 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x24, 0x04, - 0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, - 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x22, 0x24, - 0x24, 0xc4, 0x44, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, - 0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } - }; +static void render_rocket_logo(void) { + static const char PROGMEM rocket_logo[]={ + // Rocket Screen + // 'home', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, + 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, + 0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f, + 0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, + 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01, + 0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6, + 0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, + 0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, + 0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40, + 0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c, + 0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(rocket_logo, sizeof(rocket_logo)); +} +static void render_nav_logo(void) { + static const char PROGMEM nav_logo[]={ + // Navigation Screen + // 'navigation', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x40, + 0x40, 0x80, 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, 0xd0, 0x20, 0x50, 0x50, 0x90, + 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xc8, 0x28, 0x28, 0x28, 0xc8, 0x10, + 0xb0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xa1, 0x09, 0xe1, + 0xf3, 0x29, 0x05, 0x85, 0xe5, 0xe5, 0xc5, 0x89, 0x92, 0xe4, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x44, + 0x44, 0x22, 0xe2, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x09, 0x0b, 0x0b, 0x0b, 0x09, 0x04, + 0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, + 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x42, 0x48, 0x43, + 0x66, 0x4e, 0x53, 0x51, 0x51, 0x53, 0x53, 0x49, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x91, + 0x91, 0x52, 0x53, 0x34, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(nav_logo, sizeof(nav_logo)); +} +static void render_light_logo(void) { + static const char PROGMEM light_logo[]={ + // RGB Screen + // 'rgb', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, + 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x24, 0x04, + 0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x22, 0x24, + 0x24, 0xc4, 0x44, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, + 0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(light_logo, sizeof(light_logo)); +} - switch (get_highest_layer(state)) { - case _BL: - oled_write_raw_P(gui_layers[0], sizeof(gui_layers[0]) ); +void oled_task_user(void) { + switch (get_highest_layer(layer_state)) { + case 0: + render_rocket_logo(); break; - case _NV: - oled_write_raw_P(gui_layers[1], sizeof(gui_layers[1]) ); + case 1: + render_nav_logo(); break; - case _FN: - oled_write_raw_P(gui_layers[2], sizeof(gui_layers[2]) ); + case 2: + render_light_logo(); break; default: // Or use the write_ln shortcut over adding '\n' to the end of your string oled_write_ln_P(PSTR(" UND"), false); break; } - return state; } - #endif diff --git a/keyboards/ungodly/launch_pad/keymaps/via/keymap.c b/keyboards/ungodly/launch_pad/keymaps/via/keymap.c new file mode 100644 index 000000000000..a401be7e8b3c --- /dev/null +++ b/keyboards/ungodly/launch_pad/keymaps/via/keymap.c @@ -0,0 +1,293 @@ +/* Copyright 2020 Ungodly Design + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "analog.h" +#include "qmk_midi.h" + +/* Force Numlock on */ +void matrix_init_user (void) { + if (!host_keyboard_led_state().num_lock) { + tap_code(KC_NUMLOCK); + } +} + +/* Custom Layer Up/Down Keystrokes */ +enum custom_keycodes { + KC_LUP = SAFE_RANGE, //cycle layers in up direction + KC_LDN //cycle layers in down direction +}; +#define HIGHEST_LAYER 2 //replace X with your highest layer +static uint8_t current_layer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_LUP: + if(record->event.pressed) { + if (current_layer == HIGHEST_LAYER){ + current_layer=0; + } else { + current_layer++; + } + layer_clear(); + layer_on(current_layer); + } + return false; + case KC_LDN: + if(record->event.pressed) { + if (current_layer == 0){ + current_layer=HIGHEST_LAYER; + } else { + current_layer--; + } + layer_clear(); + layer_on(current_layer); + } + return false; + default: + return true; + } +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap _BL: (Base Layer) Default Numpad Layer + * ,-------------------. + * |LAYR| / | * |BACK | + * |----|----|----|-----| + * | 7 | 8 | 9 | - | + * |----|----|----|-----| + * | 4 | 5 | 6 | + | + * |----|----|----|-----| + * | 1 | 2 | 3 | En | + * |----|----|----|-----| + * | 0 | 0 | . | En | + * `--------------------' + */ + [0] = LAYOUT_ortho_5x4( + KC_LUP, KC_PSLS, KC_PAST, LT(2, KC_BSPC), + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT + ), + +/* Keymap _NV: Navigation layer +* ,-------------------. +* |LAYR| | |NUM | +* |----|----|----|----| +* |HOME| UP |PGUP| | +* |----|----|----|----| +* |LEFT| |RIGH| | +* |----|----|----|----| +* |END |DOWN|PGDN| En | +* |----|----|----|----| +* |INS |INS |DEL | En | +* `-------------------' +*/ +[1] = LAYOUT_ortho_5x4( + KC_LUP, KC_NUMLOCK, XXXXXXX, XXXXXXX, + KC_HOME, KC_UP, KC_PGUP, XXXXXXX, + KC_LEFT, XXXXXXX, KC_RGHT, XXXXXXX, + KC_END, KC_DOWN, KC_PGDN, KC_PENT, + KC_INS, KC_INS, KC_DEL, KC_PENT +), + +/* Keymap _FN: RGB Function Layer + * ,-------------------. + * |LAYR| | |RTOG| + * |----|----|----|----| + * |HUD |HUI | |RGBP| + * |----|----|----|----| + * |SAD |SAI | |RMOD| + * |----|----|----|----| + * |VAD |VAS | | | + * |----|----|----|----| + * |RST |RST | | | + * `-------------------' + */ + [2] = LAYOUT_ortho_5x4( + KC_LUP, XXXXXXX, XXXXXXX, RGB_TOG, + RGB_HUD, RGB_HUI, XXXXXXX, RGB_M_P, + RGB_SAD, RGB_SAI, XXXXXXX, RGB_MOD, + RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, + RESET, RESET, XXXXXXX, XXXXXXX + ), +}; + +// (Optional) Rotary Encoder, Volume Control +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return true; +} + +// Potentiometer Slider, MIDI Control +uint8_t divisor = 0; +void slider(void){ + if (divisor++) { // only run the slider function 1/256 times it's called + return; + } + midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); +} + +void matrix_scan_user(void) { + slider(); +} + +// 0.91" OLED, 128x32 resolution +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +static void render_rocket_logo(void) { + static const char PROGMEM rocket_logo[]={ + // Rocket Screen + // 'home', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, + 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, + 0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f, + 0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, + 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01, + 0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6, + 0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, + 0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, + 0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40, + 0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c, + 0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(rocket_logo, sizeof(rocket_logo)); +} +static void render_nav_logo(void) { + static const char PROGMEM nav_logo[]={ + // Navigation Screen + // 'navigation', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x40, + 0x40, 0x80, 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, 0xd0, 0x20, 0x50, 0x50, 0x90, + 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xc8, 0x28, 0x28, 0x28, 0xc8, 0x10, + 0xb0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xa1, 0x09, 0xe1, + 0xf3, 0x29, 0x05, 0x85, 0xe5, 0xe5, 0xc5, 0x89, 0x92, 0xe4, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x44, + 0x44, 0x22, 0xe2, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x09, 0x0b, 0x0b, 0x0b, 0x09, 0x04, + 0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, + 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x42, 0x48, 0x43, + 0x66, 0x4e, 0x53, 0x51, 0x51, 0x53, 0x53, 0x49, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x91, + 0x91, 0x52, 0x53, 0x34, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(nav_logo, sizeof(nav_logo)); +} +static void render_light_logo(void) { + static const char PROGMEM light_logo[]={ + // RGB Screen + // 'rgb', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, + 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x24, 0x04, + 0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x22, 0x24, + 0x24, 0xc4, 0x44, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, + 0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(light_logo, sizeof(light_logo)); +} + +void oled_task_user(void) { + switch (get_highest_layer(layer_state)) { + case 0: + render_rocket_logo(); + break; + case 1: + render_nav_logo(); + break; + case 2: + render_light_logo(); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR(" UND"), false); + break; + } +} +#endif diff --git a/keyboards/ungodly/launch_pad/keymaps/via/rules.mk b/keyboards/ungodly/launch_pad/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/ungodly/launch_pad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c b/keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c new file mode 100644 index 000000000000..04270bcf3d47 --- /dev/null +++ b/keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c @@ -0,0 +1,269 @@ +/* Copyright 2020 Ungodly Design + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "analog.h" +#include "qmk_midi.h" + +/* Force Numlock on */ +void matrix_init_user (void) { + if (!host_keyboard_led_state().num_lock) { + tap_code(KC_NUMLOCK); + } +} + +// Tap Dance declarations +enum { + TD_ESC_TAB, + TD_NUMLOCK_L1, + TD_3_L0 +}; + +// Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Number 4 (armor plates in warzone) + [TD_ESC_TAB] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_TAB), + [TD_3_L0] = ACTION_TAP_DANCE_LAYER_TOGGLE(KC_3, 1), + [TD_NUMLOCK_L1] = ACTION_TAP_DANCE_LAYER_TOGGLE(KC_NUMLOCK, 1), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Numpad Layer + * ,-------------------. + * | NV | / | * |BK/FN| + * |----|----|----|-----| + * | 7 | 8 | 9 | - | + * |----|----|----|-----| + * | 4 | 5 | 6 | + | + * |----|----|----|-----| + * | 1 | 2 | 3 | En | + * |----|----|----|-----| + * | 0 | 0 | . | En | + * `--------------------' + */ + [0] = LAYOUT_ortho_5x4( + TD(TD_NUMLOCK_L1), KC_PSLS, KC_PAST, LT(2, KC_BSPC), + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT + ), + /* Keymap _WAR: (Warzone Layer) Default Numpad Layer for COD Warzone N00BS + * ,-------------------. + * | R | F | V | Spc | + * |----|----|----|-----| + * | E | D | C | Alt | + * |----|----|----|-----| + * | W | S | X | 4 | + * |----|----|----|-----| + * | Q | A | Z | 3 | + * |----|----|----|-----| + * | Esc|Ctrl|Shift| M | + * `--------------------' + */ + [1] = LAYOUT_ortho_5x4( + KC_R, KC_F, KC_V, KC_SPACE, + KC_E, KC_D, KC_C, KC_LALT, + KC_W, KC_S, KC_X, KC_4, + KC_Q, KC_A, KC_Z, TD(TD_3_L0), + TD(TD_ESC_TAB), KC_LCTRL, KC_LSHIFT, KC_M + ), + /* Keymap _FN: RGB Function Layer + * ,-------------------. + * |LAYR| | |RTOG| + * |----|----|----|----| + * |HUD |HUI | |RGBP| + * |----|----|----|----| + * |SAD |SAI | |RMOD| + * |----|----|----|----| + * |VAD |VAS | | | + * |----|----|----|----| + * |RST |RST | | | + * `-------------------' + */ + [2] = LAYOUT_ortho_5x4( + KC_LUP, XXXXXXX, XXXXXXX, RGB_TOG, + RGB_HUD, RGB_HUI, XXXXXXX, RGB_M_P, + RGB_SAD, RGB_SAI, XXXXXXX, RGB_MOD, + RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, + RESET, RESET, XXXXXXX, XXXXXXX + ), +}; + +// (Optional) Rotary Encoder, Volume Control +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return true; +} + +// Potentiometer Slider, MIDI Control +uint8_t divisor = 0; +void slider(void){ + if (divisor++) { // only run the slider function 1/256 times it's called + return; + } + midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); +} + +void matrix_scan_user(void) { + slider(); +} + +// 0.91" OLED, 128x32 resolution +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +static void render_rocket_logo(void) { + static const char PROGMEM rocket_logo[]={ + // Rocket Screen + // 'home', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, + 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, + 0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f, + 0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, + 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01, + 0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6, + 0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, + 0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, + 0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40, + 0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c, + 0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(rocket_logo, sizeof(rocket_logo)); +} +static void render_warzone_logo(void) { + static const char PROGMEM warzone_logo[]={ + // Home Screen + // 'warzone_bit', 128x32px + 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0xe0, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0xfc, 0xf0, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x80, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf8, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x1f, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x03, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, + 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x01, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x00, 0x03, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, + 0x1f, 0x07, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x01, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x07, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x00 + }; + oled_write_raw_P(warzone_logo, sizeof(warzone_logo)); +} +static void render_light_logo(void) { + static const char PROGMEM light_logo[]={ + // RGB Screen + // 'rgb', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, + 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x24, 0x04, + 0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x22, 0x24, + 0x24, 0xc4, 0x44, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, + 0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(light_logo, sizeof(light_logo)); +} + +void oled_task_user(void) { + switch (get_highest_layer(layer_state)) { + case 0: + render_rocket_logo(); + break; + case 1: + render_warzone_logo(); + break; + case 2: + render_light_logo(); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR(" UND"), false); + break; + } +} +#endif diff --git a/keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk b/keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk new file mode 100644 index 000000000000..791d5ab50213 --- /dev/null +++ b/keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/ungodly/launch_pad/launch_pad.c b/keyboards/ungodly/launch_pad/launch_pad.c index fde6ed20acba..e5ec112f9bcb 100644 --- a/keyboards/ungodly/launch_pad/launch_pad.c +++ b/keyboards/ungodly/launch_pad/launch_pad.c @@ -42,20 +42,3 @@ led_config_t g_led_config = { { 2, 2 } }; #endif - -void eeconfig_init_kb(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -# ifdef RGBLIGHT_ANIMATIONS - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -# endif -#endif - -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable(); // Enable RGB by default -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/ungodly/launch_pad/readme.md b/keyboards/ungodly/launch_pad/readme.md index 89e4b6413dde..5a449bcab44f 100644 --- a/keyboards/ungodly/launch_pad/readme.md +++ b/keyboards/ungodly/launch_pad/readme.md @@ -22,11 +22,9 @@ Numpad Layout | 5x4 Layout ![Numpad](https://i.imgur.com/4XvqCBHl.jpg) | ![5x4](https://i.imgur.com/mwtGnPSl.jpg) -|Reset Bootloader| | -|---|---| -|Use tweezers to short the two bottom pins of the J-Link pinout.|![Numpad](https://i.imgur.com/ArSIcK0.pngl)| -* Keyboard Maintainer: [Luis Godinez](https://github.com/luis-Godinez) + +* Keyboard Maintainer: [Luis Godinez](https://github.com/luis-godinez) * Hardware Supported: Launch Pad PCB * Hardware Availability: [Ungodly.Design](https://ungodly.design/products/launch-pad-pcb) @@ -35,3 +33,59 @@ Make example for this keyboard (after setting up your build environment): make ungodly/launch_pad:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +# Firmware +- [v1.0](https://github.com/luis-godinez/qmk_firmware/releases/tag/launch_pad) + +# Reset Bootloader + + + + + + +
Use tweezers to short the two bottom pins of the J-Link pinout.
+ +# Midi Setup + + + + + + + + + + +
WindowsMac
+
    +
  • Midi Mixer
  • +
      +
    • Download the latest version of Midi Mixer
    • +
    • Run the exe to install the application.
    • Launch the MIDI Mixer application.
    • +
    • Navigate to the "Profiles" tab and select the "Ungodly Design Launch Pad" preset.
    • +
    • Navigate to the "Groups" tab and select the audio source you would like to control. +
      Midi Mixer
    • +
    • Optionally, Navigate to the "Settings" tab and enable/disable "Logarithmic volume curve".
    • +
    +
+
+ +
+ +# Custom OLED Displays + +Layer | Graphic +:----:|:----: +home | ![home](https://i.imgur.com/tK3u7ZU.png) +nav | ![nav](https://i.imgur.com/J0FNZfR.png) +rgb | ![rgb](https://i.imgur.com/XK6r6KL.png) + +* These instructions require compiling your own firmware. [Ensure that your build environenment is setup](https://beta.docs.qmk.fm/tutorial/newbs_getting_started). +* Use [QMK Logo Editor](https://joric.github.io/qle/) to create your own LCD graphics. +* Copy the generated output into your keymap ([sample code](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ungodly/launch_pad/keymaps/default/keymap.c)) + * Note: By default, the LCD is configured as a vertical display with a 180 degree rotation. You may need to change the `OLED_ROTATION` value in the `keymap.c` to achieve your desired effect. +* Compile the firmware and flash it to your launch pad. From 2218879d6878a63e74bca473399f9d315da7648b Mon Sep 17 00:00:00 2001 From: Jarrett Drouillard Date: Thu, 12 Aug 2021 11:56:25 -0400 Subject: [PATCH 224/328] [Keymap] add kuatsure planck keymap (#10625) Co-authored-by: Ryan --- keyboards/planck/keymaps/kuatsure/config.h | 33 ++ keyboards/planck/keymaps/kuatsure/keymap.c | 318 ++++++++++++++++++++ keyboards/planck/keymaps/kuatsure/readme.md | 1 + keyboards/planck/keymaps/kuatsure/rules.mk | 6 + keyboards/preonic/keymaps/kuatsure/keymap.c | 2 + users/kuatsure/kuatsure.c | 14 +- users/kuatsure/kuatsure.h | 10 +- 7 files changed, 371 insertions(+), 13 deletions(-) create mode 100644 keyboards/planck/keymaps/kuatsure/config.h create mode 100644 keyboards/planck/keymaps/kuatsure/keymap.c create mode 100644 keyboards/planck/keymaps/kuatsure/readme.md create mode 100644 keyboards/planck/keymaps/kuatsure/rules.mk diff --git a/keyboards/planck/keymaps/kuatsure/config.h b/keyboards/planck/keymaps/kuatsure/config.h new file mode 100644 index 000000000000..8d832285bcd7 --- /dev/null +++ b/keyboards/planck/keymaps/kuatsure/config.h @@ -0,0 +1,33 @@ +/* Copyright 2020 kuatsure + * + * 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 + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define GAME_SOUND DVORAK_SOUND + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(GAME_SOUND) \ + } +#endif + +#define MIDI_BASIC + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 diff --git a/keyboards/planck/keymaps/kuatsure/keymap.c b/keyboards/planck/keymaps/kuatsure/keymap.c new file mode 100644 index 000000000000..6ce1049b8077 --- /dev/null +++ b/keyboards/planck/keymaps/kuatsure/keymap.c @@ -0,0 +1,318 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "muse.h" +#include "kuatsure.h" + +#define LAYOUT_planck_grid_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__) + +enum planck_layers { + _QWERTY, + _GAME, + _GAME_LOWER, + _GAME_RAISE, + _MOUSE, + _LOWER, + _RAISE, + _ADJUST +}; + +enum planck_keycodes { + QWERTY = USER_SAFE_RANGE, + GAME, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define MOUSE TG(_MOUSE) +#define G_LOWER MO(_GAME_LOWER) +#define G_RAISE MO(_GAME_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab/M| Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc/C| A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / | Ent | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Mute | Ldr | Alt | GUI |Lower | RSE | SPC | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_planck_grid_wrapper( + KT_MTAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, + KT_CESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, + KT_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT, + KC_MPLY, KC_LEAD, KC_LALT, KC_LGUI, LOWER, RAISE, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | | ! | & | Up | | ` | | { | } | _ | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Del | Left | Down | Right| ~ | = | ( | ) | + | : | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | VolD | Prev | Play | Next | VolU | - | [ | ] | | ? |Mouse | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Home | PgDn | PgUp | End | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_planck_grid_wrapper( + _______, KC_EXLM, KC_AMPR, KC_UP, _______, KC_GRV, _______, ____CRBRACES____, KC_UNDS, _______, KC_PIPE, + _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TILD, KC_EQL, _____PARENS_____, KC_PLUS, KC_COLN, KC_DQT , + _______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_MINS, ___SQBRACKETS___, _______, KC_QUES, MOUSE , + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | | F9 | F10 | F11 | F12 | | * | 7 | 8 | 9 | 0 | \ | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F5 | F6 | F7 | F8 | | = | 4 | 5 | 6 | + | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | | - | 1 | 2 | 3 | / | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | 0 | 0 | | | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_planck_grid_wrapper( + _______, ____________FUNCTION_3____________, _______, KC_ASTR, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, ____________FUNCTION_2____________, _______, KC_EQL, KC_4, KC_5, KC_6, KC_PLUS, _______, + _______, ____________FUNCTION_1____________, _______, KC_MINS, KC_1, KC_2, KC_3, KC_SLASH, _______, + _______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, _______, _______, _______ +), + +/* Mouse + * ,-----------------------------------------------------------------------------------. + * | | | Btn1 | mUP | Btn2 | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | mLEFT| mDWN | mRGHT| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | Btn3 | Btn4 | Btn5 | | | | | | |Mouse | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_MOUSE] = LAYOUT_planck_grid_wrapper( + _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______, _______, _______, _______, _______, MOUSE , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | MAKE | FLSH | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | RESET| DEBUG| | |Aud on|AudOff| Game |Mouse | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | VRSN | | |MusMod|Mus on|MusOff| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_grid_wrapper( + _______, KB_MAKE, KB_FLSH, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, RESET, DEBUG, _______, _______, AU_ON, AU_OFF, GAME, MOUSE, _______, _______, _______, + _______, KB_VRSN, _______, _______, MU_MOD, MU_ON, MU_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Game + * + * Mostly transparent, but wanted to disable gui key. + * Also give a key to get back to qwerty layout. + * + * Disabling the `Controlled ESC` key is also plus. + * Think BDO / Monster Hunter / D2 + * + * ,-----------------------------------------------------------------------------------. + * | Tab | | | | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shft | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Qwerty| F14 | Spc | gLWR | gRSE | ESC | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_GAME] = LAYOUT_planck_grid_wrapper( + KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, QWERTY, KC_F14, KC_SPC, G_LOWER, G_RAISE, KC_ESC, KC_ESC, _______, _______, _______, _______ +), + +/* Game Lower + * ,-----------------------------------------------------------------------------------. + * | | 1 | 2 | 3 | 4 | ` | | F9 | F10 | F11 | F12 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | 5 | 6 | 7 | 8 | | | F5 | F6 | F7 | F8 | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | 9 | 0 | - | = | | | F1 | F2 | F3 | F4 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_GAME_LOWER] = LAYOUT_planck_grid_wrapper( + _______, KC_1, KC_2, KC_3, KC_4, KC_GRV, _______, ____________FUNCTION_3____________, _______, + _______, KC_5, KC_6, KC_7, KC_8, _______, _______, ____________FUNCTION_2____________, _______, + _______, KC_9, KC_0, KC_MINS, KC_EQL, _______, _______, ____________FUNCTION_1____________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Game Raise + * ,-----------------------------------------------------------------------------------. + * | | p7 | p8 | p9 | p0 | ` | | F9 | F10 | F11 | F12 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | p4 | p5 | p6 | p+ | | | F5 | F6 | F7 | F8 | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | p1 | p2 | p3 | pE | | | F1 | F2 | F3 | F4 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_GAME_RAISE] = LAYOUT_planck_grid_wrapper( + _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_GRV, _______, ____________FUNCTION_3____________, _______, + _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, ____________FUNCTION_2____________, _______, + _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, ____________FUNCTION_1____________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +}; + +#ifdef AUDIO_ENABLE + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + + case GAME: + if (record->event.pressed) { + set_single_persistent_default_layer(_GAME); + } + return false; + break; + } + return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +void encoder_update(bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + if (IS_LAYER_ON(_MOUSE)) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_VOLU); + } + } else { + if (IS_LAYER_ON(_MOUSE)) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_VOLD); + } + } + } +} + +void dip_update(uint8_t index, bool active) { + switch (index) { + case 0: + if (active) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_song); + #endif + layer_on(_ADJUST); + } else { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + layer_off(_ADJUST); + } + break; + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + #ifdef AUDIO_ENABLE + stop_all_notes(); + #endif + } + } +} + +void matrix_scan_keymap(void) { + #ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } + #endif +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/planck/keymaps/kuatsure/readme.md b/keyboards/planck/keymaps/kuatsure/readme.md new file mode 100644 index 000000000000..b1e5c642308b --- /dev/null +++ b/keyboards/planck/keymaps/kuatsure/readme.md @@ -0,0 +1 @@ +# The kuatsure Planck layout - largely based on the Preonic's & Keyboard Paradise V60's layout diff --git a/keyboards/planck/keymaps/kuatsure/rules.mk b/keyboards/planck/keymaps/kuatsure/rules.mk new file mode 100644 index 000000000000..f9fba61d3ebf --- /dev/null +++ b/keyboards/planck/keymaps/kuatsure/rules.mk @@ -0,0 +1,6 @@ +SRC += muse.c + +BACKLIGHT_ENABLE = no +LEADER_ENABLE = yes +ENCODER_ENABLE = yes +MOUSEKEY_ENABLE = yes diff --git a/keyboards/preonic/keymaps/kuatsure/keymap.c b/keyboards/preonic/keymaps/kuatsure/keymap.c index 907360d0cfa1..5bd7321d4984 100644 --- a/keyboards/preonic/keymaps/kuatsure/keymap.c +++ b/keyboards/preonic/keymaps/kuatsure/keymap.c @@ -17,6 +17,8 @@ #include QMK_KEYBOARD_H #include "kuatsure.h" +#define LAYOUT_preonic_grid_wrapper(...) LAYOUT_preonic_grid(__VA_ARGS__) + enum preonic_layers { _QWERTY, _GAME, diff --git a/users/kuatsure/kuatsure.c b/users/kuatsure/kuatsure.c index f935e83c7445..88bf6790a490 100644 --- a/users/kuatsure/kuatsure.c +++ b/users/kuatsure/kuatsure.c @@ -3,7 +3,8 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_LT), - [TD_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, KC_GT) + [TD_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, KC_GT), + [TD_SLSH] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), }; __attribute__ ((weak)) @@ -29,15 +30,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KB_FLSH: if (!record->event.pressed) { - SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP - #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU)) - ":dfu " - #elif defined(BOOTLOADER_HALFKAY) - ":teensy " - #elif defined(BOOTLOADER_CATERINA) - ":avrdude " - #endif - SS_TAP(X_ENTER) + SEND_STRING( + "qmk flash -kb " QMK_KEYBOARD " -km " QMK_KEYMAP ); reset_keyboard(); diff --git a/users/kuatsure/kuatsure.h b/users/kuatsure/kuatsure.h index 8961d5621306..ca2c91c9bc44 100644 --- a/users/kuatsure/kuatsure.h +++ b/users/kuatsure/kuatsure.h @@ -11,13 +11,18 @@ enum kuatsure_keycodes { USER_SAFE_RANGE, }; +#define ONESHOT_TAP_TOGGLE 2 +#define KT_LSFT OSM(MOD_LSFT) + enum { TD_LBRC = 0, TD_RBRC, + TD_SLSH }; #define KT_LBRC TD(TD_LBRC) #define KT_RBRC TD(TD_RBRC) +#define KT_SLSH TD(TD_SLSH) #define TAPPING_TERM 200 @@ -33,8 +38,6 @@ void tmux_pane_zoom(void); #undef LEADER_TIMEOUT #define LEADER_TIMEOUT 300 -#define LAYOUT_preonic_grid_wrapper(...) LAYOUT_preonic_grid(__VA_ARGS__) - #define _________________NUMBER_L1_________________ KC_1, KC_2, KC_3, KC_4, KC_5 #define _________________NUMBER_R1_________________ KC_6, KC_7, KC_8, KC_9, KC_0 @@ -47,7 +50,8 @@ void tmux_pane_zoom(void); #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN -#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH +#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KT_SLSH +#define _________________QWERTY_R3_M_______________ KC_N, KC_M, KC_COMM, KC_DOT, KC_UP #define ____________FUNCTION_1____________ KC_F1, KC_F2, KC_F3, KC_F4 #define ____________FUNCTION_2____________ KC_F5, KC_F6, KC_F7, KC_F8 From 80015f7fb023f27ad5307815fd5433694a3bcb4a Mon Sep 17 00:00:00 2001 From: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Fri, 13 Aug 2021 02:04:06 +1000 Subject: [PATCH 225/328] Update config.h for kbdfans/kbd67/mkiirgb/v3 (#13978) QMK Configurator does not compile - needs a value on RGB_DISABLE_WHEN_USB_SUSPENDED --- keyboards/kbdfans/kbd67/mkiirgb/v3/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h index 1ee83cdc942c..6a783f55a5f7 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h @@ -42,7 +42,7 @@ #define NO_ACTION_FUNCTION #ifdef RGB_MATRIX_ENABLE #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects -#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended #define USB_SUSPEND_WAKEUP_DELAY 5000 #define RGB_MATRIX_KEYPRESSES #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN From fd4759dcfa281646b7a9b67fabf9552d31ed4ad1 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 12 Aug 2021 11:03:50 -0700 Subject: [PATCH 226/328] [Keyboard] Fix keymaps for Ocean Gin v2 (#13976) --- keyboards/ocean/gin_v2/keymaps/default/keymap.c | 2 +- keyboards/ocean/gin_v2/keymaps/via/keymap.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ocean/gin_v2/keymaps/default/keymap.c b/keyboards/ocean/gin_v2/keymaps/default/keymap.c index c660439ee591..5e9944969486 100644 --- a/keyboards/ocean/gin_v2/keymaps/default/keymap.c +++ b/keyboards/ocean/gin_v2/keymaps/default/keymap.c @@ -14,8 +14,8 @@ */ #include QMK_KEYBOARD_H +// clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - { [0] = LAYOUT( KC_P7, KC_P8, KC_P9, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_BSPC, KC_P4, KC_P5, KC_P6, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, diff --git a/keyboards/ocean/gin_v2/keymaps/via/keymap.c b/keyboards/ocean/gin_v2/keymaps/via/keymap.c index c811f5a3c054..dbfdd239111a 100644 --- a/keyboards/ocean/gin_v2/keymaps/via/keymap.c +++ b/keyboards/ocean/gin_v2/keymaps/via/keymap.c @@ -14,8 +14,8 @@ */ #include QMK_KEYBOARD_H +// clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - { [0] = LAYOUT( KC_P7, KC_P8, KC_P9, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_BSPC, KC_P4, KC_P5, KC_P6, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, From 0c175d63cf35561c7a92e0bdeaef0ef185799aec Mon Sep 17 00:00:00 2001 From: Felix Sargent Date: Thu, 12 Aug 2021 13:14:57 -0700 Subject: [PATCH 227/328] Update 20210529.md (#13170) This was confusing to me when I updated, so I want to make it more clear for those that come after. --- docs/ChangeLog/20210529.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/ChangeLog/20210529.md b/docs/ChangeLog/20210529.md index d005aeed3668..2feeed64376c 100644 --- a/docs/ChangeLog/20210529.md +++ b/docs/ChangeLog/20210529.md @@ -82,6 +82,22 @@ Example code before change: void encoder_update_kb(uint8_t index, bool clockwise) { encoder_update_user(index, clockwise); } + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } +} ``` Example code after change: @@ -90,6 +106,25 @@ Example code after change: bool encoder_update_kb(uint8_t index, bool clockwise) { return encoder_update_user(index, clockwise); } + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + return true; + // If you return true, this will allow the keyboard level code to run, as well. + //Returning false will override the keyboard level code. Depending on how the keyboard level function is set up. +} ``` ## Core Changes :id=core-changes From 4742a3a48f7560ee4dd2b55d4ecad4cdf1d139cd Mon Sep 17 00:00:00 2001 From: Zach White Date: Fri, 13 Aug 2021 10:38:05 -0700 Subject: [PATCH 228/328] use sudo to install modules if needed (#13984) --- lib/python/qmk/cli/__init__.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 1e1c26671069..de71a5d1e795 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -65,6 +65,26 @@ ] +def _install_deps(requirements): + """Perform the installation of missing requirements. + + If we detect that we are running in a virtualenv we can't write into we'll use sudo to perform the pip install. + """ + command = [sys.executable, '-m', 'pip', 'install'] + + if sys.prefix != sys.base_prefix: + # We are in a virtualenv, check to see if we need to use sudo to write to it + if not os.access(sys.prefix, os.W_OK): + print('Notice: Using sudo to install modules to location owned by root:', sys.prefix) + command.insert(0, 'sudo') + + elif not os.access(sys.prefix, os.W_OK): + # We can't write to sys.prefix, attempt to install locally + command.append('--local') + + return _run_cmd(*command, '-r', requirements) + + def _run_cmd(*command): """Run a command in a subshell. """ @@ -168,7 +188,7 @@ def _broken_module_imports(requirements): if not safe_command: if _broken_module_imports('requirements.txt'): if yesno('Would you like to install the required Python modules?'): - _run_cmd(sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt') + _install_deps('requirements.txt') else: print() print(msg_install % (str(Path('requirements.txt').resolve()),)) @@ -177,7 +197,7 @@ def _broken_module_imports(requirements): if cli.config.user.developer and _broken_module_imports('requirements-dev.txt'): if yesno('Would you like to install the required developer Python modules?'): - _run_cmd(sys.executable, '-m', 'pip', 'install', '-r', 'requirements-dev.txt') + _install_deps('requirements-dev.txt') elif yesno('Would you like to disable developer mode?'): _run_cmd(sys.argv[0], 'config', 'user.developer=None') else: From 0b90877b4b72bae2fa99e2b1311cd5e74f5e5d4d Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Sat, 14 Aug 2021 01:18:02 +0700 Subject: [PATCH 229/328] [Keyboard] add rart75m with via support (#13975) --- keyboards/rart/rart75m/config.h | 61 +++++++++++ keyboards/rart/rart75m/info.json | 101 ++++++++++++++++++ .../rart/rart75m/keymaps/default/keymap.c | 53 +++++++++ keyboards/rart/rart75m/keymaps/via/keymap.c | 54 ++++++++++ keyboards/rart/rart75m/keymaps/via/rules.mk | 1 + keyboards/rart/rart75m/rart75m.c | 57 ++++++++++ keyboards/rart/rart75m/rart75m.h | 36 +++++++ keyboards/rart/rart75m/readme.md | 24 +++++ keyboards/rart/rart75m/rules.mk | 25 +++++ 9 files changed, 412 insertions(+) create mode 100644 keyboards/rart/rart75m/config.h create mode 100644 keyboards/rart/rart75m/info.json create mode 100644 keyboards/rart/rart75m/keymaps/default/keymap.c create mode 100644 keyboards/rart/rart75m/keymaps/via/keymap.c create mode 100644 keyboards/rart/rart75m/keymaps/via/rules.mk create mode 100644 keyboards/rart/rart75m/rart75m.c create mode 100644 keyboards/rart/rart75m/rart75m.h create mode 100644 keyboards/rart/rart75m/readme.md create mode 100644 keyboards/rart/rart75m/rules.mk diff --git a/keyboards/rart/rart75m/config.h b/keyboards/rart/rart75m/config.h new file mode 100644 index 000000000000..528082cee0a4 --- /dev/null +++ b/keyboards/rart/rart75m/config.h @@ -0,0 +1,61 @@ +/*Copyright 2021 Alabahuy + +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 VENDOR_ID 0x414C +#define PRODUCT_ID 0x6075 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Alabahuy +#define PRODUCT 75 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 14 + +/* + * 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) + * + */ +/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14*/ +#define MATRIX_ROW_PINS { C7, B3, B1, B0, D3, D2 } +#define MATRIX_COL_PINS { B2, D4, F0, C6, F1, D7, F4, E6, F5, B4, F6, B5, F7, B6 } +#define UNUSED_PINS + +#define ENCODERS_PAD_B { B7 } +#define ENCODERS_PAD_A { D6 } +#define ENCODER_RESOLUTION 2 //default/suggested + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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 + +#define OLED_TIMEOUT 600000 diff --git a/keyboards/rart/rart75m/info.json b/keyboards/rart/rart75m/info.json new file mode 100644 index 000000000000..c9585aafddf0 --- /dev/null +++ b/keyboards/rart/rart75m/info.json @@ -0,0 +1,101 @@ +{ + "keyboard_name": "RART75M", + "url": "", + "maintainer": "Alabahuy", + "width": 15, + "height": 6, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":1.5, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7.25, "y":0}, + {"x":8.25, "y":0}, + {"x":9.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":14.5, "y":0}, + + {"x":1.5, "y":1.25}, + {"x":2.5, "y":1.25}, + {"x":3.5, "y":1.25}, + {"x":4.5, "y":1.25}, + {"x":5.5, "y":1.25}, + {"x":6.5, "y":1.25}, + {"x":7.5, "y":1.25}, + {"x":8.5, "y":1.25}, + {"x":9.5, "y":1.25}, + {"x":10.5, "y":1.25}, + {"x":11.5, "y":1.25}, + {"x":12.5, "y":1.25}, + {"x":13.5, "y":1.25}, + {"x":14.5, "y":1.25, "w":2}, + {"x":17, "y":1}, + + {"x":1.5, "y":2.25, "w":1.5}, + {"x":3, "y":2.25}, + {"x":4, "y":2.25}, + {"x":5, "y":2.25}, + {"x":6, "y":2.25}, + {"x":7, "y":2.25}, + {"x":8, "y":2.25}, + {"x":9, "y":2.25}, + {"x":10, "y":2.25}, + {"x":11, "y":2.25}, + {"x":12, "y":2.25}, + {"x":13, "y":2.25}, + {"x":14, "y":2.25}, + {"x":15, "y":2.25, "w":1.5}, + {"x":17, "y":2.25}, + + {"x":0, "y":3.25}, + {"x":1.5, "y":3.25, "w":1.75}, + {"x":3.25, "y":3.25}, + {"x":4.25, "y":3.25}, + {"x":5.25, "y":3.25}, + {"x":6.25, "y":3.25}, + {"x":7.25, "y":3.25}, + {"x":8.25, "y":3.25}, + {"x":9.25, "y":3.25}, + {"x":10.25, "y":3.25}, + {"x":11.25, "y":3.25}, + {"x":12.25, "y":3.25}, + {"x":13.25, "y":3.25}, + {"x":14.25, "y":3.25, "w":2.25}, + {"x":17, "y":3.25}, + + {"x":0, "y":4.25}, + {"x":1.5, "y":4.25, "w":2.25}, + {"x":3.75, "y":4.25}, + {"x":4.75, "y":4.25}, + {"x":5.75, "y":4.25}, + {"x":6.75, "y":4.25}, + {"x":7.75, "y":4.25}, + {"x":8.75, "y":4.25}, + {"x":9.75, "y":4.25}, + {"x":10.75, "y":4.25}, + {"x":11.75, "y":4.25}, + {"x":12.75, "y":4.25}, + {"x":13.75, "y":4.25, "w":1.75}, + {"x":15.75, "y":4.5}, + {"x":17, "y":4.25}, + + {"x":0, "y":5.25}, + {"x":1.5, "y":5.25, "w":1.25}, + {"x":2.75, "y":5.25, "w":1.25}, + {"x":4, "y":5.25, "w":1.25}, + {"x":5.25, "y":5.25, "w":6.25}, + {"x":11.5, "y":5.25, "w":1.5}, + {"x":13, "y":5.25, "w":1.5}, + {"x":14.75, "y":5.5 }, + {"x":15.75, "y":5.5 }, + {"x":16.75, "y":5.5 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/rart/rart75m/keymaps/default/keymap.c b/keyboards/rart/rart75m/keymaps/default/keymap.c new file mode 100644 index 000000000000..14b05c9cdd1b --- /dev/null +++ b/keyboards/rart/rart75m/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + MO(3), 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_PGUP, + MO(2), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [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 + ), +}; \ No newline at end of file diff --git a/keyboards/rart/rart75m/keymaps/via/keymap.c b/keyboards/rart/rart75m/keymaps/via/keymap.c new file mode 100644 index 000000000000..2d847bc6ee5e --- /dev/null +++ b/keyboards/rart/rart75m/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2021 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + MO(3), 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_PGUP, + MO(2), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [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 + ), + +}; \ No newline at end of file diff --git a/keyboards/rart/rart75m/keymaps/via/rules.mk b/keyboards/rart/rart75m/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/rart/rart75m/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/rart/rart75m/rart75m.c b/keyboards/rart/rart75m/rart75m.c new file mode 100644 index 000000000000..c874e01ff8f6 --- /dev/null +++ b/keyboards/rart/rart75m/rart75m.c @@ -0,0 +1,57 @@ +/* Copyright 2021 Alabahuy + * 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 "rart75m.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } + return true; +} +#endif + +#ifdef OLED_DRIVER_ENABLE +__attribute__((weak)) void oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("R A R T 7 5 M\nLayer: "), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("Default\n"), false); + break; + case 1: + oled_write_P(PSTR("FN\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); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} + +#endif \ No newline at end of file diff --git a/keyboards/rart/rart75m/rart75m.h b/keyboards/rart/rart75m/rart75m.h new file mode 100644 index 000000000000..7b45b61a68aa --- /dev/null +++ b/keyboards/rart/rart75m/rart75m.h @@ -0,0 +1,36 @@ +/* Copyright 2021 Alabahuy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_all(\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K5D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K5C, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K5B, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K5A, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX }, \ + { 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, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D } \ +} diff --git a/keyboards/rart/rart75m/readme.md b/keyboards/rart/rart75m/readme.md new file mode 100644 index 000000000000..ba8b2c854345 --- /dev/null +++ b/keyboards/rart/rart75m/readme.md @@ -0,0 +1,24 @@ +# RART75M + +![75](https://user-images.githubusercontent.com/30220306/127945751-b62c67f8-9840-4b82-87e7-140a22cc4a63.png) + + +75% mechanical keyboard with arduino micro, oled, encoder and 3 macro + +* Keyboard Maintainer: Alabahuy +* Hardware Supported: Arduino Micro, Oled, Encoder +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make rart/rart75m:default + +Flashing example for this keyboard: + + make rart/rart75m:default:flash + +## Bootloader + +To Enter the bootloader you can double click reset button on board when you flash the firmware + +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). diff --git a/keyboards/rart/rart75m/rules.mk b/keyboards/rart/rart75m/rules.mk new file mode 100644 index 000000000000..c6b786b35d2f --- /dev/null +++ b/keyboards/rart/rart75m/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes +OLED_DRIVER_ENABLE = yes +ENCODER_ENABLE = yes \ No newline at end of file From 0967d4c8a93e412b85caf1aceb11995416c4cd25 Mon Sep 17 00:00:00 2001 From: Vincent Vorholter Date: Fri, 13 Aug 2021 20:21:09 +0200 Subject: [PATCH 230/328] [Keyboard] Add Basketweave VIA keymap (#13972) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Vince Vorholter --- keyboards/basketweave/keymaps/via/keymap.c | 66 ++++++++++++++++++++++ keyboards/basketweave/keymaps/via/rules.mk | 2 + 2 files changed, 68 insertions(+) create mode 100644 keyboards/basketweave/keymaps/via/keymap.c create mode 100644 keyboards/basketweave/keymaps/via/rules.mk diff --git a/keyboards/basketweave/keymaps/via/keymap.c b/keyboards/basketweave/keymaps/via/keymap.c new file mode 100644 index 000000000000..12e3fefed4a8 --- /dev/null +++ b/keyboards/basketweave/keymaps/via/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 null-ll + * + * 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_default( /* base */ + KC_GESC, 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_INS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_MUTE, + KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + + [1] = LAYOUT_default( /* fn */ + /* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */ + 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, + /* ins tab Q W E R T Y U I O P [ ] \ rotary */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + /* del caps A S D F G H J K L ; ' enter */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, + /* shift Z X C V B B N M , . / shift up */ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP, + /* ctrl alt space fn space alt ctrl left down right */ + KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END + ), + + [2] = LAYOUT_default( /* extra */ + /* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* ins tab Q W E R T Y U I O P [ ] \ rotary */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* del caps A S D F G H J K L ; ' enter */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, + /* shift Z X C V B B N M , . / shift up */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* ctrl alt space fn space alt ctrl left down right */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/basketweave/keymaps/via/rules.mk b/keyboards/basketweave/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/basketweave/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes From 0014c3237556b8c94bbf6d287d53a7b55534fa69 Mon Sep 17 00:00:00 2001 From: Simon <47527944+Frooastside@users.noreply.github.com> Date: Fri, 13 Aug 2021 20:21:32 +0200 Subject: [PATCH 231/328] [Keyboard] Added Frooastboard (#13970) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/frooastboard/config.h | 66 +++++++++++++++++++ keyboards/frooastboard/frooastboard.c | 17 +++++ keyboards/frooastboard/frooastboard.h | 27 ++++++++ keyboards/frooastboard/info.json | 44 +++++++++++++ .../frooastboard/keymaps/default/keymap.c | 47 +++++++++++++ .../frooastboard/keymaps/safe_mode/keymap.c | 43 ++++++++++++ keyboards/frooastboard/keymaps/via/config.h | 30 +++++++++ keyboards/frooastboard/keymaps/via/keymap.c | 27 ++++++++ keyboards/frooastboard/keymaps/via/rules.mk | 2 + keyboards/frooastboard/readme.md | 19 ++++++ keyboards/frooastboard/rules.mk | 22 +++++++ 11 files changed, 344 insertions(+) create mode 100644 keyboards/frooastboard/config.h create mode 100644 keyboards/frooastboard/frooastboard.c create mode 100644 keyboards/frooastboard/frooastboard.h create mode 100644 keyboards/frooastboard/info.json create mode 100644 keyboards/frooastboard/keymaps/default/keymap.c create mode 100644 keyboards/frooastboard/keymaps/safe_mode/keymap.c create mode 100644 keyboards/frooastboard/keymaps/via/config.h create mode 100644 keyboards/frooastboard/keymaps/via/keymap.c create mode 100644 keyboards/frooastboard/keymaps/via/rules.mk create mode 100644 keyboards/frooastboard/readme.md create mode 100644 keyboards/frooastboard/rules.mk diff --git a/keyboards/frooastboard/config.h b/keyboards/frooastboard/config.h new file mode 100644 index 000000000000..fb5f3e650c45 --- /dev/null +++ b/keyboards/frooastboard/config.h @@ -0,0 +1,66 @@ +/* Copyright 2021 frooastside + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4642 /*F rooast B oards*/ +#define PRODUCT_ID 0x6F21 /*osu!*/ +#define DEVICE_VER 0x0001 +#define MANUFACTURER frooastside +#define PRODUCT Frooastboard + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 2 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B1 } +#define MATRIX_COL_PINS { B2, B3 } +#define UNUSED_PINS + +#define BOOTMAGIC_LITE_ROW 1 +#define BOOTMAGIC_LITE_COLUMN 1 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define RGB_DI_PIN B4 +#define RGBLED_NUM 8 + +#define RGBLIGHT_SLEEP + +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#define RGBLIGHT_DEFAULT_HUE 234 + +#define RGBLIGHT_LIMIT_VAL 255 +#define RGBLIGHT_DEFAULT_VAL 190 + +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_SNAKE + +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + 2 diff --git a/keyboards/frooastboard/frooastboard.c b/keyboards/frooastboard/frooastboard.c new file mode 100644 index 000000000000..8e7f3c8998c9 --- /dev/null +++ b/keyboards/frooastboard/frooastboard.c @@ -0,0 +1,17 @@ +/* Copyright 2021 frooastside + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "frooastboard.h" diff --git a/keyboards/frooastboard/frooastboard.h b/keyboards/frooastboard/frooastboard.h new file mode 100644 index 000000000000..da598cf4aabd --- /dev/null +++ b/keyboards/frooastboard/frooastboard.h @@ -0,0 +1,27 @@ +/* Copyright 2021 frooastside + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, \ + K10, K11 \ +) { \ + { K00, K01 }, \ + { K10, K11 } \ +} diff --git a/keyboards/frooastboard/info.json b/keyboards/frooastboard/info.json new file mode 100644 index 000000000000..43ea3cae74b1 --- /dev/null +++ b/keyboards/frooastboard/info.json @@ -0,0 +1,44 @@ +{ + "keyboard_name": "Frooastboard", + "url": "https://github.com/frooastside/qmk_firmware/tree/master/keyboards/frooastboard", + "maintainer": "frooastside", + "width": 2, + "height": 2, + "debounce": 5, + "diode_direction": "COL2ROW", + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "Z", + "x": 0, + "y": 0 + }, + { + "label": "X", + "x": 1, + "y": 0 + }, + { + "label": "Esc", + "x": 0, + "y": 1 + }, + { + "label": "~", + "x": 1, + "y": 1 + } + ] + }, + }, + "matrix_pins": { + "rows": ["B0", "B1"], + "cols": ["B2", "B3"] + }, + "usb": { + "vid": "0x4642", + "pid": "0x6F21", + "device_ver": "0x0001" + } +} diff --git a/keyboards/frooastboard/keymaps/default/keymap.c b/keyboards/frooastboard/keymaps/default/keymap.c new file mode 100644 index 000000000000..569937d8e211 --- /dev/null +++ b/keyboards/frooastboard/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 frooastside + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Z, KC_X, + LT(1, KC_ESC), KC_TILD), + + [1] = LAYOUT( + KC_F23, KC_F24, + KC_TRNS, TO(2)), + + [2] = LAYOUT( + RGB_TOG, RGB_MOD, + TO(3), TO(0)), + + [3] = LAYOUT( + RGB_HUD, RGB_HUI, + TO(4), TO(2)), + + [4] = LAYOUT( + RGB_SAD, RGB_SAI, + TO(5), TO(3)), + + [5] = LAYOUT( + RGB_VAD, RGB_VAI, + TO(6), TO(4)), + + [6] = LAYOUT( + KC_TRNS, KC_TRNS, + RESET, TO(5)) +}; diff --git a/keyboards/frooastboard/keymaps/safe_mode/keymap.c b/keyboards/frooastboard/keymaps/safe_mode/keymap.c new file mode 100644 index 000000000000..dc040070edd1 --- /dev/null +++ b/keyboards/frooastboard/keymaps/safe_mode/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 frooastside + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Z, KC_X, + TO(1), KC_TILD), + + [1] = LAYOUT( + RGB_TOG, RGB_MOD, + TO(2), TO(0)), + + [2] = LAYOUT( + RGB_HUD, RGB_HUI, + TO(3), TO(1)), + + [3] = LAYOUT( + RGB_SAD, RGB_SAI, + TO(4), TO(2)), + + [4] = LAYOUT( + RGB_VAD, RGB_VAI, + TO(5), TO(3)), + + [5] = LAYOUT( + KC_TRNS, KC_TRNS, + RESET, TO(4)) +}; diff --git a/keyboards/frooastboard/keymaps/via/config.h b/keyboards/frooastboard/keymaps/via/config.h new file mode 100644 index 000000000000..6bd3c6ea37ca --- /dev/null +++ b/keyboards/frooastboard/keymaps/via/config.h @@ -0,0 +1,30 @@ +/* Copyright 2021 frooastside + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE + +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/frooastboard/keymaps/via/keymap.c b/keyboards/frooastboard/keymaps/via/keymap.c new file mode 100644 index 000000000000..028462cded40 --- /dev/null +++ b/keyboards/frooastboard/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2021 frooastside + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Z, KC_X, + LT(1, KC_ESC), KC_TILD), + + [1] = LAYOUT( + KC_F23, KC_F24, + KC_TRNS, RGB_TOG) +}; diff --git a/keyboards/frooastboard/keymaps/via/rules.mk b/keyboards/frooastboard/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/frooastboard/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/frooastboard/readme.md b/keyboards/frooastboard/readme.md new file mode 100644 index 000000000000..d465c3f4b727 --- /dev/null +++ b/keyboards/frooastboard/readme.md @@ -0,0 +1,19 @@ +# Frooastboard + +![Frooastboard](https://i.imgur.com/f26O8JLh.jpg) + +* Keyboard Maintainer: [Frooastside](https://github.com/frooastside) +* Hardware Supported: Frooastboard +* Hardware Availability: https://github.com/Frooastside/Frooastboard + +**Reset Key:** Hold down the key located at `K00`, commonly programmed as ESCAPE while plugging in the keyboard. (If via is used it is the key located at `K10`.) + +Make example for this keyboard (after setting up your build environment): + + make frooastboard:default + +Flashing example for this keyboard: + + make frooastboard: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). diff --git a/keyboards/frooastboard/rules.mk b/keyboards/frooastboard/rules.mk new file mode 100644 index 000000000000..bc035eca04c4 --- /dev/null +++ b/keyboards/frooastboard/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 8392729d7410246ab3228d47df272da5b0c72c99 Mon Sep 17 00:00:00 2001 From: minibois Date: Fri, 13 Aug 2021 20:22:28 +0200 Subject: [PATCH 232/328] [Keyboard] Add the mini_elixivy keyboard (#13960) Co-authored-by: Drashna Jaelre --- keyboards/mini_elixivy/config.h | 108 ++++++++++++++++++ keyboards/mini_elixivy/info.json | 27 +++++ keyboards/mini_elixivy/keymaps/ansi/keymap.c | 66 +++++++++++ keyboards/mini_elixivy/keymaps/ansi/readme.md | 2 + .../mini_elixivy/keymaps/default/keymap.c | 66 +++++++++++ .../mini_elixivy/keymaps/default/readme.md | 2 + keyboards/mini_elixivy/keymaps/iso/keymap.c | 66 +++++++++++ keyboards/mini_elixivy/keymaps/iso/readme.md | 2 + keyboards/mini_elixivy/mini_elixivy.c | 28 +++++ keyboards/mini_elixivy/mini_elixivy.h | 78 +++++++++++++ keyboards/mini_elixivy/readme.md | 24 ++++ keyboards/mini_elixivy/rules.mk | 25 ++++ 12 files changed, 494 insertions(+) create mode 100644 keyboards/mini_elixivy/config.h create mode 100644 keyboards/mini_elixivy/info.json create mode 100644 keyboards/mini_elixivy/keymaps/ansi/keymap.c create mode 100644 keyboards/mini_elixivy/keymaps/ansi/readme.md create mode 100644 keyboards/mini_elixivy/keymaps/default/keymap.c create mode 100644 keyboards/mini_elixivy/keymaps/default/readme.md create mode 100644 keyboards/mini_elixivy/keymaps/iso/keymap.c create mode 100644 keyboards/mini_elixivy/keymaps/iso/readme.md create mode 100644 keyboards/mini_elixivy/mini_elixivy.c create mode 100644 keyboards/mini_elixivy/mini_elixivy.h create mode 100644 keyboards/mini_elixivy/readme.md create mode 100644 keyboards/mini_elixivy/rules.mk diff --git a/keyboards/mini_elixivy/config.h b/keyboards/mini_elixivy/config.h new file mode 100644 index 000000000000..e0853c025106 --- /dev/null +++ b/keyboards/mini_elixivy/config.h @@ -0,0 +1,108 @@ +/* +Copyright 2021 minibois + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER minibois +#define PRODUCT mini_elixivy + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * 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 { B5, B6, E6, F6, C7 } +#define MATRIX_COL_PINS { F7, F5, F4, F1, F0, B7, D0, D1, D2, D3, D4, D6, D7, B4, C6 } +#define ENCODERS_PAD_A { B0 } +#define ENCODERS_PAD_B { D5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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 + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file diff --git a/keyboards/mini_elixivy/info.json b/keyboards/mini_elixivy/info.json new file mode 100644 index 000000000000..7f452a9b781a --- /dev/null +++ b/keyboards/mini_elixivy/info.json @@ -0,0 +1,27 @@ +{ + "keyboard_name": "mini_elixivy", + "url": "https://github.com/minibois/elixivy", + "maintainer": "minibois", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_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":"Dash", "x":11, "y":0},{"label":"Equals", "x":12, "y":0},{"label":"Backspace", "x":13, "y":0, "w":2.00},{"label":"PrintScr", "x":15, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.5},{"label":"Q", "x":1.5, "y":0},{"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":"BackSlash", "x":13.5, "y":1, "w":1.5},{"label":"Del", "x":15, "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":"Enter", "x":12.75, "y":2, "w":2.25},{"label":"Ins", "x":15, "y":2}, + {"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":"Up", "x":14, "y":3},{"label":"F5", "x":15, "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.50, "y":4, "w":1.25},{"label":"", "x":3.75, "y":4, "w":6.25},{"label":"Alt", "x":10, "y":4},{"label":"Fn", "x":11, "y":4},{"label":"Ctrl", "x":12, "y":4},{"label":"Left", "x":13, "y":4},{"label":"Down", "x":14, "y":4},{"label":"Right", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso": { + "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":"Dash", "x":11, "y":0},{"label":"Equals", "x":12, "y":0},{"label":"Backspace", "x":13, "y":0, "w":2.00},{"label":"PrintScr", "x":15, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.5},{"label":"Q", "x":1.5, "y":0},{"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":"Enter", "x":13.5, "y":1, "w":1.5, "h":2},{"label":"Del", "x":15, "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":"BackSlash", "x":12.75, "y":2},{"label":"Ins", "x":15, "y":2}, + {"label":"Shift", "x":0, "y":3, "w":1.75},{"label":"BackSlash", "x":1.75, "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":"Up", "x":14, "y":3},{"label":"F5", "x":15, "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.50, "y":4, "w":1.25},{"label":"", "x":3.75, "y":4, "w":6.25},{"label":"Alt", "x":10, "y":4},{"label":"Fn", "x":11, "y":4},{"label":"Ctrl", "x":12, "y":4},{"label":"Left", "x":13, "y":4},{"label":"Down", "x":14, "y":4},{"label":"Right", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/mini_elixivy/keymaps/ansi/keymap.c b/keyboards/mini_elixivy/keymaps/ansi/keymap.c new file mode 100644 index 000000000000..84328ebc4b04 --- /dev/null +++ b/keyboards/mini_elixivy/keymaps/ansi/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 minibois + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BASE: (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Mute| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Prts| + * |----------------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Enter |Del | + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|‘ ~ | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt|FN |Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + [_BASE] = LAYOUT_65_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_PSCR, + 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_DEL, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_GRAVE, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap _FN: Function Layer + * ,----------------------------------------------------------------. + * | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | |PgUp| + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | |PgDn| + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | |Ins | + * |----------------------------------------------------------------| + * | | | | | | | | | | | + * `----------------------------------------------------------------' + */ + [_FN] = LAYOUT_65_ansi( + _______, 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_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/mini_elixivy/keymaps/ansi/readme.md b/keyboards/mini_elixivy/keymaps/ansi/readme.md new file mode 100644 index 000000000000..021d2891b3d3 --- /dev/null +++ b/keyboards/mini_elixivy/keymaps/ansi/readme.md @@ -0,0 +1,2 @@ +# The ANSI keymap for mini_elixivy +This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. \ No newline at end of file diff --git a/keyboards/mini_elixivy/keymaps/default/keymap.c b/keyboards/mini_elixivy/keymaps/default/keymap.c new file mode 100644 index 000000000000..680a57e4fa4a --- /dev/null +++ b/keyboards/mini_elixivy/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 minibois + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BASE: (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Mute| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Prts| + * |----------------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Enter |Del | + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|‘ ~ | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt|FN |Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + [_BASE] = LAYOUT_65_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_PSCR, + 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_DEL, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_GRAVE, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap _FN: Function Layer + * ,----------------------------------------------------------------. + * | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | + * `----------------------------------------------------------------' + */ + [_FN] = LAYOUT_65_ansi( + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/mini_elixivy/keymaps/default/readme.md b/keyboards/mini_elixivy/keymaps/default/readme.md new file mode 100644 index 000000000000..717b2c30ae93 --- /dev/null +++ b/keyboards/mini_elixivy/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The default keymap for mini_elixivy +This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. \ No newline at end of file diff --git a/keyboards/mini_elixivy/keymaps/iso/keymap.c b/keyboards/mini_elixivy/keymaps/iso/keymap.c new file mode 100644 index 000000000000..c595e6b0a585 --- /dev/null +++ b/keyboards/mini_elixivy/keymaps/iso/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 minibois + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BASE: (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Mute| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |Prts| + * |------------------------------------------------------Enter-----| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| \| |Del | + * |----------------------------------------------------------------| + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | Up|‘ ~ | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt|FN |Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + [_BASE] = LAYOUT_65_iso( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_ENT, KC_PSCR, + 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_BSLS, KC_DEL, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_GRAVE, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap _FN: Function Layer + * ,----------------------------------------------------------------. + * | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | |PgUp| + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | |PgDn| + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | |Ins | + * |----------------------------------------------------------------| + * | | | | | | | | | | | + * `----------------------------------------------------------------' + */ + [_FN] = LAYOUT_65_iso( + _______, 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_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/mini_elixivy/keymaps/iso/readme.md b/keyboards/mini_elixivy/keymaps/iso/readme.md new file mode 100644 index 000000000000..d67bd323284b --- /dev/null +++ b/keyboards/mini_elixivy/keymaps/iso/readme.md @@ -0,0 +1,2 @@ +# The ISO keymap for mini_elixivy +This is an ISO keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. \ No newline at end of file diff --git a/keyboards/mini_elixivy/mini_elixivy.c b/keyboards/mini_elixivy/mini_elixivy.c new file mode 100644 index 000000000000..a8d9c931c2e2 --- /dev/null +++ b/keyboards/mini_elixivy/mini_elixivy.c @@ -0,0 +1,28 @@ +/* Copyright 2021 minibois + * + * 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 "mini_elixivy.h" + +/* Rotary Encoder's function (currently volume up/down) */ +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return true; +} diff --git a/keyboards/mini_elixivy/mini_elixivy.h b/keyboards/mini_elixivy/mini_elixivy.h new file mode 100644 index 000000000000..154a1d74e9c6 --- /dev/null +++ b/keyboards/mini_elixivy/mini_elixivy.h @@ -0,0 +1,78 @@ +/* Copyright 2021 minibois + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +// Easier reading of layouts +#define ___ KC_NO + +/* ANSI + * ,-------------------------------------------------------------. + * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |0c | 0d|0e | + * |-------------------------------------------------------------| + * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1a |1b |1c | 1d|1e | + * |-------------------------------------------------------------| + * |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b |2c ||2e | + * |-------------------------------------------------------------| + * |30 ||32 |33 |34 |35 |36 |37 |38 |39 |3a |3b |3b |3c | + * |-------------------------------------------------------------| + * |40 |41 |42 | 46 |49 |4a |4b |4c |4d |4e | + * `-------------------------------------------------------------' +*/ +#define LAYOUT_65_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e , \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e , \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e , \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e , \ + k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, ___, k2e }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e } \ +} + +/* ISO + * ,-------------------------------------------------------------. + * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |0c | 0d|0e | + * |-------------------------------------------------------------| + * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1a |1b |1c | |1e | + * |-----------------------------------------------------| 1d|---| + * |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b |2c | |2e | + * |-------------------------------------------------------------| + * |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |3a |3b |3b |3c | + * |-------------------------------------------------------------| + * |40 |41 |42 | 46 |49 |4a |4b |4c |4d |4e | + * `-------------------------------------------------------------' +*/ +#define LAYOUT_65_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e , \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e , \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e , \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e , \ + k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, ___, k2e }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e } \ +} diff --git a/keyboards/mini_elixivy/readme.md b/keyboards/mini_elixivy/readme.md new file mode 100644 index 000000000000..6047a173465b --- /dev/null +++ b/keyboards/mini_elixivy/readme.md @@ -0,0 +1,24 @@ +# mini_elixivy + +![mini_eLiXiVy](https://imgur.com/0lmOFcF.jpg) + +A 65% ANSI/ISO keyboard PCB, with a rotary encoder option + +* Keyboard Maintainer: [minibois](https://github.com/minibois) +* Hardware Supported: mini_eLiXiVy PCB, KBDFans' 65% plate and case, PCB mount stabilizers +* Hardware Availability: PCB: https://github.com/minibois, BOM: https://octopart.com/bom-tool/allQRgda + +Make example for this keyboard (after setting up your build environment): + + make mini_elixivy:default + +Flashing example for this keyboard: + + make mini_elixivy: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: +* **Physical reset button**: Briefly press the button on the back of the PCB (or short the reset/ground pads, should a tactile button not be installed) \ No newline at end of file diff --git a/keyboards/mini_elixivy/rules.mk b/keyboards/mini_elixivy/rules.mk new file mode 100644 index 000000000000..1ee18fe88845 --- /dev/null +++ b/keyboards/mini_elixivy/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes + +LAYOUTS = 65_ansi 65_iso From f00e56eb0b4e8ab220d52a30f89f3a9213d431fa Mon Sep 17 00:00:00 2001 From: Logan Butler <8854426+MatchstickWorks@users.noreply.github.com> Date: Fri, 13 Aug 2021 11:29:59 -0700 Subject: [PATCH 233/328] [Keyboard] Add Southpad Keyboard (#13964) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/matchstickworks/southpad/config.h | 100 ++++++++++++++++++ keyboards/matchstickworks/southpad/info.json | 34 ++++++ .../southpad/keymaps/default/keymap.c | 27 +++++ keyboards/matchstickworks/southpad/readme.md | 23 ++++ keyboards/matchstickworks/southpad/rules.mk | 22 ++++ keyboards/matchstickworks/southpad/southpad.c | 16 +++ keyboards/matchstickworks/southpad/southpad.h | 44 ++++++++ 7 files changed, 266 insertions(+) create mode 100644 keyboards/matchstickworks/southpad/config.h create mode 100644 keyboards/matchstickworks/southpad/info.json create mode 100644 keyboards/matchstickworks/southpad/keymaps/default/keymap.c create mode 100644 keyboards/matchstickworks/southpad/readme.md create mode 100644 keyboards/matchstickworks/southpad/rules.mk create mode 100644 keyboards/matchstickworks/southpad/southpad.c create mode 100644 keyboards/matchstickworks/southpad/southpad.h diff --git a/keyboards/matchstickworks/southpad/config.h b/keyboards/matchstickworks/southpad/config.h new file mode 100644 index 000000000000..247084a862b0 --- /dev/null +++ b/keyboards/matchstickworks/southpad/config.h @@ -0,0 +1,100 @@ +/* +Copyright 2021 Logan Butler + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MatchstickWorks +#define PRODUCT SouthPad + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* + * 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 { B3, B5, B6, B7, C7, C6 } +#define MATRIX_COL_PINS { B0, B1, B2, B4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + + +/* 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 + + +/* + * 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 +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/matchstickworks/southpad/info.json b/keyboards/matchstickworks/southpad/info.json new file mode 100644 index 000000000000..a2a509fce3be --- /dev/null +++ b/keyboards/matchstickworks/southpad/info.json @@ -0,0 +1,34 @@ +{ + "keyboard_name": "SouthPad", + "url": "", + "maintainer": "MatchstickWorks", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (B3,B0)", "x":0, "y":0}, + {"label":"K01 (B3,B1)", "x":1, "y":0}, + {"label":"K02 (B3,B2)", "x":2, "y":0}, + {"label":"K03 (B3,B4)", "x":3, "y":0}, + {"label":"K10 (B5,B0)", "x":0, "y":1}, + {"label":"K11 (B5,B1)", "x":1, "y":1}, + {"label":"K12 (B5,B2)", "x":2, "y":1}, + {"label":"K13 (B5,B4)", "x":3, "y":1}, + {"label":"K30 (B7,B0)", "x":0, "y":2, "h":2}, + {"label":"K21 (B6,B1)", "x":1, "y":2}, + {"label":"K22 (B6,B2)", "x":2, "y":2}, + {"label":"K23 (B6,B4)", "x":3, "y":2}, + {"label":"K31 (B7,B1)", "x":1, "y":3}, + {"label":"K32 (B7,B2)", "x":2, "y":3}, + {"label":"K33 (B7,B4)", "x":3, "y":3}, + {"label":"K50 (C6,B0)", "x":0, "y":4, "h":2}, + {"label":"K41 (C7,B1)", "x":1, "y":4}, + {"label":"K42 (C7,B2)", "x":2, "y":4}, + {"label":"K43 (C7,B4)", "x":3, "y":4}, + {"label":"K51 (C6,B1)", "x":1, "y":5}, + {"label":"K53 (C6,B4)", "x":2, "y":5, "w":2} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/matchstickworks/southpad/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/keymaps/default/keymap.c new file mode 100644 index 000000000000..0d196551a352 --- /dev/null +++ b/keyboards/matchstickworks/southpad/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2021 Logan Butler + * + * 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_numpad_6x4_southpaw( /* Base */ + KC_BSPC, KC_EQL, KC_LPRN, KC_RPRN, + KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, + KC_P9, KC_P8, KC_P7, + KC_PPLS, KC_P6, KC_P5, KC_P4, + KC_P3, KC_P2, KC_P1, + KC_PENT, KC_PDOT, KC_P0 + ), +}; diff --git a/keyboards/matchstickworks/southpad/readme.md b/keyboards/matchstickworks/southpad/readme.md new file mode 100644 index 000000000000..8c8007c2e777 --- /dev/null +++ b/keyboards/matchstickworks/southpad/readme.md @@ -0,0 +1,23 @@ +# SouthPad + +![Southpad](https://i.imgur.com/Wl71thnh.jpg) + +This is a left-handed (or mirrored) numberpad with USB-C connections. + +Default layout is such: + +![SouthPad Layout](https://i.imgur.com/jc7T2jl.jpg) + +* Keyboard Maintainer: [Logan Butler](https://github.com/MatchstickWorks) +* Hardware Supported: SouthPad PCB +* Hardware Availability: Either via [my Etsy Store](https://www.etsy.com/shop/MatchstickWorksShop) or by messaging directly + +Getting the board into bootloader mode: + +In order to flash the firmware to this board, simply press the Reset button on the back of the PCB. You should head a USB disconnect and reconnect sound shortly following. + +Make example for this keyboard (after setting up your build environment): + + make matchstickworks/southpad:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/matchstickworks/southpad/rules.mk b/keyboards/matchstickworks/southpad/rules.mk new file mode 100644 index 000000000000..2641e3d339f7 --- /dev/null +++ b/keyboards/matchstickworks/southpad/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = bootloadHID + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/matchstickworks/southpad/southpad.c b/keyboards/matchstickworks/southpad/southpad.c new file mode 100644 index 000000000000..52c9c1e6b1e1 --- /dev/null +++ b/keyboards/matchstickworks/southpad/southpad.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Logan Butler + * + * 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 "southpad.h" diff --git a/keyboards/matchstickworks/southpad/southpad.h b/keyboards/matchstickworks/southpad/southpad.h new file mode 100644 index 000000000000..0847c680d701 --- /dev/null +++ b/keyboards/matchstickworks/southpad/southpad.h @@ -0,0 +1,44 @@ +/* Copyright 2021 Logan Butler + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_numpad_6x4_southpaw( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k21, k22, k23, \ + k20, k31, k32, k33, \ + k41, k42, k43, \ + k40, k51, k53 \ +) \ +{ \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, k23 }, \ + { KC_NO, k31, k32, k33 }, \ + { k40, k41, k42, k43 }, \ + { KC_NO, k51, KC_NO, k53 } \ +} + From 2c9957eb7e6e8085226293e8ff60846587b937b9 Mon Sep 17 00:00:00 2001 From: Dao Tak Isaac Date: Sat, 14 Aug 2021 01:30:43 +0700 Subject: [PATCH 234/328] [Keyboard] Add dtisaac01 keyboard (#13967) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/handwired/dtisaac01/config.h | 95 +++++++++++++++++ keyboards/handwired/dtisaac01/dtisaac01.c | 17 +++ keyboards/handwired/dtisaac01/dtisaac01.h | 49 +++++++++ keyboards/handwired/dtisaac01/info.json | 100 ++++++++++++++++++ .../dtisaac01/keymaps/default/keymap.c | 47 ++++++++ .../dtisaac01/keymaps/default/readme.md | 1 + keyboards/handwired/dtisaac01/readme.md | 19 ++++ keyboards/handwired/dtisaac01/rules.mk | 22 ++++ 8 files changed, 350 insertions(+) create mode 100644 keyboards/handwired/dtisaac01/config.h create mode 100644 keyboards/handwired/dtisaac01/dtisaac01.c create mode 100644 keyboards/handwired/dtisaac01/dtisaac01.h create mode 100644 keyboards/handwired/dtisaac01/info.json create mode 100644 keyboards/handwired/dtisaac01/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dtisaac01/keymaps/default/readme.md create mode 100644 keyboards/handwired/dtisaac01/readme.md create mode 100644 keyboards/handwired/dtisaac01/rules.mk diff --git a/keyboards/handwired/dtisaac01/config.h b/keyboards/handwired/dtisaac01/config.h new file mode 100644 index 000000000000..f417d644998b --- /dev/null +++ b/keyboards/handwired/dtisaac01/config.h @@ -0,0 +1,95 @@ +/* +Copyright 2021 DTIsaac + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4454 +#define PRODUCT_ID 0x4973 +#define DEVICE_VER 0x0001 +#define MANUFACTURER DTIsaac +#define PRODUCT dtisaac01 + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 9 + +/* + * 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 { F7, F6, F5, F4, F1, B4, D2, B2, B1, B3, D4, D6 } +#define MATRIX_COL_PINS { C7, C6, D0, B5, F0, D7, B0, B7, D1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +#define LED_CAPS_LOCK_PIN D3 +#define LED_SCROLL_LOCK_PIN D5 +#define LED_PIN_ON_STATE 0 + + +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + + +/* + * 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 these deprecated features by default */ +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/handwired/dtisaac01/dtisaac01.c b/keyboards/handwired/dtisaac01/dtisaac01.c new file mode 100644 index 000000000000..b11920280f94 --- /dev/null +++ b/keyboards/handwired/dtisaac01/dtisaac01.c @@ -0,0 +1,17 @@ +/* Copyright 2021 DTIsaac + * + * 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 "dtisaac01.h" diff --git a/keyboards/handwired/dtisaac01/dtisaac01.h b/keyboards/handwired/dtisaac01/dtisaac01.h new file mode 100644 index 000000000000..e017c6570055 --- /dev/null +++ b/keyboards/handwired/dtisaac01/dtisaac01.h @@ -0,0 +1,49 @@ +/* Copyright 2021 DTIsaac + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K058, K061, K062, K063, K064, K065, K066, \ + K010, K011, K012, K013, K014, K015, K016, K017, K018, K068, K060, K071, K072, K073, K074, K075, K076, \ + K020, K021, K022, K023, K024, K025, K026, K027, K028, K078, K070, K081, K082, K083, K084, K085, K086, \ + K030, K031, K032, K033, K034, K035, K036, K037, K038, K088, K080, K091, K093, \ + K040, K042, K043, K044, K045, K046, K047, K048, K098, K090, K101, K103, K105, \ + K050, K051, K052, K056, K100, K111, K112, K113, K114, K115, K116 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \ + { K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \ + { K040, KC_NO, K042, K043, K044, K045, K046, K047, K048 }, \ + { K050, K051, K052, KC_NO, KC_NO, KC_NO, K056, KC_NO, K058 }, \ + { K060, K061, K062, K063, K064, K065, K066, KC_NO, K068 }, \ + { K070, K071, K072, K073, K074, K075, K076, KC_NO, K078 }, \ + { K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \ + { K090, K091, KC_NO, K093, KC_NO, KC_NO, KC_NO, KC_NO, K098 }, \ + { K100, K101, KC_NO, K103, KC_NO, K105, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, K111, K112, K113, K114, K115, K116, KC_NO, KC_NO } \ +} diff --git a/keyboards/handwired/dtisaac01/info.json b/keyboards/handwired/dtisaac01/info.json new file mode 100644 index 000000000000..76681389afed --- /dev/null +++ b/keyboards/handwired/dtisaac01/info.json @@ -0,0 +1,100 @@ +{ + "keyboard_name": "dtisaac01", + "url": "", + "maintainer": "DTIsaac", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K000", "x":0, "y":0}, + {"label":"K001", "x":2, "y":0}, + {"label":"K002", "x":3, "y":0}, + {"label":"K003", "x":4, "y":0}, + {"label":"K004", "x":5, "y":0}, + {"label":"K005", "x":6.5, "y":0}, + {"label":"K006", "x":7.5, "y":0}, + {"label":"K007", "x":8.5, "y":0}, + {"label":"K008", "x":9.5, "y":0}, + {"label":"K058", "x":11, "y":0}, + {"label":"K061", "x":12, "y":0}, + {"label":"K062", "x":13, "y":0}, + {"label":"K063", "x":14, "y":0}, + {"label":"K064", "x":15.25, "y":0}, + {"label":"K065", "x":16.25, "y":0}, + {"label":"K066", "x":17.25, "y":0}, + {"label":"K010", "x":0, "y":1.5}, + {"label":"K011", "x":1, "y":1.5}, + {"label":"K012", "x":2, "y":1.5}, + {"label":"K013", "x":3, "y":1.5}, + {"label":"K014", "x":4, "y":1.5}, + {"label":"K015", "x":5, "y":1.5}, + {"label":"K016", "x":6, "y":1.5}, + {"label":"K017", "x":7, "y":1.5}, + {"label":"K018", "x":8, "y":1.5}, + {"label":"K068", "x":9, "y":1.5}, + {"label":"K060", "x":10, "y":1.5}, + {"label":"K071", "x":11, "y":1.5}, + {"label":"K072", "x":12, "y":1.5}, + {"label":"K073", "x":13, "y":1.5, "w":2}, + {"label":"K074", "x":15.25, "y":1.5}, + {"label":"K075", "x":16.25, "y":1.5}, + {"label":"K076", "x":17.25, "y":1.5}, + {"label":"K020", "x":0, "y":2.5, "w":1.5}, + {"label":"K021", "x":1.5, "y":2.5}, + {"label":"K022", "x":2.5, "y":2.5}, + {"label":"K023", "x":3.5, "y":2.5}, + {"label":"K024", "x":4.5, "y":2.5}, + {"label":"K025", "x":5.5, "y":2.5}, + {"label":"K026", "x":6.5, "y":2.5}, + {"label":"K027", "x":7.5, "y":2.5}, + {"label":"K028", "x":8.5, "y":2.5}, + {"label":"K078", "x":9.5, "y":2.5}, + {"label":"K070", "x":10.5, "y":2.5}, + {"label":"K081", "x":11.5, "y":2.5}, + {"label":"K082", "x":12.5, "y":2.5}, + {"label":"K083", "x":13.5, "y":2.5, "w":1.5}, + {"label":"K084", "x":15.25, "y":2.5}, + {"label":"K085", "x":16.25, "y":2.5}, + {"label":"K086", "x":17.25, "y":2.5}, + {"label":"K030", "x":0, "y":3.5, "w":1.75}, + {"label":"K031", "x":1.75, "y":3.5}, + {"label":"K032", "x":2.75, "y":3.5}, + {"label":"K033", "x":3.75, "y":3.5}, + {"label":"K034", "x":4.75, "y":3.5}, + {"label":"K035", "x":5.75, "y":3.5}, + {"label":"K036", "x":6.75, "y":3.5}, + {"label":"K037", "x":7.75, "y":3.5}, + {"label":"K038", "x":8.75, "y":3.5}, + {"label":"K088", "x":9.75, "y":3.5}, + {"label":"K080", "x":10.75, "y":3.5}, + {"label":"K091", "x":11.75, "y":3.5}, + {"label":"K093", "x":12.75, "y":3.5, "w":2.25}, + {"label":"K040", "x":0, "y":4.5, "w":2.25}, + {"label":"K042", "x":2.25, "y":4.5}, + {"label":"K043", "x":3.25, "y":4.5}, + {"label":"K044", "x":4.25, "y":4.5}, + {"label":"K045", "x":5.25, "y":4.5}, + {"label":"K046", "x":6.25, "y":4.5}, + {"label":"K047", "x":7.25, "y":4.5}, + {"label":"K048", "x":8.25, "y":4.5}, + {"label":"K098", "x":9.25, "y":4.5}, + {"label":"K090", "x":10.25, "y":4.5}, + {"label":"K101", "x":11.25, "y":4.5}, + {"label":"K103", "x":12.25, "y":4.5, "w":2.75}, + {"label":"K105", "x":16.25, "y":4.5}, + {"label":"K050", "x":0, "y":5.5, "w":1.25}, + {"label":"K051", "x":1.25, "y":5.5, "w":1.25}, + {"label":"K052", "x":2.5, "y":5.5, "w":1.25}, + {"label":"K056", "x":3.75, "y":5.5, "w":6.25}, + {"label":"K100", "x":10, "y":5.5, "w":1.25}, + {"label":"K111", "x":11.25, "y":5.5, "w":1.25}, + {"label":"K112", "x":12.5, "y":5.5, "w":1.25}, + {"label":"K113", "x":13.75, "y":5.5, "w":1.25} + {"label":"K114", "x":15.25, "y":5.5}, + {"label":"K115", "x":16.25, "y":5.5}, + {"label":"K116", "x":17.25, "y":5.5}, + ] + } + } +} diff --git a/keyboards/handwired/dtisaac01/keymaps/default/keymap.c b/keyboards/handwired/dtisaac01/keymaps/default/keymap.c new file mode 100644 index 000000000000..15d0f2374a26 --- /dev/null +++ b/keyboards/handwired/dtisaac01/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 DTIsaac + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_NO), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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/handwired/dtisaac01/keymaps/default/readme.md b/keyboards/handwired/dtisaac01/keymaps/default/readme.md new file mode 100644 index 000000000000..0407ae2339fe --- /dev/null +++ b/keyboards/handwired/dtisaac01/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for dtisaac01 diff --git a/keyboards/handwired/dtisaac01/readme.md b/keyboards/handwired/dtisaac01/readme.md new file mode 100644 index 000000000000..bf37c4dd2e5f --- /dev/null +++ b/keyboards/handwired/dtisaac01/readme.md @@ -0,0 +1,19 @@ +# dtisaac01 + +![dtisaac01](https://i.imgur.com/BoKW4uEh.jpg) + +A 87 percent keyboard DTIsaac01 version + +* Keyboard Maintainer: [DTIsaac](https://github.com/daotakisaac) +* Hardware Supported: dtisaac01-atmega32U4 +* Hardware Availability: dtisaac01-atmega32U4 + +Make example for this keyboard (after setting up your build environment): + + make dtisaac01:default + +Flashing example for this keyboard: + + make dtisaac01: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). diff --git a/keyboards/handwired/dtisaac01/rules.mk b/keyboards/handwired/dtisaac01/rules.mk new file mode 100644 index 000000000000..41fd30dec69d --- /dev/null +++ b/keyboards/handwired/dtisaac01/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 670603590ed1f4f1563a74b80ff13ce5f8cd3a48 Mon Sep 17 00:00:00 2001 From: Path Nirvana Date: Sat, 14 Aug 2021 01:31:12 +0700 Subject: [PATCH 235/328] [Keymap] adding new keymap for the idobo keyboard with backlight (#13969) --- keyboards/idobo/keymaps/pathnirvana/config.h | 24 +++++++++++ keyboards/idobo/keymaps/pathnirvana/keymap.c | 44 ++++++++++++++++++++ keyboards/idobo/keymaps/pathnirvana/rules.mk | 3 ++ 3 files changed, 71 insertions(+) create mode 100644 keyboards/idobo/keymaps/pathnirvana/config.h create mode 100644 keyboards/idobo/keymaps/pathnirvana/keymap.c create mode 100644 keyboards/idobo/keymaps/pathnirvana/rules.mk diff --git a/keyboards/idobo/keymaps/pathnirvana/config.h b/keyboards/idobo/keymaps/pathnirvana/config.h new file mode 100644 index 000000000000..dd95794254a4 --- /dev/null +++ b/keyboards/idobo/keymaps/pathnirvana/config.h @@ -0,0 +1,24 @@ +/* Copyright 2021 PathNirvana + * + * 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 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#undef DEBOUNCE +#define DEBOUNCE 40 + +#undef BACKLIGHT_LEVELS +#define BACKLIGHT_LEVELS 6 diff --git a/keyboards/idobo/keymaps/pathnirvana/keymap.c b/keyboards/idobo/keymaps/pathnirvana/keymap.c new file mode 100644 index 000000000000..ea6831d6daef --- /dev/null +++ b/keyboards/idobo/keymaps/pathnirvana/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2021 pathnirvana (pathnirvana@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x15( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F5, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_QUOT, + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_PGUP, KC_DEL, KC_PGDN, KC_M, KC_N, KC_E, KC_I, KC_O, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_HOME, KC_UP, KC_END, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_NO, + KC_LCTL, KC_MS_BTN3, KC_LALT, LT(2,KC_F2), KC_SPC, LSFT_T(KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT, LT(3,KC_DEL), RSFT_T(KC_BSPC), LALT(KC_LSFT), KC_NO, DF(1), KC_ENT), + [1] = LAYOUT_ortho_5x15( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_PGUP, KC_DEL, KC_PGDN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_HOME, KC_UP, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, LT(2,KC_F2), KC_SPC, LSFT_T(KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT, LT(3,KC_DEL), RSFT_T(KC_BSPC), LALT(KC_LSFT), KC_NO, DF(0), KC_ENT), + [2] = LAYOUT_ortho_5x15( + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MUTE, KC_VOLD, KC_VOLU, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_MSEL, BL_BRTG, RGB_HUD, RGB_HUI, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_UP), LSFT(KC_RGHT), KC_NO, KC_NO, + KC_SLEP, BL_STEP, RGB_SAD, RGB_SAI, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, RESET, + KC_NO, BL_TOGG, RGB_VAD, RGB_VAI, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NO, LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_UP), LCTL(KC_RGHT), KC_NO, KC_NO, + KC_NO, RGB_TOG, RGB_RMOD, RGB_MOD, KC_NO, KC_NO, KC_WBAK, KC_NO, KC_WFWD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + [3] = LAYOUT_ortho_5x15( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TILD, KC_UNDS, KC_PLUS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_NO, + KC_NO, KC_QUOT, KC_BSLS, KC_LCBR, KC_LBRC, KC_LT, KC_NO, KC_NO, KC_NO, KC_GT, KC_RBRC, KC_RCBR, KC_PIPE, KC_DQUO, KC_NO, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), +}; diff --git a/keyboards/idobo/keymaps/pathnirvana/rules.mk b/keyboards/idobo/keymaps/pathnirvana/rules.mk new file mode 100644 index 000000000000..6bfd2bac6af7 --- /dev/null +++ b/keyboards/idobo/keymaps/pathnirvana/rules.mk @@ -0,0 +1,3 @@ +BACKLIGHT_ENABLE = yes +DEBOUNCE_TYPE = sym_eager_pk +MOUSEKEY_ENABLE = yes From 325009587a289fba3e554a6d56e2d5fedbe8fbb5 Mon Sep 17 00:00:00 2001 From: 8bits4ever <87928173+8bits4ever@users.noreply.github.com> Date: Fri, 13 Aug 2021 20:40:50 +0200 Subject: [PATCH 236/328] [converter/a1200] Added support for ATmega32u4 (#13974) --- keyboards/converter/a1200/miss1200/config.h | 62 +++++++++++++++++++ keyboards/converter/a1200/miss1200/rules.mk | 22 +++++++ keyboards/converter/a1200/readme.md | 32 ++++++++-- .../converter/a1200/{ => teensy2pp}/config.h | 0 .../converter/a1200/{ => teensy2pp}/rules.mk | 0 5 files changed, 110 insertions(+), 6 deletions(-) create mode 100644 keyboards/converter/a1200/miss1200/config.h create mode 100644 keyboards/converter/a1200/miss1200/rules.mk rename keyboards/converter/a1200/{ => teensy2pp}/config.h (100%) rename keyboards/converter/a1200/{ => teensy2pp}/rules.mk (100%) diff --git a/keyboards/converter/a1200/miss1200/config.h b/keyboards/converter/a1200/miss1200/config.h new file mode 100644 index 000000000000..5a6c679651a7 --- /dev/null +++ b/keyboards/converter/a1200/miss1200/config.h @@ -0,0 +1,62 @@ +/* +Copyright 2021 8bits4ever + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFFFF +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 8bits4ever +#define PRODUCT MiSS-1200 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +/* + * 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 { F7, F6, F5, F4, F1, F0, B1, B3 } +#define MATRIX_COL_PINS { D0, D1, C7, D6, B7, B6, B5, B4, E6, D7, C6, D4, B2, D5, D3, D2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +#define LED_CAPS_LOCK_PIN B0 +#define LED_PIN_ON_STATE 0 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/converter/a1200/miss1200/rules.mk b/keyboards/converter/a1200/miss1200/rules.mk new file mode 100644 index 000000000000..aa06ad50ad04 --- /dev/null +++ b/keyboards/converter/a1200/miss1200/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/converter/a1200/readme.md b/keyboards/converter/a1200/readme.md index 927e0805f731..96c36b6207aa 100644 --- a/keyboards/converter/a1200/readme.md +++ b/keyboards/converter/a1200/readme.md @@ -1,13 +1,16 @@ # Amiga 1200 Keyboard Converter Modification of the Model-M 101 membrane adapter (converter/modelm101) to work with Amiga 1200 keyboard (and possibly Amiga 500/600 too). +The adapter allows using the original Amiga keyboard as a USB input device, either with a desktop PC or a R-Pi/FPGA board hosted inside the Amiga case. -A small PCB adapter is needed for connecting the keyboard membrane to the Teensy 2.0++ board. A very simple example of such a board can be seen here: +Available for two micros: AT90USB1286 (Teensy 2++ board), and ATmega32u4 (MiSS-1200 FPGA board). + +A small PCB adapter is needed for connecting the keyboard membrane to the Teensy 2.0++ board. A very simple example of such a board is available here: https://github.com/8bits4ever/A1200-Keyboard-Adapter -This adapter is meant to allow using the original Amiga keyboard as a USB input device, either with a desktop PC or a R-Pi/FPGA board hosted inside the Amiga case. +The MiSS-1200 FPGA board features a dedicated connector for the Amiga 1200 membrane keyboard. -Files have been modified in accordance to fit Amiga keyboard layout and features. A second layer has been implemented (momentary toggle "Help" key) to access unexistent keys (like F11 and F12). This is a work in progress. +Files have been modified in accordance to the Amiga keyboard layout and features. A second layer has been implemented (momentary toggle "Help" key) to access unexistent keys (like F11 and F12). This is a work in progress. Pins of the Teensy board you should use by default: @@ -22,14 +25,31 @@ Status LEDs: CapsLock +5V Pins: B6 5V ``` +Pins assignment MiSS-1200 board (ATmega32u4): +``` +Columns: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +Pins: D0 D1 C7 D6 B7 B6 B5 B4 E6 D7 C6 D4 B2 D5 D3 D2 +-------------------------------------------------------- +Rows: 1 2 3 4 5 6 7 8 +Pins: F7 F6 F5 F4 F1 F0 B1 B3 +-------------------------------------------------------- +Status LEDs: CapsLock +5V +Pins: B0 5V +``` + * Keyboard Maintainer: [8bits4ever](https://github.com/8bits4ever) -* Hardware Supported: Teensy 2.0++ board by PJRC +* Hardware Supported: Teensy 2.0++ board by PJRC, MiSS-1200 FPGA by 8bits4ever * Hardware Availability: https://www.pjrc.com/store/teensypp.html -For first time flashing use the reset button on the Teensy board enter in bootloader mode. Once the board is flashed you can use "HELP"+"R" on the Amiga keyboard for the same purpose. +For first time flashing use the reset button to enter in bootloader mode. Once the board is flashed you can use "HELP"+"R" on the Amiga keyboard for reflashing. Make example for this keyboard (after setting up your build environment): - make converter/a1200:default + make converter/a1200/teensy2pp:default + +Or: + + make converter/a1200/miss1200:default + See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/converter/a1200/config.h b/keyboards/converter/a1200/teensy2pp/config.h similarity index 100% rename from keyboards/converter/a1200/config.h rename to keyboards/converter/a1200/teensy2pp/config.h diff --git a/keyboards/converter/a1200/rules.mk b/keyboards/converter/a1200/teensy2pp/rules.mk similarity index 100% rename from keyboards/converter/a1200/rules.mk rename to keyboards/converter/a1200/teensy2pp/rules.mk From d52e9321e9c6d64732f716561f3250d99a28ba82 Mon Sep 17 00:00:00 2001 From: fire-h0und <55053506+fire-h0und@users.noreply.github.com> Date: Fri, 13 Aug 2021 20:46:29 +0200 Subject: [PATCH 237/328] [Keyboard] Add cest73/tkm keyboard (#13939) Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: cest --- keyboards/cest73/tkm/config.h | 55 ++++++++ keyboards/cest73/tkm/info.json | 122 ++++++++++++++++++ keyboards/cest73/tkm/keymaps/default/keymap.c | 79 ++++++++++++ keyboards/cest73/tkm/readme.md | 22 ++++ keyboards/cest73/tkm/rules.mk | 22 ++++ keyboards/cest73/tkm/tkm.c | 16 +++ keyboards/cest73/tkm/tkm.h | 66 ++++++++++ 7 files changed, 382 insertions(+) create mode 100644 keyboards/cest73/tkm/config.h create mode 100644 keyboards/cest73/tkm/info.json create mode 100644 keyboards/cest73/tkm/keymaps/default/keymap.c create mode 100644 keyboards/cest73/tkm/readme.md create mode 100644 keyboards/cest73/tkm/rules.mk create mode 100644 keyboards/cest73/tkm/tkm.c create mode 100644 keyboards/cest73/tkm/tkm.h diff --git a/keyboards/cest73/tkm/config.h b/keyboards/cest73/tkm/config.h new file mode 100644 index 000000000000..deef979b2c48 --- /dev/null +++ b/keyboards/cest73/tkm/config.h @@ -0,0 +1,55 @@ + /* Copyright 2021 cest73 + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xBADD +#define PRODUCT_ID 0xAA55 +#define DEVICE_VER 0x0001 +#define MANUFACTURER cest73 +#define PRODUCT TKM-2021 R1.03 + +/* key matrix size */ +#define MATRIX_ROWS 11 +#define MATRIX_COLS 10 + +/* matrix sz handy ruler: 1 2 3 4 5 6 7 8 9 10 11 12 */ +/* key matrix pins */ +/* row handy ruler: r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, C6, C7, D0 } +/* column handy ruler: c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 */ +#define MATRIX_COL_PINS { D1, D2, D3, D4, D5, D6, D7, F0, F1, F4 } +#define UNUSED_PINS { AF } + +//NOTE: if D6 pin shows any issues in exploatation the LED on the Teensy is to be removed + +#define LED_NUM_LOCK_PIN F6 +#define LED_CAPS_LOCK_PIN F5 +#define LED_SCROLL_LOCK_PIN F7 +#define LED_PIN_ON_STATE 0 +//TODO change the E6 pin to either B5, B6, B7 or C6 to utilize hardware PWM on a future PCB revision +#define BACKLIGHT_PIN E6 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* force n-key rollover*/ +#define FORCE_NKRO diff --git a/keyboards/cest73/tkm/info.json b/keyboards/cest73/tkm/info.json new file mode 100644 index 000000000000..1118be836e4f --- /dev/null +++ b/keyboards/cest73/tkm/info.json @@ -0,0 +1,122 @@ +{ + "keyboard_name": "TKM 2021", + "url": "https://geekhack.org/index.php?topic=110499", + "maintainer": "cest73 (aka fire-h0und)", + "width": 21, + "height": 6.75, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Fn", "x":0, "y":0}, + {"label":"PrtSc", "x":1, "y":0}, + {"label":"Scroll Lock", "x":2, "y":0}, + {"label":"Pause", "x":3, "y":0}, + {"label":"Esc", "x":4.5, "y":0}, + {"label":"F1", "x":6, "y":0}, + {"label":"F2", "x":7, "y":0}, + {"label":"F3", "x":8, "y":0}, + {"label":"F4", "x":9, "y":0}, + {"label":"F5", "x":10.25, "y":0}, + {"label":"F6", "x":11.25, "y":0}, + {"label":"F7", "x":12.25, "y":0}, + {"label":"F8", "x":13.25, "y":0}, + {"label":"F9", "x":14.5, "y":0}, + {"label":"F10", "x":15.5, "y":0}, + {"label":"F11", "x":16.5, "y":0}, + {"label":"F12", "x":17.5, "y":0}, + {"label":"Home", "x":19, "y":0}, + {"label":"PgUp", "x":20, "y":0}, + + {"label":"-", "x":0, "y":1.5}, + {"label":"*", "x":1, "y":1.5}, + {"label":"/", "x":2, "y":1.5}, + {"label":"Num Lock", "x":3, "y":1.5}, + {"label":"~", "x":4.5, "y":1.5}, + {"label":"!", "x":5.5, "y":1.5}, + {"label":"\"", "x":6.5, "y":1.5}, + {"label":"\u00a3", "x":7.5, "y":1.5}, + {"label":"$", "x":8.5, "y":1.5}, + {"label":"%", "x":9.5, "y":1.5}, + {"label":"^", "x":10.5, "y":1.5}, + {"label":"&", "x":11.5, "y":1.5}, + {"label":"*", "x":12.5, "y":1.5}, + {"label":"(", "x":13.5, "y":1.5}, + {"label":")", "x":14.5, "y":1.5}, + {"label":"_", "x":15.5, "y":1.5}, + {"label":"+", "x":16.5, "y":1.5}, + {"label":"Backspace", "x":17.5, "y":1.5, "w":2}, + {"label":"Insert", "x":20, "y":1.5}, + + {"label":"+", "x":0, "y":2.5, "h":2}, + {"label":"9", "x":1, "y":2.5}, + {"label":"8", "x":2, "y":2.5}, + {"label":"7", "x":3, "y":2.5}, + {"label":"Tab", "x":4.5, "y":2.5, "w":1.5}, + {"label":"Q", "x":6, "y":2.5}, + {"label":"W", "x":7, "y":2.5}, + {"label":"E", "x":8, "y":2.5}, + {"label":"R", "x":9, "y":2.5}, + {"label":"T", "x":10, "y":2.5}, + {"label":"Y", "x":11, "y":2.5}, + {"label":"U", "x":12, "y":2.5}, + {"label":"I", "x":13, "y":2.5}, + {"label":"O", "x":14, "y":2.5}, + {"label":"P", "x":15, "y":2.5}, + {"label":"{", "x":16, "y":2.5}, + {"label":"}", "x":17, "y":2.5}, + {"label":"Enter", "x":18.25, "y":2.5, "w":1.25, "h":2}, + {"label":"Delete", "x":20, "y":2.5}, + + {"label":"6", "x":1, "y":3.5}, + {"label":"5", "x":2, "y":3.5}, + {"label":"4", "x":3, "y":3.5}, + {"label":"CAPS", "x":4.5, "y":3.5, "w":1.25}, + {"label":"A", "x":6.25, "y":3.5}, + {"label":"S", "x":7.25, "y":3.5}, + {"label":"D", "x":8.25, "y":3.5}, + {"label":"F", "x":9.25, "y":3.5}, + {"label":"G", "x":10.25, "y":3.5}, + {"label":"H", "x":11.25, "y":3.5}, + {"label":"J", "x":12.25, "y":3.5}, + {"label":"K", "x":13.25, "y":3.5}, + {"label":"L", "x":14.25, "y":3.5}, + {"label":":", "x":15.25, "y":3.5}, + {"label":"@", "x":16.25, "y":3.5}, + {"label":"|", "x":17.25, "y":3.5}, + {"label":"PgDn", "x":20, "y":3.5}, + + {"label":"Enter", "x":0, "y":4.5, "h":2}, + {"label":"3", "x":1, "y":4.5}, + {"label":"2", "x":2, "y":4.5}, + {"label":"1", "x":3, "y":4.5}, + {"label":"Shift", "x":4.5, "y":4.5, "w":2.25}, + {"label":"Z", "x":6.75, "y":4.5}, + {"label":"X", "x":7.75, "y":4.5}, + {"label":"C", "x":8.75, "y":4.5}, + {"label":"V", "x":9.75, "y":4.5}, + {"label":"B", "x":10.75, "y":4.5}, + {"label":"N", "x":11.75, "y":4.5}, + {"label":"M", "x":12.75, "y":4.5}, + {"label":"<", "x":13.75, "y":4.5}, + {"label":">", "x":14.75, "y":4.5}, + {"label":"?", "x":15.75, "y":4.5}, + {"label":"Shift", "x":16.75, "y":4.5, "w":1.75}, + {"label":"End", "x":20, "y":4.5}, + {"label":"\u2191", "x":18.75, "y":4.75}, + + {"label":".", "x":1, "y":5.5}, + {"label":"0", "x":2, "y":5.5, "w":2}, + {"label":"Ctrl", "x":4.5, "y":5.5, "w":1.25}, + {"label":"Win", "x":5.75, "y":5.5}, + {"label":"Alt", "x":6.75, "y":5.5, "w":1.25}, + {"label":"Mod1", "x":8, "y":5.5, "w":1.5}, + {"label":"Space", "x":8, "y":5.5, "w":6.25}, + {"label":"AltGr", "x":14.25, "y":5.5}, + {"label":"Menu", "x":15.25, "y":5.5}, + {"label":"Ctrl", "x":16.25, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":17.75, "y":5.75}, + {"label":"\u2193", "x":18.75, "y":5.75}, + {"label":"\u2192", "x":19.75, "y":5.75}] + } + } +} diff --git a/keyboards/cest73/tkm/keymaps/default/keymap.c b/keyboards/cest73/tkm/keymaps/default/keymap.c new file mode 100644 index 000000000000..0fa9ea921ded --- /dev/null +++ b/keyboards/cest73/tkm/keymaps/default/keymap.c @@ -0,0 +1,79 @@ + /* Copyright 2021 cest73 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +/* + * ┌───┬───┬───┬───┐ ┌───┐ ┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┐ + * │Fn │PSc│Scr│Pse│ │Esc│ │F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12│ │Hme│PgU│ + * └───┴───┴───┴───┘ └───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┘ + * + * ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │ - │ * │ / │Num│ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsl│Bsp│ │Ins│ + * ├───┼───┼───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤ + * │ + │ 9 │ 8 │ 7 │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│ + * ├───┼───┼───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│ ├───┤ + * │ = │ 6 │ 5 │ 4 │ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Etl│ Ent│ │PgD│ + * ├───┼───┼───┼───┤ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┘ ├───┤ + * │Tab│ 3 │ 2 │ 1 │ │Shft│Shl│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐│End│ + * ├───┼───┼───┼───┤ ├────┼───┼───┴┬──┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴──┬───┘│ ↑ │└───┘ + * │Ent│ . │ , │ 0 │ │Ctrl│GUI│Alt │                        │Alt│Mnu│Ctrl│┌───┼───┼───┐ + * └───┴───┴───┴───┘ └────┴───┴────┴────────────────────────┴───┴───┴────┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + /* + * ┌───┬───┬───┬───┐ ┌───┐ ┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┐ + * │ │ │ │ │ │Rst│ │  │  │  │  ││  │  │  │  ││  │ │ │ │ │ │ │ + * └───┴───┴───┴───┘ └───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┘ + * + * ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │ │   │   │ │ │   │   │   │   │   │   │   │   │   │   │   │   │   │ │ │ │ │ + * ├───┼───┼───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤ + * │   │   │   │   │ │   │   │   │   │   │   │   │   │   │   │   │   │   │     │ │ │ + * ├───┼───┼───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│ ├───┤ + * │   │   │   │   │ │  │   │   │   │   │   │ ← │ ↑ │ ↓ │ → │   │   │ │ Ent│ │ │ + * ├───┼───┼───┼───┤ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┘ ├───┤ + * │ │   │   │   │ │Shft│ │   │   │   │   │   │   │   │   │   │   │ Shift│┌───┐│ │ + * ├───┼───┼───┼───┤ ├────┼───┼───┴┬──┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴──┬───┘│ ↑ │└───┘ + * │ │   │  │   │ │Ctrl│GUI│Alt │                        │Alt│Mnu│Ctrl│┌───┼───┼───┐ + * └───┴───┴───┴───┘ └────┴───┴────┴────────────────────────┴───┴───┴────┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + MO(1), KC_PSCR, KC_SLCK, KC_PAUS, 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_HOME, KC_PGUP, + KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, 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_BSLS, KC_BSPC, KC_INS, + KC_PPLS, KC_P9, KC_P8, KC_P7, 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_PEQL, KC_P6, KC_P5, KC_P4, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_TAB, KC_P3, KC_P2, KC_P1, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_PENT, KC_PDOT, KC_PCMM, KC_P0, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_UP, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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/cest73/tkm/readme.md b/keyboards/cest73/tkm/readme.md new file mode 100644 index 000000000000..947cc2677961 --- /dev/null +++ b/keyboards/cest73/tkm/readme.md @@ -0,0 +1,22 @@ +# Ten Key Mirrored - 2021 + +![TKM-2021](https://imgur.com/AlvRk1zh.jpg) + +Another take on left side numpad and this time mirrored too for the ever more spacious mouse playground. + +* Keyboard Maintainer: cest73 (aka fire-h0und) +* Hardware Supported: TKM-2021 (multiple layouts and switch options including ALPS, ISO and BAE) +* Hardware Availability: https://geekhack.org/index.php?topic=110499 + + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb cest73/tkm -km default + +As the board uses Teensy 2.0 as a daughter board, to bring the board into flash mode is it sufficient to press the button present on the Teensy. + +[TKM-2021 PCB](https://geekhack.org/index.php?action=dlattach;topic=110499.0;attach=268641;image) + +Despite many hours gazing over the schematics there was a nasty error on the first batch: namely the 6 and 7 columns got swapped in the design process. Luckily it was trivial to fix in the firmware section (see the comments in the layout file(s)). + +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). diff --git a/keyboards/cest73/tkm/rules.mk b/keyboards/cest73/tkm/rules.mk new file mode 100644 index 000000000000..43420532f537 --- /dev/null +++ b/keyboards/cest73/tkm/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cest73/tkm/tkm.c b/keyboards/cest73/tkm/tkm.c new file mode 100644 index 000000000000..b127e9eb5317 --- /dev/null +++ b/keyboards/cest73/tkm/tkm.c @@ -0,0 +1,16 @@ + /* Copyright 2021 cest73 + * + * 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 "tkm.h" diff --git a/keyboards/cest73/tkm/tkm.h b/keyboards/cest73/tkm/tkm.h new file mode 100644 index 000000000000..e846f5f597c5 --- /dev/null +++ b/keyboards/cest73/tkm/tkm.h @@ -0,0 +1,66 @@ + /* Copyright 2021 cest73 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * The first section contains "names" for physical keys of the keyboard + * and defines their position on the board. + * The second section defines position of the keys on the switch matrix + * (where COLUMNS and ROWS crosses). + This looks so much better in an terminal window :-(*/ + /* + * ┌───┬───┬───┬───┐ ┌───┐ ┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┐ + * │Fn │PSc│Scr│Pse│ │Esc│ │F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12│ │Hme│PgU│ + * └───┴───┴───┴───┘ └───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┘ + * + * ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │ - │ * │ / │Num│ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsl│Bsp│ │Ins│ + * ├───┼───┼───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤ + * │ + │ 9 │ 8 │ 7 │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│ + * ├───┼───┼───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│ ├───┤ + * │ = │ 6 │ 5 │ 4 │ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Etl│ Ent│ │PgD│ + * ├───┼───┼───┼───┤ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┘ ├───┤ + * │Tab│ 3 │ 2 │ 1 │ │Shft│Shl│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐│End│ + * ├───┼───┼───┼───┤ ├────┼───┼───┴┬──┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴──┬───┘│ ↑ │└───┘ + * │Ent│ . │ , │ 0 │ │Ctrl│GUI│Alt │                        │Alt│Mnu│Ctrl│┌───┼───┼───┐ + * └───┴───┴───┴───┘ └────┴───┴────┴────────────────────────┴───┴───┴────┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ +// due to a nasty PCB layout bug the R1.03 board has "6" and "7" keyboard coulmns swapped... + +#define LAYOUT_all( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k15, k05, k06, k16, k07, k17, k08, k18, k09, \ +\ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k35, k25, k26, k36, k27, k37, k28, k19, k38, k29, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k55, k45, k46, k56, k47, k57, k48, k58, k49, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k75, k65, k66, k76, k67, k77, k68, k78, k69, \ + k39, k90, k81, k91, k82, k92, k83, k93, k84, k94, k95, k85, k86, k96, k87, k97, k88, k98, k89, \ + k80, kA0, k59, kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, k99, k79 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79 }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99 }, \ + { kA0, kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9 } \ +} From 20589fb050ab4ddfdaea28d48569790505233752 Mon Sep 17 00:00:00 2001 From: Weirdo <1248314361@qq.com> Date: Sat, 14 Aug 2021 02:47:57 +0800 Subject: [PATCH 238/328] [Keybord] Add LS_60 keyboard (#13851) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/ls_60/chconf.h | 24 ++++++++ keyboards/ls_60/config.h | 52 ++++++++++++++++ keyboards/ls_60/info.json | 78 ++++++++++++++++++++++++ keyboards/ls_60/keymaps/default/keymap.c | 39 ++++++++++++ keyboards/ls_60/keymaps/via/keymap.c | 47 ++++++++++++++ keyboards/ls_60/keymaps/via/rules.mk | 1 + keyboards/ls_60/ls_60.c | 31 ++++++++++ keyboards/ls_60/ls_60.h | 30 +++++++++ keyboards/ls_60/readme.md | 17 ++++++ keyboards/ls_60/rules.mk | 23 +++++++ 10 files changed, 342 insertions(+) create mode 100644 keyboards/ls_60/chconf.h create mode 100644 keyboards/ls_60/config.h create mode 100644 keyboards/ls_60/info.json create mode 100644 keyboards/ls_60/keymaps/default/keymap.c create mode 100644 keyboards/ls_60/keymaps/via/keymap.c create mode 100644 keyboards/ls_60/keymaps/via/rules.mk create mode 100644 keyboards/ls_60/ls_60.c create mode 100644 keyboards/ls_60/ls_60.h create mode 100644 keyboards/ls_60/readme.md create mode 100644 keyboards/ls_60/rules.mk diff --git a/keyboards/ls_60/chconf.h b/keyboards/ls_60/chconf.h new file mode 100644 index 000000000000..5884dd8b0bde --- /dev/null +++ b/keyboards/ls_60/chconf.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Weirdo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// Need to override the SysTick timer to use TIM3 -- this is a 16-bit timer on F303 +// so we need to change resolution and frequency to match. +#define CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next diff --git a/keyboards/ls_60/config.h b/keyboards/ls_60/config.h new file mode 100644 index 000000000000..e7151ac10f70 --- /dev/null +++ b/keyboards/ls_60/config.h @@ -0,0 +1,52 @@ + /* Copyright 2021 Weirdo + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7764 +#define PRODUCT_ID 0x4c53 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Weirdo +#define PRODUCT LS_60 + + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { A9, A10, B10, B11, B15} +#define MATRIX_COL_PINS { A8, B14, B13, B12, B1, B0, A7 , A1 , A15, B3, B4, B5, B6, B7, B8} +#define DIODE_DIRECTION ROW2COL +#define DEBOUNCE 5 + + + +#define RGB_DI_PIN A6 +#define RGBLED_NUM 1 +//#define RGBLIGHT_DISABLE_KEYCODES + + + + +/* 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/ls_60/info.json b/keyboards/ls_60/info.json new file mode 100644 index 000000000000..9ca03b965615 --- /dev/null +++ b/keyboards/ls_60/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "LS_60", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K0", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K010", "x":10, "y":0}, + {"label":"K011", "x":11, "y":0}, + {"label":"K012", "x":12, "y":0}, + {"label":"K013", "x":13, "y":0}, + {"label":"K014", "x":14, "y":0}, + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K11", "x":1.5, "y":1}, + {"label":"K12", "x":2.5, "y":1}, + {"label":"K13", "x":3.5, "y":1}, + {"label":"K14", "x":4.5, "y":1}, + {"label":"K15", "x":5.5, "y":1}, + {"label":"K16", "x":6.5, "y":1}, + {"label":"K17", "x":7.5, "y":1}, + {"label":"K18", "x":8.5, "y":1}, + {"label":"K19", "x":9.5, "y":1}, + {"label":"K110", "x":10.5, "y":1}, + {"label":"K111", "x":11.5, "y":1}, + {"label":"K112", "x":12.5, "y":1}, + {"label":"K113", "x":13.5, "y":1, "w":1.5}, + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K21", "x":1.75, "y":2}, + {"label":"K22", "x":2.75, "y":2}, + {"label":"K23", "x":3.75, "y":2}, + {"label":"K24", "x":4.75, "y":2}, + {"label":"K25", "x":5.75, "y":2}, + {"label":"K26", "x":6.75, "y":2}, + {"label":"K27", "x":7.75, "y":2}, + {"label":"K28", "x":8.75, "y":2}, + {"label":"K29", "x":9.75, "y":2}, + {"label":"K210", "x":10.75, "y":2}, + {"label":"K211", "x":11.75, "y":2}, + {"label":"K212", "x":12.75, "y":2}, + {"label":"K213", "x":13.75, "y":2, "w":1.25}, + {"label":"K30", "x":0, "y":3, "w":1.25}, + {"label":"K31", "x":1.25, "y":3}, + {"label":"K32", "x":2.25, "y":3}, + {"label":"K33", "x":3.25, "y":3}, + {"label":"K34", "x":4.25, "y":3}, + {"label":"K35", "x":5.25, "y":3}, + {"label":"K36", "x":6.25, "y":3}, + {"label":"K37", "x":7.25, "y":3}, + {"label":"K38", "x":8.25, "y":3}, + {"label":"K39", "x":9.25, "y":3}, + {"label":"K310", "x":10.25, "y":3}, + {"label":"K311", "x":11.25, "y":3}, + {"label":"K312", "x":12.25, "y":3, "w":1.75}, + {"label":"K313", "x":14, "y":3}, + {"label":"K40", "x":0, "y":4, "w":1.25}, + {"label":"K41", "x":1.25, "y":4, "w":1.25}, + {"label":"K42", "x":2.5, "y":4, "w":1.25}, + {"label":"K46", "x":3.75, "y":4, "w":6.25}, + {"label":"K410", "x":10, "y":4, "w":1.25}, + {"label":"K411", "x":11.25, "y":4, "w":1.25}, + {"label":"K412", "x":12.5, "y":4, "w":1.25}, + {"label":"K413", "x":13.75, "y":4, "w":1.25} + ] + } + } +} diff --git a/keyboards/ls_60/keymaps/default/keymap.c b/keyboards/ls_60/keymaps/default/keymap.c new file mode 100644 index 000000000000..35879593992a --- /dev/null +++ b/keyboards/ls_60/keymaps/default/keymap.c @@ -0,0 +1,39 @@ + /* Copyright 2021 Weirdo + * + * 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 + + +// [Keymaps] -----------------------------------------------------------------// +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_BSLS, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LWIN, KC_LALT,KC_SPACE, KC_RALT, KC_RALT, KC_RWIN, KC_RCTL), + + + [_FN] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT), // + +}; diff --git a/keyboards/ls_60/keymaps/via/keymap.c b/keyboards/ls_60/keymaps/via/keymap.c new file mode 100644 index 000000000000..e3af8eb7da8e --- /dev/null +++ b/keyboards/ls_60/keymaps/via/keymap.c @@ -0,0 +1,47 @@ + /* Copyright 2021 Weirdo + * + * 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 + + +// [Keymaps] -----------------------------------------------------------------// +enum layer_names { _BASE, _FN ,_FN1 ,_FN2 }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_BSLS, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_RALT, KC_RALT, KC_RWIN, KC_RCTL), + + + [_FN] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT), // + + [_FN1] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_FN2] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/ls_60/keymaps/via/rules.mk b/keyboards/ls_60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/ls_60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ls_60/ls_60.c b/keyboards/ls_60/ls_60.c new file mode 100644 index 000000000000..ef29acf9a1f7 --- /dev/null +++ b/keyboards/ls_60/ls_60.c @@ -0,0 +1,31 @@ + /* Copyright 2021 Weirdo + * + * 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 "ls_60.h" + + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + + if (res) { + if(led_state.caps_lock){ + rgblight_setrgb_at(192, 192, 192, 0); + } else { + rgblight_setrgb_at(0, 0, 0, 0); + } + } + + return res; +} diff --git a/keyboards/ls_60/ls_60.h b/keyboards/ls_60/ls_60.h new file mode 100644 index 000000000000..b099521b9eab --- /dev/null +++ b/keyboards/ls_60/ls_60.h @@ -0,0 +1,30 @@ +/* +Copyright 2021 Weirdo +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, K213, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312, K313, \ + K40, K41, K42, K46, K410, K411, K412, K413 ) \ + { \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014}, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113 }, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, K213 }, \ + {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312, K313 }, \ + {K40, K41, K42, K46, K410, K411, K412, K413 } \ + } diff --git a/keyboards/ls_60/readme.md b/keyboards/ls_60/readme.md new file mode 100644 index 000000000000..e0efdfd9b500 --- /dev/null +++ b/keyboards/ls_60/readme.md @@ -0,0 +1,17 @@ +# LS_60 + +![LS_60](https://i.imgur.com/Cuy5W1H.png) + +A 60% keyboard based on STM32f303 + +* Keyboard Maintainer: [Weirdo](https://weirdo-f.github.io)(https://github.com/1248314361) +* Hardware Supported: LS_60 +* Hardware Availability: Not yet + +Make example for this keyboard (after setting up your build environment): + + make ls_60:default + +The RST pin and GND pin on the board can be quickly shortened twice to enter DFU mode, and then the program can be written. + +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). diff --git a/keyboards/ls_60/rules.mk b/keyboards/ls_60/rules.mk new file mode 100644 index 000000000000..c8646b2f9133 --- /dev/null +++ b/keyboards/ls_60/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From d5eb673426230a87be229219127c2f553c7fd8f2 Mon Sep 17 00:00:00 2001 From: Hugues Morisset Date: Fri, 13 Aug 2021 20:52:27 +0200 Subject: [PATCH 239/328] [Keyboard] Interlace matrix scan for performance on Moonlander (#13625) --- keyboards/moonlander/matrix.c | 158 ++++++++++++++++++---------------- 1 file changed, 82 insertions(+), 76 deletions(-) diff --git a/keyboards/moonlander/matrix.c b/keyboards/moonlander/matrix.c index dbd44d16189b..8f2610fc6c71 100644 --- a/keyboards/moonlander/matrix.c +++ b/keyboards/moonlander/matrix.c @@ -129,10 +129,29 @@ void matrix_init(void) { uint8_t matrix_scan(void) { bool changed = false; + // Try to re-init right side + if (!mcp23018_initd) { + if (++mcp23018_reset_loop == 0) { + // if (++mcp23018_reset_loop >= 1300) { + // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + print("trying to reset mcp23018\n"); + mcp23018_init(); + if (!mcp23018_initd) { + print("left side not responding\n"); + } else { + print("left side attached\n"); +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_init(); +#endif + } + } + } + matrix_row_t data = 0; // actual matrix - for (uint8_t row = 0; row < ROWS_PER_HAND; row++) { - // strobe row + for (uint8_t row = 0; row <= ROWS_PER_HAND; row++) { + // strobe row switch (row) { case 0: writePinHigh(B10); break; case 1: writePinHigh(B11); break; @@ -140,94 +159,81 @@ uint8_t matrix_scan(void) { case 3: writePinHigh(B13); break; case 4: writePinHigh(B14); break; case 5: writePinHigh(B15); break; + case 6: break; // Left hand has 6 rows } - // need wait to settle pin state - matrix_io_delay(); - - // read col data - data = ( - (readPin(A0) << 0 ) | - (readPin(A1) << 1 ) | - (readPin(A2) << 2 ) | - (readPin(A3) << 3 ) | - (readPin(A6) << 4 ) | - (readPin(A7) << 5 ) | - (readPin(B0) << 6 ) - ); - - // unstrobe row - switch (row) { - case 0: writePinLow(B10); break; - case 1: writePinLow(B11); break; - case 2: writePinLow(B12); break; - case 3: writePinLow(B13); break; - case 4: writePinLow(B14); break; - case 5: writePinLow(B15); break; - } - - if (matrix_debouncing[row] != data) { - matrix_debouncing[row] = data; - debouncing = true; - debouncing_time = timer_read(); - changed = true; - } - } - - for (uint8_t row = 0; row <= ROWS_PER_HAND; row++) { // right side - - if (!mcp23018_initd) { - if (++mcp23018_reset_loop == 0) { - // if (++mcp23018_reset_loop >= 1300) { - // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans - // this will be approx bit more frequent than once per second - print("trying to reset mcp23018\n"); - mcp23018_init(); - if (!mcp23018_initd) { - print("left side not responding\n"); - } else { - print("left side attached\n"); -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_init(); -#endif - } + if (mcp23018_initd) { + // #define MCP23_ROW_PINS { GPB5, GBP4, GBP3, GBP2, GBP1, GBP0 } outputs + // #define MCP23_COL_PINS { GPA0, GBA1, GBA2, GBA3, GBA4, GBA5, GBA6 } inputs + + // select row + mcp23018_tx[0] = 0x12; // GPIOA + mcp23018_tx[1] = (0b01111111 & ~(1 << (row))) | ((uint8_t)!mcp23018_leds[2] << 7); // activate row + mcp23018_tx[2] = ((uint8_t)!mcp23018_leds[1] << 6) | ((uint8_t)!mcp23018_leds[0] << 7); // activate row + + if (MSG_OK != i2c_transmit(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx, 3, I2C_TIMEOUT)) { + dprintf("error hori\n"); + mcp23018_initd = false; } - } - // #define MCP23_ROW_PINS { GPB5, GBP4, GBP3, GBP2, GBP1, GBP0 } outputs - // #define MCP23_COL_PINS { GPA0, GBA1, GBA2, GBA3, GBA4, GBA5, GBA6 } inputs + // read col - // select row - - mcp23018_tx[0] = 0x12; // GPIOA - mcp23018_tx[1] = (0b01111111 & ~(1 << (row))) | ((uint8_t)!mcp23018_leds[2] << 7); // activate row - mcp23018_tx[2] = ((uint8_t)!mcp23018_leds[1] << 6) | ((uint8_t)!mcp23018_leds[0] << 7); // activate row - - if (MSG_OK != i2c_transmit(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx, 3, I2C_TIMEOUT)) { - dprintf("error hori\n"); - mcp23018_initd = false; - } + mcp23018_tx[0] = 0x13; // GPIOB + if (MSG_OK != i2c_readReg(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx[0], &mcp23018_rx[0], 1, I2C_TIMEOUT)) { + dprintf("error vert\n"); + mcp23018_initd = false; + } - // read col + data = ~(mcp23018_rx[0] & 0b00111111); + // data = 0x01; - mcp23018_tx[0] = 0x13; // GPIOB - if (MSG_OK != i2c_readReg(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx[0], &mcp23018_rx[0], 1, I2C_TIMEOUT)) { - dprintf("error vert\n"); - mcp23018_initd = false; + if (matrix_debouncing_right[row] != data) { + matrix_debouncing_right[row] = data; + debouncing_right = true; + debouncing_time_right = timer_read(); + changed = true; + } } - data = ~(mcp23018_rx[0] & 0b00111111); - // data = 0x01; + // left side + if (row < ROWS_PER_HAND) { + // i2c comm incur enough wait time + if (!mcp23018_initd) { + // need wait to settle pin state + matrix_io_delay(); + } + // read col data + data = ( + (readPin(A0) << 0 ) | + (readPin(A1) << 1 ) | + (readPin(A2) << 2 ) | + (readPin(A3) << 3 ) | + (readPin(A6) << 4 ) | + (readPin(A7) << 5 ) | + (readPin(B0) << 6 ) + ); + // unstrobe row + switch (row) { + case 0: writePinLow(B10); break; + case 1: writePinLow(B11); break; + case 2: writePinLow(B12); break; + case 3: writePinLow(B13); break; + case 4: writePinLow(B14); break; + case 5: writePinLow(B15); break; + case 6: break; + } - if (matrix_debouncing_right[row] != data) { - matrix_debouncing_right[row] = data; - debouncing_right = true; - debouncing_time_right = timer_read(); - changed = true; + if (matrix_debouncing[row] != data) { + matrix_debouncing[row] = data; + debouncing = true; + debouncing_time = timer_read(); + changed = true; + } } } + // Debounce both hands if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { for (int row = 0; row < ROWS_PER_HAND; row++) { matrix[row] = matrix_debouncing[row]; From 1b5d7616d306ade19bd57e2820bfa96602749b79 Mon Sep 17 00:00:00 2001 From: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Date: Sat, 14 Aug 2021 05:26:22 +1000 Subject: [PATCH 240/328] [Keyboard] Add split_3x5_3 layout support to boardsource/microdox (#13323) --- keyboards/boardsource/microdox/rules.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/boardsource/microdox/rules.mk b/keyboards/boardsource/microdox/rules.mk index b6afb77c7830..0cb636df6417 100644 --- a/keyboards/boardsource/microdox/rules.mk +++ b/keyboards/boardsource/microdox/rules.mk @@ -21,3 +21,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD = yes + +LAYOUTS = split_3x5_3 From 3366c5628c06688a37986719542889426be34e40 Mon Sep 17 00:00:00 2001 From: npspears <40127181+npspears@users.noreply.github.com> Date: Fri, 13 Aug 2021 14:26:49 -0500 Subject: [PATCH 241/328] [Keyboard] add support for alternate ortho UD40 PCB (#13491) Co-authored-by: Ryan --- .../checkerboards/ud40_ortho_alt/config.h | 55 ++++++++++ .../checkerboards/ud40_ortho_alt/info.json | 24 +++++ .../ud40_ortho_alt/keymaps/2x3u_alt/config.h | 19 ++++ .../ud40_ortho_alt/keymaps/2x3u_alt/keymap.c | 80 ++++++++++++++ .../ud40_ortho_alt/keymaps/600u/config.h | 19 ++++ .../ud40_ortho_alt/keymaps/600u/keymap.c | 80 ++++++++++++++ .../ud40_ortho_alt/keymaps/600u_alt/config.h | 19 ++++ .../ud40_ortho_alt/keymaps/600u_alt/keymap.c | 80 ++++++++++++++ .../ud40_ortho_alt/keymaps/700u/config.h | 19 ++++ .../ud40_ortho_alt/keymaps/700u/keymap.c | 80 ++++++++++++++ .../ud40_ortho_alt/keymaps/default/config.h | 19 ++++ .../ud40_ortho_alt/keymaps/default/keymap.c | 80 ++++++++++++++ .../ud40_ortho_alt/keymaps/default/readme.md | 4 + .../ud40_ortho_alt/keymaps/npspears/config.h | 19 ++++ .../ud40_ortho_alt/keymaps/npspears/keymap.c | 80 ++++++++++++++ .../ud40_ortho_alt/keymaps/npspears/readme.md | 4 + .../ud40_ortho_alt/keymaps/via/keymap.c | 100 ++++++++++++++++++ .../ud40_ortho_alt/keymaps/via/rules.mk | 1 + .../checkerboards/ud40_ortho_alt/readme.md | 17 +++ .../checkerboards/ud40_ortho_alt/rules.mk | 24 +++++ .../ud40_ortho_alt/ud40_ortho_alt.c | 17 +++ .../ud40_ortho_alt/ud40_ortho_alt.h | 81 ++++++++++++++ 22 files changed, 921 insertions(+) create mode 100644 keyboards/checkerboards/ud40_ortho_alt/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/info.json create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/default/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/default/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/default/readme.md create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/readme.md create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/via/rules.mk create mode 100644 keyboards/checkerboards/ud40_ortho_alt/readme.md create mode 100644 keyboards/checkerboards/ud40_ortho_alt/rules.mk create mode 100644 keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h diff --git a/keyboards/checkerboards/ud40_ortho_alt/config.h b/keyboards/checkerboards/ud40_ortho_alt/config.h new file mode 100644 index 000000000000..0595b41acfca --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/config.h @@ -0,0 +1,55 @@ +/* Copyright 2021 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7070 +#define PRODUCT_ID 0x7030 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nasp +#define PRODUCT UD40_Ortho_Alt + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { E6, F0, F1, F4 } +#define MATRIX_COL_PINS { B2, B1, F7, D6, D7, B4, B5, B6, C6, C7, F5, F6 } +#define UNUSED_PINS + +/* 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 + +// ws2812 options +#define RGB_DI_PIN D4 // pin the DI on the ws2812 is hooked-up to +#define RGBLIGHT_ANIMATIONS // run RGB animations +#define RGBLED_NUM 12 // number of LEDs +#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) diff --git a/keyboards/checkerboards/ud40_ortho_alt/info.json b/keyboards/checkerboards/ud40_ortho_alt/info.json new file mode 100644 index 000000000000..620bc0300a43 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/info.json @@ -0,0 +1,24 @@ +{ + "keyboard_name": "UD40_Ortho_Alt", + "url": "", + "maintainer": "nasp", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_default": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"x":8.25, "y":3, "w":1.25}, {"x":9.5, "y":3, "w":1.25}, {"x":10.75, "y":3, "w":1.25}] + }, + "LAYOUT_2x3u_alt": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3, "w":1.5}, {"x":3, "y":3, "w":3}, {"x":6, "y":3, "w":3}, {"x":9, "y":3, "w":1.5}, {"x":10.5, "y":3, "w":1.5}] + }, + "LAYOUT_600u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3, "w":6}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] + }, + "LAYOUT_600u_alt": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3, "w":1.5}, {"x":3, "y":3, "w":6}, {"x":9, "y":3, "w":1.5}, {"x":10.5, "y":3, "w":1.5}] + }, + "LAYOUT_700u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":7}, {"x":9.5, "y":3, "w":1.25}, {"x":10.75, "y":3, "w":1.25}] + } + } +} diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 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/ud40_ortho_alt/keymaps/2x3u_alt/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/keymap.c new file mode 100644 index 000000000000..92216ed03f2a --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/keymap.c @@ -0,0 +1,80 @@ +/* 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_2x3u_alt( + 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, + RESET, KC_LALT, TT(1), LT(2, KC_SPC), KC_LGUI, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_2x3u_alt( + 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_PPLS, KC_EQL, _______, _______, _______, + CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_2x3u_alt( + _______, _______, _______, 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, + RESET, RESET, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 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/ud40_ortho_alt/keymaps/600u/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/keymap.c new file mode 100644 index 000000000000..74bbd2918f69 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/keymap.c @@ -0,0 +1,80 @@ +/* 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_600u( + 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, + RESET, RGB_TOG, KC_LALT, LT(2, KC_SPC), TT(1), KC_LGUI, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_600u( + 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_PPLS, KC_EQL, _______, _______, _______, + CALTDEL, _______, TSKMGR, _______, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_600u( + _______, _______, _______, 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, + RESET, RESET, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 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/ud40_ortho_alt/keymaps/600u_alt/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/keymap.c new file mode 100644 index 000000000000..76c8b06cc42c --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/keymap.c @@ -0,0 +1,80 @@ +/* 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_600u_alt( + 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, + RESET, KC_LALT, LT(2, KC_SPC), TT(1), KC_RGUI + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_600u_alt( + 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_PPLS, KC_EQL, _______, _______, _______, + CALTDEL, TSKMGR, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_600u_alt( + _______, _______, _______, 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, + RESET, RESET, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 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/ud40_ortho_alt/keymaps/700u/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/keymap.c new file mode 100644 index 000000000000..37f46f72e3bd --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/keymap.c @@ -0,0 +1,80 @@ +/* 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_700u( + 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, + RESET, KC_LALT, LT(2, KC_SPC), TT(1), KC_RGUI + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_700u( + 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_PPLS, KC_EQL, _______, _______, _______, + CALTDEL, TSKMGR, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_700u( + _______, _______, _______, 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, + RESET, RESET, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 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/ud40_ortho_alt/keymaps/default/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/keymap.c new file mode 100644 index 000000000000..88c1834d15d6 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/keymap.c @@ -0,0 +1,80 @@ +/* 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_default( + 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, + RESET, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_default( + 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_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_default( + _______, _______, _______, 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, + RESET, RESET, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/readme.md b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/readme.md new file mode 100644 index 000000000000..126d92ab548c --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/readme.md @@ -0,0 +1,4 @@ +# The Default UD40 Ortho Alt Layout +# 1.25 - 1.25 - 1.25 - 2.25 - 2.25 - 1.25 - 1.25 - 1.25 +# or +# 1 - 1 - 1 - 3 - 3 - 1 - 1 - 1 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 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/ud40_ortho_alt/keymaps/npspears/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/keymap.c new file mode 100644 index 000000000000..59579383a502 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/keymap.c @@ -0,0 +1,80 @@ +/* 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_default( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RESET, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_default( + 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_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_default( + _______, _______, _______, 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, + RESET, RESET, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/readme.md b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/readme.md new file mode 100644 index 000000000000..126d92ab548c --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/readme.md @@ -0,0 +1,4 @@ +# The Default UD40 Ortho Alt Layout +# 1.25 - 1.25 - 1.25 - 2.25 - 2.25 - 1.25 - 1.25 - 1.25 +# or +# 1 - 1 - 1 - 3 - 3 - 1 - 1 - 1 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c new file mode 100644 index 000000000000..cbe2d9778aa6 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c @@ -0,0 +1,100 @@ +/* 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_default( + 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_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_default( + 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_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,--------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_default( + _______, _______, _______, 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, + RESET, _______, _______, _______, _______, _______, _______, _______ + ), + + /* [3] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | | | | | | | | | | | | | | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | | | | | | | | | | | | | | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | | | | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | | | | | | | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + }; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/rules.mk b/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/checkerboards/ud40_ortho_alt/readme.md b/keyboards/checkerboards/ud40_ortho_alt/readme.md new file mode 100644 index 000000000000..c7118f82e4f3 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/readme.md @@ -0,0 +1,17 @@ +# UD40_Ortho_Alt + +![UD40_Ortho_Alt](https://i.imgur.com/NnGIo0O.png) + +The UD40_Ortho_Alt PCB is a modified layout for the UD040. It's similar to traditional ortho but the bottom row keys are larger than 1u. + +* Keyboard Maintainer: [Nasp](https://github.com/npspears) +* Hardware Supported: UD40 +* Hardware Availability: MyKeyboard.EU + +Make example for this keyboard (after setting up your build environment): + + make checkerboards/ud40_ortho_alt:default + +Enter the bootloader by shorting GND and RESET just above the Atmega MCU. + +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). diff --git a/keyboards/checkerboards/ud40_ortho_alt/rules.mk b/keyboards/checkerboards/ud40_ortho_alt/rules.mk new file mode 100644 index 000000000000..833c455bd777 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes # Unicode + diff --git a/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c b/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c new file mode 100644 index 000000000000..7000732a1319 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c @@ -0,0 +1,17 @@ +/* Copyright 2021 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 "ud40_ortho_alt.h" diff --git a/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h b/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h new file mode 100644 index 000000000000..9a0bb6b6080d --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h @@ -0,0 +1,81 @@ +/* Copyright 2021 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 + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_default( \ + 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 \ +) { \ + { 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, XXX, k32, k33, XXX, k34, XXX, k35, k36, XXX, k37 } \ +} + +#define LAYOUT_2x3u_alt( \ + 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 \ +) { \ + { 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, XXX, XXX, k31, k32, XXX, k33, XXX, XXX, k34, XXX, k35 } \ +} + +#define LAYOUT_600u( \ + 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 \ +) { \ + { 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, XXX, k32, XXX, XXX, k33, XXX, k34, k35, XXX, k36 } \ +} + +#define LAYOUT_600u_alt( \ + 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 \ +) { \ + { 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, XXX, XXX, k31, XXX, XXX, k32, XXX, XXX, k33, XXX, k34 } \ +} + +#define LAYOUT_700u( \ + 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 \ +) { \ + { 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, XXX, XXX, XXX, XXX, k32, XXX, XXX, k33, XXX, k34 } \ +} From ac3b9333d8b52001cee682bb833e145c5252f72d Mon Sep 17 00:00:00 2001 From: Christian Sandven Date: Fri, 13 Aug 2021 21:28:05 +0200 Subject: [PATCH 242/328] [Keyboard] Add optional colemak layout to keymap (#13217) --- .../keyprez/corgi/keymaps/default/keymap.c | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/keyboards/keyprez/corgi/keymaps/default/keymap.c b/keyboards/keyprez/corgi/keymaps/default/keymap.c index a1f816449174..757b3fd1db01 100644 --- a/keyboards/keyprez/corgi/keymaps/default/keymap.c +++ b/keyboards/keyprez/corgi/keymaps/default/keymap.c @@ -18,6 +18,7 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { _QWERTY, + _COLEMAK, _BASE, _FN, _LOWER, @@ -25,6 +26,11 @@ enum layer_names { _CMD, }; +enum corgi_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define CMD MO(_CMD) @@ -49,6 +55,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MUTE ), + /* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_COLEMAK] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LCTL, KC_LGUI, KC_LALT, CMD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_MUTE + ), + /* Lower * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | @@ -99,9 +124,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_CMD] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, + _______, QWERTY, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, - _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, + _______, _______, _______, COLEMAK, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______, _______ ), @@ -111,3 +136,21 @@ bool encoder_update_user(uint8_t index, bool clockwise) { tap_code(clockwise ? KC_VOLU : KC_VOLD); return true; } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + } + return true; +} From 2aeacf9db79439801482c8d2f53147779dd0bb89 Mon Sep 17 00:00:00 2001 From: Joel Elkins Date: Fri, 13 Aug 2021 12:28:37 -0700 Subject: [PATCH 243/328] [Keymap] Updates to jdelkins userspace and keymaps (#13216) - Remove disused dz60/jdelkins_ss keymap - Manage configured features for firmware size - Improve build configuration for the secrets feature - Various keymap tweaks - Clean up formatting in various places --- keyboards/dz60/keymaps/jdelkins/config.h | 41 ++- keyboards/dz60/keymaps/jdelkins/keymap.c | 263 +++++++++----- keyboards/dz60/keymaps/jdelkins/rules.mk | 4 +- keyboards/dz60/keymaps/jdelkins_ss/config.h | 51 --- keyboards/dz60/keymaps/jdelkins_ss/keymap.c | 367 -------------------- keyboards/dz60/keymaps/jdelkins_ss/rules.mk | 8 - keyboards/planck/keymaps/jdelkins/config.h | 5 +- keyboards/planck/keymaps/jdelkins/keymap.c | 125 +++++-- users/jdelkins/jdelkins.c | 19 +- users/jdelkins/rules.mk | 9 +- 10 files changed, 326 insertions(+), 566 deletions(-) delete mode 100644 keyboards/dz60/keymaps/jdelkins_ss/config.h delete mode 100644 keyboards/dz60/keymaps/jdelkins_ss/keymap.c delete mode 100644 keyboards/dz60/keymaps/jdelkins_ss/rules.mk diff --git a/keyboards/dz60/keymaps/jdelkins/config.h b/keyboards/dz60/keymaps/jdelkins/config.h index 95b45b2c12b0..9d50abd3ecb1 100644 --- a/keyboards/dz60/keymaps/jdelkins/config.h +++ b/keyboards/dz60/keymaps/jdelkins/config.h @@ -17,35 +17,38 @@ #pragma once -/* Directional arrangement | LAYOUT_directional - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │ 0e │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ +/* My hhkb variant + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ * │10 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ * │20 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ - * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ - * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ - * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ - * │40 │41 │43 │ 46 │4a │4b │4c │4d │4e │ - * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ -*/ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3e │ + * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┤ + * │40 │41 │43 │44 │46 │48 │4a │4b │4c │4d │4e │ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┘ + */ -#define LAYOUT_directional_nosplitspace( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ +#define LAYOUT_hhkb_split( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ - k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ - k40, k41, k43, k46, k4a, k4b, k4c, k4d, k4e \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k41, k43, k44, k46, k48, k4a, k4b, k4c, k4d, k4e \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, KC_NO,k0e }, \ - { k10, KC_NO, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ - { k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ - { k40, k41, KC_NO, k43, KC_NO,KC_NO, k46, KC_NO, KC_NO,KC_NO, k4a, k4b, k4c, k4d, k4e } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, KC_NO, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \ + { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, k3e }, \ + { k40, k41, KC_NO, k43, k44, KC_NO, k46, KC_NO, k48, KC_NO, k4a, k4b, k4c, k4d, k4e } \ } #define AUTO_SHIFT_TIMEOUT 160 +#define AUTO_SHIFT_REPEAT #define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF #define LEADER_TIMEOUT 400 #define LEADER_PER_KEY_TIMING +#define USB_MAX_POWER_CONSUMPTION 100 diff --git a/keyboards/dz60/keymaps/jdelkins/keymap.c b/keyboards/dz60/keymaps/jdelkins/keymap.c index c0bf4445a846..cf9dd584f638 100644 --- a/keyboards/dz60/keymaps/jdelkins/keymap.c +++ b/keyboards/dz60/keymaps/jdelkins/keymap.c @@ -18,20 +18,26 @@ #include "jdelkins.h" #undef LAYOUT -#define LAYOUT LAYOUT_directional_nosplitspace +#define LAYOUT LAYOUT_hhkb_split #define IDLE_TIMEOUT 360 + uint16_t rgb_idle_seconds = 0; uint16_t rgb_timer; +uint16_t bspc_timer; bool rgb_was_enabled; +enum { + MY_BSPC = USER_SAFE_RANGE, +}; + // Tap Dance int ctl_state = 0; void ctl_finished(qk_tap_dance_state_t *state, void *user_data) { ctl_state = cur_dance(state); - switch(ctl_state) { + switch (ctl_state) { case SINGLE_TAP: qk_leader_start(); break; case SINGLE_HOLD: register_code(KC_LCTL); break; case DOUBLE_TAP: tap_code(KC_RCTL); break; @@ -42,7 +48,7 @@ void ctl_finished(qk_tap_dance_state_t *state, void *user_data) { } void ctl_reset(qk_tap_dance_state_t *state, void *user_data) { - switch(ctl_state) { + switch (ctl_state) { case SINGLE_HOLD: unregister_code(KC_LCTL); break; case DOUBLE_HOLD: case TRIPLE_HOLD: unregister_code(KC_RCTL); break; @@ -61,56 +67,93 @@ void g_finished(qk_tap_dance_state_t *state, void *user_data) { } } +int kp_state = 0; + +void kp_finished(qk_tap_dance_state_t *state, void *user_data) { + kp_state = hold_cur_dance(state); + switch (kp_state) { + case SINGLE_TAP: + tap_code(KC_SPC); + break; + default: + layer_invert(_KP); + break; + } +} + +void kp_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (kp_state) { + case SINGLE_HOLD: + case DOUBLE_HOLD: + case TRIPLE_HOLD: + layer_invert(_KP); + break; + } +} + enum { TD_LDCTL, TD_G, + TD_KP, }; qk_tap_dance_action_t tap_dance_actions[] = { [TD_LDCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_finished, ctl_reset), [TD_G] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, g_finished, NULL), + [TD_KP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, kp_finished, kp_reset), }; // Layers const uint16_t PROGMEM keymaps[_LAYER_MAX][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( - 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, - MY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSPC, MO(_ADJUST), - TD(TD_LDCTL), MY_GUI, MY_ALT, MY_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + MY_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(_ADJUST), + TD(TD_LDCTL), MY_GUI, MY_ALT, MY_BSPC, TD(TD_KP), MY_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + ), + [_RPT] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_GAME] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_LALT, KC_SPC, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LALT, KC_SPC, KC_LALT, _______, _______, _______, _______, _______, _______ ), [_FUNC] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, _______, FW_WRD, KB_EOL, _______, _______, KB_COPY, KC_PGUP, _______, _______, KB_PASTE, KC_SLCK, _______, MY_CALC, - _______, KB_BOL, _______, KC_PGDN, _______, TD(TD_G), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, - _______, _______, KC_DEL, _______, _______, BK_WRD, _______, _______, _______, _______, _______, _______, KC_INS, _______, - _______, MY_RGUI, MY_RALT, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END + 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_F13, + _______, _______, FW_WRD, KB_EOL, TG(_RPT), _______, KB_COPY, KC_PGUP, _______, _______, KB_PASTE, KC_SLCK, _______, MY_CALC, + KC_RCTL, KB_BOL, _______, KC_PGDN, _______, TD(TD_G), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, + _______, _______, KC_DEL, _______, _______, BK_WRD, _______, _______, _______, _______, _______, _______, KC_NO, + KC_RCTL, MY_RGUI, MY_RALT, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ), [_KP] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_ASTERISK, _______, _______, _______, _______, _______, - KC_NUMLOCK, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, _______, _______, _______, - _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, _______, _______, TG(_KP), - _______, _______, _______, KC_KP_0, KC_KP_DOT, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_ASTERISK, _______, _______, _______, _______, _______, _______, + KC_NUMLOCK, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, _______, TG(_KP), + _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, _______, _______, _______, _______ ), [_ADJUST] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, _______, KC_MUTE, - _______, RGB_RMOD, RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, TG(_KP), _______, _______, _______, KC_MPLY, - _______, RGB_TOG, KB_MAKE, KB_FLSH, KB_VRSN, KB_BOOT, _______, TG_SYS, _______, _______, _______, _______, KC_DEL, _______, - _______, MY_RGUI, MY_RALT, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT + 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_SLCK, KC_F13, + _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_BRID, KC_BRIU, KC_MUTE, + KC_RCTL, RGB_RMOD, RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, TG(_KP), _______, _______, _______, KC_MPLY, + _______, RGB_TOG, KB_MAKE, KB_FLSH, KB_VRSN, KB_BOOT, _______, TG_SYS, _______, _______, _______, _______, _______, + KC_RCTL, MY_RGUI, MY_RALT, KC_DEL, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT ), }; +const rgblight_segment_t PROGMEM rpt_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {8, 8, HSV_PINK} +); + const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 1, HSV_RED}, {7, 2, HSV_RED}, @@ -118,7 +161,7 @@ const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS( ); const rgblight_segment_t PROGMEM func_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 8, HSV_GREEN} + {0, 16, HSV_GREEN} ); const rgblight_segment_t PROGMEM kp_layer[] = RGBLIGHT_LAYER_SEGMENTS( @@ -140,6 +183,7 @@ const rgblight_segment_t PROGMEM numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS( enum rgb_layer_index { + L_RPT, L_GAME, L_FUNC, L_KP, @@ -149,6 +193,7 @@ enum rgb_layer_index { }; const rgblight_segment_t * const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + [L_RPT] = rpt_layer, [L_GAME] = game_layer, [L_FUNC] = func_layer, [L_KP] = kp_layer, @@ -158,13 +203,14 @@ const rgblight_segment_t * const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( ); layer_state_t layer_state_set_keymap(layer_state_t state) { + rgblight_set_layer_state(L_RPT, layer_state_cmp(state, _RPT)); rgblight_set_layer_state(L_GAME, layer_state_cmp(state, _GAME)); rgblight_set_layer_state(L_FUNC, layer_state_cmp(state, _FUNC)); rgblight_set_layer_state(L_KP, layer_state_cmp(state, _KP)); rgblight_set_layer_state(L_ADJUST, layer_state_cmp(state, _ADJUST)); rgblight_set_layer_state(L_CAPSLOCK, CAPSLOCK_ON); rgblight_set_layer_state(L_NUMLOCK, NUMLOCK_ON && layer_state_cmp(state, _KP)); - if (layer_state_cmp(state, _GAME)) + if (layer_state_cmp(state, _GAME) || layer_state_cmp(state, _RPT)) autoshift_disable(); else autoshift_enable(); @@ -180,6 +226,7 @@ bool led_update_user(led_t led_state) { void keyboard_post_init_keymap(void) { rgblight_layers = my_rgb_layers; rgb_was_enabled = rgblight_is_enabled(); + bspc_timer = 0; } LEADER_EXTERNS(); @@ -194,86 +241,116 @@ void matrix_scan_keymap(void) { rgblight_disable_noeeprom(); rgb_idle_seconds = 0; } + // if MY_BSPC is held down too long, pretend like it wasn't and start + // pressing backspace + if (bspc_timer > 0 && timer_elapsed(bspc_timer) > LEADER_TIMEOUT) { + layer_off(_FUNC); + bspc_timer = 0; + register_code(KC_BSPC); + } LEADER_DICTIONARY() { leading = false; leader_end(); - SEQ_ONE_KEY(KC_K) { - layer_invert(_KP); - } - SEQ_ONE_KEY(KC_G) { - layer_invert(_GAME); - } - SEQ_ONE_KEY(KC_KP_5) { - layer_invert(_KP); - } - SEQ_TWO_KEYS(KC_SCLN, KC_1) { - send_secret_string(0); - } - SEQ_TWO_KEYS(KC_SCLN, KC_2) { - send_secret_string(1); - } - SEQ_TWO_KEYS(KC_SCLN, KC_3) { - send_secret_string(2); - } - SEQ_TWO_KEYS(KC_SCLN, KC_4) { - send_secret_string(3); - } - SEQ_TWO_KEYS(KC_SCLN, KC_5) { - send_secret_string(4); - } - SEQ_TWO_KEYS(KC_SCLN, KC_6) { - send_secret_string(5); - } - SEQ_TWO_KEYS(KC_SCLN, KC_M) { - send_secret_string(0); - } - SEQ_TWO_KEYS(KC_SCLN, KC_COMM) { - send_secret_string(1); - } - SEQ_TWO_KEYS(KC_SCLN, KC_DOT) { - send_secret_string(2); - } - SEQ_TWO_KEYS(KC_SCLN, KC_J) { - send_secret_string(3); - } - SEQ_TWO_KEYS(KC_SCLN, KC_K) { - send_secret_string(4); - } - SEQ_TWO_KEYS(KC_SCLN, KC_L) { - send_secret_string(5); - } - SEQ_ONE_KEY(KC_C) { - tap_code16(C(KC_C)); + // layer navigation + SEQ_ONE_KEY(KC_R) { layer_invert(_RPT); } + SEQ_ONE_KEY(KC_G) { layer_invert(_GAME); } + SEQ_ONE_KEY(KC_K) { layer_invert(_KP); } + SEQ_ONE_KEY(KC_KP_5) { layer_invert(_KP); } + + // tmux navigation + SEQ_ONE_KEY(KC_L) { SEND_STRING(SS_LCTL("a") "n"); } + SEQ_ONE_KEY(KC_H) { SEND_STRING(SS_LCTL("a") "p"); } + SEQ_ONE_KEY(KC_N) { SEND_STRING(SS_LCTL("a") "c"); } + SEQ_ONE_KEY(KC_W) { SEND_STRING(SS_LCTL("a") "x"); } + SEQ_ONE_KEY(KC_MINS) { SEND_STRING(SS_LCTL("a") "-"); } + SEQ_ONE_KEY(KC_QUOT) { SEND_STRING(SS_LCTL("a") "\""); } + SEQ_ONE_KEY(KC_1) { SEND_STRING(SS_LCTL("a") "1"); } + SEQ_ONE_KEY(KC_2) { SEND_STRING(SS_LCTL("a") "2"); } + SEQ_ONE_KEY(KC_3) { SEND_STRING(SS_LCTL("a") "3"); } + SEQ_ONE_KEY(KC_4) { SEND_STRING(SS_LCTL("a") "4"); } + SEQ_ONE_KEY(KC_5) { SEND_STRING(SS_LCTL("a") "5"); } + SEQ_ONE_KEY(KC_6) { SEND_STRING(SS_LCTL("a") "6"); } + SEQ_ONE_KEY(KC_7) { SEND_STRING(SS_LCTL("a") "7"); } + SEQ_ONE_KEY(KC_8) { SEND_STRING(SS_LCTL("a") "8"); } + SEQ_ONE_KEY(KC_9) { SEND_STRING(SS_LCTL("a") "9"); } + + // secrets + SEQ_TWO_KEYS(KC_SCLN, KC_M) { send_secret_string(0); } + SEQ_TWO_KEYS(KC_SCLN, KC_COMM) { send_secret_string(1); } + SEQ_TWO_KEYS(KC_SCLN, KC_DOT) { send_secret_string(2); } + SEQ_TWO_KEYS(KC_SCLN, KC_J) { send_secret_string(3); } + SEQ_TWO_KEYS(KC_SCLN, KC_K) { send_secret_string(4); } + SEQ_TWO_KEYS(KC_SCLN, KC_L) { send_secret_string(5); } + + // fast control-C + SEQ_ONE_KEY(KC_C) { tap_code16(C(KC_C)); } + + // neovim: terminal escape + SEQ_ONE_KEY(KC_BSLS) { + tap_code16(C(KC_BSLS)); + tap_code16(C(KC_N)); } } } bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - static uint16_t gesc_timer; + static bool bspc_del = false; + static bool bspc_initiated_func = false; + bool rc = true; rgb_idle_seconds = 0; if (!rgblight_is_enabled() && rgb_was_enabled) rgblight_enable_noeeprom(); switch (keycode) { - // custom handle KC_GESC to emulate auto shift on it - case KC_GESC: - if (get_autoshift_state()) { - if (record->event.pressed) - gesc_timer = timer_read(); - else { - if (timer_elapsed(gesc_timer) > AUTO_SHIFT_TIMEOUT || MODS_SHIFT) { - tap_code16(S(KC_GRV)); - } else if (MODS_GUI) - tap_code(KC_GRV); - else - tap_code(KC_ESC); + case MY_BSPC: + if (record->event.pressed) { + if (IS_LAYER_ON(_FUNC)) { + // special case: if _FUNC was turned on by another key, + // treat this as KC_DEL and don't do anything else + bspc_del = true; + register_code(KC_DEL); + return false; + } else { + bspc_timer = timer_read(); + bspc_initiated_func = true; + layer_on(_FUNC); + } + } else { + if (bspc_del) { + // special case: if _FUNC was turned on by another key, + // treat this as KC_DEL and don't do anything else + unregister_code(KC_DEL); + bspc_del = false; + return false; + } + + if (bspc_initiated_func) { + layer_off(_FUNC); + bspc_initiated_func = false; + } + + if (bspc_timer > 0) { + // here the key was pressed and released before the timer + // expired, so treat as a backspace tap and pretend we + // never activated _FUNC + bspc_timer = 0; + tap_code(KC_BSPC); + } else { + // the timer went off, so KC_BSPC was registered in + // matrix_scan_keymap. unregister it now + unregister_code(KC_BSPC); } - return false; } - return false; + return false; // special case, return now without resetting timer + // other paths should set rc and break + break; } - return true; + // if something was pressed while MY_BSPC was held down, keep it pressed by + // disabling the timer + bspc_timer = 0; + return rc; } + diff --git a/keyboards/dz60/keymaps/jdelkins/rules.mk b/keyboards/dz60/keymaps/jdelkins/rules.mk index b0a4f73dd779..2eacc54ea108 100644 --- a/keyboards/dz60/keymaps/jdelkins/rules.mk +++ b/keyboards/dz60/keymaps/jdelkins/rules.mk @@ -1,7 +1,7 @@ LEADER_ENABLE = yes -MOUSEKEY_ENABLE = yes +MOUSEKEY_ENABLE = no CONSOLE_ENABLE = no NKRO_ENABLE = no TAP_DANCE_ENABLE = yes -LTO_ENABLE = yes AUTO_SHIFT_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/dz60/keymaps/jdelkins_ss/config.h b/keyboards/dz60/keymaps/jdelkins_ss/config.h deleted file mode 100644 index e023d3452baf..000000000000 --- a/keyboards/dz60/keymaps/jdelkins_ss/config.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright 2020 Joel Elkins - - 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 - -/* My hhkb variant - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │10 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │20 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ - * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3e │ - * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┤ - * │40 │41 │43 │44 │46 │48 │4a │4b │4c │4d │4e │ - * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┘ - */ - -#define LAYOUT_hhkb_split( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ - k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ - k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ - k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ - k40, k41, k43, k44, k46, k48, k4a, k4b, k4c, k4d, k4e \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ - { k10, KC_NO, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ - { k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, k3e }, \ - { k40, k41, KC_NO, k43, k44, KC_NO, k46, KC_NO, k48, KC_NO, k4a, k4b, k4c, k4d, k4e } \ -} - -#define AUTO_SHIFT_TIMEOUT 165 -#define RGBLIGHT_LAYERS -#define LEADER_TIMEOUT 400 -#define LEADER_PER_KEY_TIMING diff --git a/keyboards/dz60/keymaps/jdelkins_ss/keymap.c b/keyboards/dz60/keymaps/jdelkins_ss/keymap.c deleted file mode 100644 index 2744c43727f6..000000000000 --- a/keyboards/dz60/keymaps/jdelkins_ss/keymap.c +++ /dev/null @@ -1,367 +0,0 @@ -/* - Copyright 2020 Joel Elkins - - 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 "jdelkins.h" - -#undef LAYOUT -#define LAYOUT LAYOUT_hhkb_split - -#define IDLE_TIMEOUT 360 -uint16_t rgb_idle_seconds = 0; -uint16_t rgb_timer; -uint16_t bspc_timer; -bool rgb_was_enabled; - -enum { - MY_BSPC = USER_SAFE_RANGE, -}; - -// Tap Dance - -int ctl_state = 0; - -void ctl_finished(qk_tap_dance_state_t *state, void *user_data) { - ctl_state = cur_dance(state); - switch (ctl_state) { - case SINGLE_TAP: qk_leader_start(); break; - case SINGLE_HOLD: register_code(KC_LCTL); break; - case DOUBLE_TAP: tap_code(KC_RCTL); break; - case DOUBLE_HOLD: register_code(KC_RCTL); break; - case TRIPLE_TAP: tap_code(KC_RCTL); tap_code(KC_RCTL); break; - case TRIPLE_HOLD: tap_code(KC_RCTL); register_code(KC_RCTL); break; - } -} - -void ctl_reset(qk_tap_dance_state_t *state, void *user_data) { - switch (ctl_state) { - case SINGLE_HOLD: unregister_code(KC_LCTL); break; - case DOUBLE_HOLD: - case TRIPLE_HOLD: unregister_code(KC_RCTL); break; - } - ctl_state = 0; -} - -void g_finished(qk_tap_dance_state_t *state, void *user_data) { - switch (cur_dance(state)) { - case SINGLE_TAP: - tap_code16(C(KC_END)); - break; - case DOUBLE_TAP: - tap_code16(C(KC_HOME)); - break; - } -} - -int kp_state = 0; - -void kp_finished(qk_tap_dance_state_t *state, void *user_data) { - kp_state = hold_cur_dance(state); - switch (kp_state) { - case SINGLE_TAP: - tap_code(KC_SPC); - break; - default: - layer_invert(_KP); - break; - } -} - -void kp_reset(qk_tap_dance_state_t *state, void *user_data) { - switch (kp_state) { - case SINGLE_HOLD: - case DOUBLE_HOLD: - case TRIPLE_HOLD: - layer_invert(_KP); - break; - } -} - -enum { - TD_LDCTL, - TD_G, - TD_KP, -}; - -qk_tap_dance_action_t tap_dance_actions[] = { - [TD_LDCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_finished, ctl_reset), - [TD_G] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, g_finished, NULL), - [TD_KP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, kp_finished, kp_reset), -}; - -// Layers - -const uint16_t PROGMEM keymaps[_LAYER_MAX][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - MY_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(_ADJUST), - TD(TD_LDCTL), MY_GUI, MY_ALT, MY_BSPC, TD(TD_KP), MY_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), - [_RPT] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_GAME] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_LALT, KC_SPC, KC_LALT, _______, _______, _______, _______, _______, _______ - ), - [_FUNC] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_F13, - _______, _______, FW_WRD, KB_EOL, TG(_RPT), _______, KB_COPY, KC_PGUP, _______, _______, KB_PASTE, KC_SLCK, _______, MY_CALC, - _______, KB_BOL, _______, KC_PGDN, _______, TD(TD_G), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, - _______, _______, KC_DEL, _______, _______, BK_WRD, _______, _______, _______, _______, _______, _______, KC_NO, - _______, MY_RGUI, MY_RALT, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END - ), - [_KP] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_ASTERISK, _______, _______, _______, _______, _______, _______, - KC_NUMLOCK, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, _______, _______, _______, - _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, _______, TG(_KP), - _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, _______, _______, _______, _______ - ), - [_ADJUST] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_F13, - _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, _______, KC_MUTE, - _______, RGB_RMOD, RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, TG(_KP), _______, _______, _______, KC_MPLY, - _______, RGB_TOG, KB_MAKE, KB_FLSH, KB_VRSN, KB_BOOT, _______, TG_SYS, _______, _______, _______, _______, _______, - _______, MY_RGUI, MY_RALT, KC_DEL, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT - ), -}; - -const rgblight_segment_t PROGMEM rpt_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {8, 8, HSV_PINK} -); - -const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 1, HSV_RED}, - {7, 2, HSV_RED}, - {15, 1, HSV_RED} -); - -const rgblight_segment_t PROGMEM func_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 8, HSV_GREEN} -); - -const rgblight_segment_t PROGMEM kp_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 16, HSV_ORANGE} -); - -const rgblight_segment_t PROGMEM adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 16, HSV_BLUE} -); - -const rgblight_segment_t PROGMEM capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {10, 4, HSV_WHITE} -); - -const rgblight_segment_t PROGMEM numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 2, HSV_PURPLE}, - {14, 2, HSV_PURPLE} -); - - -enum rgb_layer_index { - L_RPT, - L_GAME, - L_FUNC, - L_KP, - L_ADJUST, - L_CAPSLOCK, - L_NUMLOCK, -}; - -const rgblight_segment_t * const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - [L_RPT] = rpt_layer, - [L_GAME] = game_layer, - [L_FUNC] = func_layer, - [L_KP] = kp_layer, - [L_ADJUST] = adjust_layer, - [L_CAPSLOCK] = capslock_layer, - [L_NUMLOCK] = numlock_layer -); - -layer_state_t layer_state_set_keymap(layer_state_t state) { - rgblight_set_layer_state(L_RPT, layer_state_cmp(state, _RPT)); - rgblight_set_layer_state(L_GAME, layer_state_cmp(state, _GAME)); - rgblight_set_layer_state(L_FUNC, layer_state_cmp(state, _FUNC)); - rgblight_set_layer_state(L_KP, layer_state_cmp(state, _KP)); - rgblight_set_layer_state(L_ADJUST, layer_state_cmp(state, _ADJUST)); - rgblight_set_layer_state(L_CAPSLOCK, CAPSLOCK_ON); - rgblight_set_layer_state(L_NUMLOCK, NUMLOCK_ON && layer_state_cmp(state, _KP)); - if (layer_state_cmp(state, _GAME) || layer_state_cmp(state, _RPT)) - autoshift_disable(); - else - autoshift_enable(); - return state; -} - -bool led_update_user(led_t led_state) { - rgblight_set_layer_state(L_CAPSLOCK, led_state.caps_lock); - rgblight_set_layer_state(L_NUMLOCK, led_state.num_lock && layer_state_is(_KP)); - return true; -} - -void keyboard_post_init_keymap(void) { - rgblight_layers = my_rgb_layers; - rgb_was_enabled = rgblight_is_enabled(); - bspc_timer = 0; -} - -LEADER_EXTERNS(); - -void matrix_scan_keymap(void) { - if (rgblight_is_enabled() && timer_elapsed(rgb_timer) > 1000) { - rgb_idle_seconds++; - rgb_timer = timer_read(); - } - if (rgb_idle_seconds > IDLE_TIMEOUT) { - rgb_was_enabled = rgblight_is_enabled(); - rgblight_disable_noeeprom(); - rgb_idle_seconds = 0; - } - // if MY_BSPC is held down too long, pretend like it wasn't and start - // pressing backspace - if (bspc_timer > 0 && timer_elapsed(bspc_timer) > LEADER_TIMEOUT) { - layer_off(_FUNC); - bspc_timer = 0; - register_code(KC_BSPC); - } - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - SEQ_ONE_KEY(KC_R) { - layer_invert(_RPT); - } - SEQ_ONE_KEY(KC_G) { - layer_invert(_GAME); - } - SEQ_ONE_KEY(KC_K) { - layer_invert(_KP); - } - SEQ_ONE_KEY(KC_KP_5) { - layer_invert(_KP); - } - SEQ_TWO_KEYS(KC_SCLN, KC_1) { - send_secret_string(0); - } - SEQ_TWO_KEYS(KC_SCLN, KC_2) { - send_secret_string(1); - } - SEQ_TWO_KEYS(KC_SCLN, KC_3) { - send_secret_string(2); - } - SEQ_TWO_KEYS(KC_SCLN, KC_4) { - send_secret_string(3); - } - SEQ_TWO_KEYS(KC_SCLN, KC_5) { - send_secret_string(4); - } - SEQ_TWO_KEYS(KC_SCLN, KC_6) { - send_secret_string(5); - } - SEQ_TWO_KEYS(KC_SCLN, KC_M) { - send_secret_string(0); - } - SEQ_TWO_KEYS(KC_SCLN, KC_COMM) { - send_secret_string(1); - } - SEQ_TWO_KEYS(KC_SCLN, KC_DOT) { - send_secret_string(2); - } - SEQ_TWO_KEYS(KC_SCLN, KC_J) { - send_secret_string(3); - } - SEQ_TWO_KEYS(KC_SCLN, KC_K) { - send_secret_string(4); - } - SEQ_TWO_KEYS(KC_SCLN, KC_L) { - send_secret_string(5); - } - SEQ_ONE_KEY(KC_C) { - tap_code16(C(KC_C)); - } - } -} - -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - static bool bspc_del = false; - static bool bspc_initiated_func = false; - bool rc = true; - - rgb_idle_seconds = 0; - if (!rgblight_is_enabled() && rgb_was_enabled) - rgblight_enable_noeeprom(); - - switch (keycode) { - case MY_BSPC: - if (record->event.pressed) { - if (IS_LAYER_ON(_FUNC)) { - // special case: if _FUNC was turned on by another key, - // treat this as KC_DEL and don't do anything else - bspc_del = true; - register_code(KC_DEL); - return false; - } else { - bspc_timer = timer_read(); - bspc_initiated_func = true; - layer_on(_FUNC); - } - } else { - if (bspc_del) { - // special case: if _FUNC was turned on by another key, - // treat this as KC_DEL and don't do anything else - unregister_code(KC_DEL); - bspc_del = false; - return false; - } - - if (bspc_initiated_func) { - layer_off(_FUNC); - bspc_initiated_func = false; - } - - if (bspc_timer > 0) { - // here the key was pressed and released before the timer - // expired, so treat as a backspace tap and pretend we - // never activated _FUNC - bspc_timer = 0; - tap_code(KC_BSPC); - } else { - // the timer went off, so KC_BSPC was registered in - // matrix_scan_keymap. unregister it now - unregister_code(KC_BSPC); - } - } - return false; // special case, return now without resetting timer - // other paths should set rc and break - break; - } - - // if something was pressed while MY_BSPC was held down, keep it pressed by - // disabling the timer - bspc_timer = 0; - return rc; -} - diff --git a/keyboards/dz60/keymaps/jdelkins_ss/rules.mk b/keyboards/dz60/keymaps/jdelkins_ss/rules.mk deleted file mode 100644 index 49346a80e455..000000000000 --- a/keyboards/dz60/keymaps/jdelkins_ss/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -LEADER_ENABLE = yes -MOUSEKEY_ENABLE = yes -CONSOLE_ENABLE = no -NKRO_ENABLE = no -TAP_DANCE_ENABLE = yes -AUTO_SHIFT_ENABLE = yes -LTO_ENABLE = yes -USER_NAME := jdelkins diff --git a/keyboards/planck/keymaps/jdelkins/config.h b/keyboards/planck/keymaps/jdelkins/config.h index e09fafc663bf..67ebf4695581 100644 --- a/keyboards/planck/keymaps/jdelkins/config.h +++ b/keyboards/planck/keymaps/jdelkins/config.h @@ -53,6 +53,9 @@ // Most tactile encoders have detents every 4 stages #define ENCODER_RESOLUTION 4 -#define AUTO_SHIFT_TIMEOUT 165 +#define AUTO_SHIFT_TIMEOUT 160 +#define AUTO_SHIFT_REPEAT +#define RGBLIGHT_LAYERS #define LEADER_TIMEOUT 400 #define LEADER_PER_KEY_TIMING +#define USB_MAX_POWER_CONSUMPTION 100 diff --git a/keyboards/planck/keymaps/jdelkins/keymap.c b/keyboards/planck/keymaps/jdelkins/keymap.c index 3d109e9e8cff..9ae05afa3691 100644 --- a/keyboards/planck/keymaps/jdelkins/keymap.c +++ b/keyboards/planck/keymaps/jdelkins/keymap.c @@ -122,47 +122,47 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TD(TD_LDCTL), MO(_ADJUST), MY_GUI, MY_ALT, MY_BSPC, MY_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), -[_GAME] = LAYOUT( +/* Same as _QWERTY but disable wutoshift */ +[_RPT] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_NO, KC_LALT, RAISE, KC_SPC, KC_SPC, _______, _______, _______, _______ -), - -[_RAISE] = LAYOUT( - KC_ESC, _______, FW_WRD, KB_EOL, _______, _______, KB_COPY, KC_PGUP, _______, KC_LPRN, KC_RPRN, KC_MINS, - _______, KB_BOL, _______, KC_PGDN, _______, TD(TD_G), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_BSLS, - _______, _______, KC_DEL, _______, KB_PASTE, BK_WRD, _______, _______, _______, _______, _______, KC_CALC, - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -/* Same as _QWERTY but disable autoshift */ -[_RPT] = LAYOUT( +[_GAME] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, KC_BSPC, KC_SPC, _______, _______, _______, _______ + _______, KC_NO, KC_LALT, RAISE, KC_SPC, KC_SPC, _______, _______, _______, _______ +), + +[_RAISE] = LAYOUT( + KC_ESC, _______, FW_WRD, KB_EOL, TG(_RPT), _______, KB_COPY, KC_PGUP, _______, KC_LPRN, KC_RPRN, KC_MINS, + KC_RCTL, KB_BOL, _______, KC_PGDN, _______, TD(TD_G), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_BSLS, + _______, _______, KC_DEL, KC_CAPS, KB_PASTE, BK_WRD, _______, _______, _______, _______, _______, MY_CALC, + KC_RCTL, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ), [_KP] = LAYOUT( - KC_NUMLOCK, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_7, KC_8, KC_9, KC_MINS, KC_EQL, + KC_ESC, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_7, KC_8, KC_9, KC_MINS, KC_EQL, _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_ASTR, _______, - _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_SLSH, _______, + KC_NUMLOCK, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_PLUS, KC_END ), [_LOWER] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_EQL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, KC_PIPE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, KC_MPLY, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RCBR, KC_EQL, + _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, _______, _______, KC_LBRC, KC_RBRC, KC_PIPE, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, _______, KC_HOME, KC_END, KC_MPLY, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT ), [_ADJUST] = LAYOUT( _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, - _______, RGB_TOG, KB_MAKE, KB_FLSH, KB_VRSN, KB_BOOT, _______, TG_SYS, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + KC_RCTL, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, TG(_KP), KC_BRID, KC_BRIU, KC_MUTE, + _______, RGB_TOG, KB_MAKE, KB_FLSH, KB_VRSN, KB_BOOT, _______, TG_SYS, _______, _______, _______, KC_MPLY, + KC_RCTL, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT ) /* [_ADJUST] = LAYOUT( */ @@ -174,12 +174,85 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; +/* plwnck rev6 RGB layout: + * ---------------------------------- + * | 6 5 4 3 | + * | 0 | + * | 7 8 1 2 | + * ---------------------------------- + */ + +const rgblight_segment_t PROGMEM rpt_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {1, 2, HSV_PINK}, + {7, 2, HSV_PINK} +); + +const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {2, 2, HSV_RED}, + {6, 2, HSV_RED} +); + +const rgblight_segment_t PROGMEM raise_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {3, 4, HSV_GREEN} +); + +const rgblight_segment_t PROGMEM kp_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {1, 8, HSV_ORANGE} +); + +const rgblight_segment_t PROGMEM lower_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {3, 4, HSV_BLUE} +); + +const rgblight_segment_t PROGMEM adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {1, 8, HSV_BLUE} +); + +const rgblight_segment_t PROGMEM capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {1, 1, HSV_WHITE}, + {8, 1, HSV_WHITE} +); + +const rgblight_segment_t PROGMEM numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {6, 2, HSV_PURPLE} +); + +enum rgb_layer_index { + L_RPT, + L_GAME, + L_RAISE, + L_KP, + L_LOWER, + L_ADJUST, + L_CAPSLOCK, + L_NUMLOCK +}; + +const rgblight_segment_t * const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + [L_RPT] = rpt_layer, + [L_GAME] = game_layer, + [L_RAISE] = raise_layer, + [L_KP] = kp_layer, + [L_LOWER] = lower_layer, + [L_ADJUST] = adjust_layer, + [L_CAPSLOCK] = capslock_layer, + [L_NUMLOCK] = numlock_layer +); + #ifdef AUDIO_ENABLE float plover_song[][2] = SONG(PLOVER_SOUND); float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); #endif layer_state_t layer_state_set_keymap(layer_state_t state) { + rgblight_set_layer_state(L_RPT, layer_state_cmp(state, _RPT)); + rgblight_set_layer_state(L_GAME, layer_state_cmp(state, _GAME)); + rgblight_set_layer_state(L_RAISE, layer_state_cmp(state, _RAISE)); + rgblight_set_layer_state(L_KP, layer_state_cmp(state, _KP)); + rgblight_set_layer_state(L_LOWER, layer_state_cmp(state, _LOWER)); + rgblight_set_layer_state(L_ADJUST, layer_state_cmp(state, _ADJUST)); + rgblight_set_layer_state(L_CAPSLOCK, CAPSLOCK_ON); + rgblight_set_layer_state(L_NUMLOCK, NUMLOCK_ON && layer_state_cmp(state, _KP)); if (layer_state_cmp(state, _GAME) || layer_state_cmp(state, _RPT)) autoshift_disable(); else @@ -187,6 +260,12 @@ layer_state_t layer_state_set_keymap(layer_state_t state) { return update_tri_layer_state(state, _KP, _RAISE, _LOWER); } +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(L_CAPSLOCK, led_state.caps_lock); + rgblight_set_layer_state(L_NUMLOCK, led_state.num_lock && layer_state_is(_KP)); + return true; +} + bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { bool rc = true; static bool bspc_del = false; @@ -323,6 +402,7 @@ void dip_switch_update_user(uint8_t index, bool active) { } void keyboard_post_init_keymap(void) { + rgblight_layers = my_rgb_layers; bspc_timer = 0; } @@ -409,6 +489,11 @@ void matrix_scan_keymap(void) { SEQ_ONE_KEY(KC_C) { tap_code16(C(KC_C)); } + // neovim: terminal escape + SEQ_ONE_KEY(KC_QUOT) { + tap_code16(C(KC_BSLS)); + tap_code16(C(KC_N)); + } } } diff --git a/users/jdelkins/jdelkins.c b/users/jdelkins/jdelkins.c index 7577512ec552..e7bef607c99c 100644 --- a/users/jdelkins/jdelkins.c +++ b/users/jdelkins/jdelkins.c @@ -193,7 +193,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KB_MAKE: if (!get_mods()) { if (!record->event.pressed) +#ifdef NO_SECRETS + SEND_STRING("make NO_SECRETS=1 " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER)); +#else SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER)); +#endif return false; } break; @@ -201,10 +205,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KB_VRSN: if (!get_mods()) { if (!record->event.pressed) { +#ifdef DO_SECRETS +# define SECRET_MSG " (with secrets)" +#else +# define SECRET_MSG +#endif if (user_config.system_mac) { - SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " (mac mode)"); + SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " (mac mode)" SECRET_MSG); } else { - SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " (non-mac mode)"); + SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " (non-mac mode)" SECRET_MSG); } } return false; @@ -227,7 +236,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KB_FLSH: if (!get_mods()) { if (!record->event.pressed) { +#ifdef NO_SECRETS + SEND_STRING("make NO_SECRETS=1 " QMK_KEYBOARD ":" QMK_KEYMAP ":flash\n"); +#else SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":flash\n"); +#endif reset_keyboard(); } return false; @@ -235,7 +248,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; #ifdef DO_SECRETS - case KC_SECRET_1 ... KC_SECRET_5: // Secrets! Externally defined strings, not stored in repo + case KC_SECRET_1 ... KC_SECRET_6: // Secrets! Externally defined strings, not stored in repo if (!record->event.pressed) { clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); send_secret_string(keycode - KC_SECRET_1); diff --git a/users/jdelkins/rules.mk b/users/jdelkins/rules.mk index b9d377b28176..76d391d7000c 100644 --- a/users/jdelkins/rules.mk +++ b/users/jdelkins/rules.mk @@ -1,10 +1,15 @@ SRC += jdelkins.c -ifeq ($(strip $(NO_SECRETS)), yes) - OPT_DEFS += -DNO_SECRETS +ifneq ($(strip $(NO_SECRETS)),) + OPT_DEFS += -DNO_SECRETS endif +ifeq ($(shell test -f users/jdelkins/secrets.h.gpg && echo yes || echo no),yes) +users/jdelkins/jdelkins.c: users/jdelkins/secrets.h + touch $@ + users/jdelkins/secrets.h: users/jdelkins/secrets.h.gpg gpg -d $< >$@ +endif BOOTMAGIC_ENABLE = no From 0972789e763c8cde4729dd268b48001aac8222fe Mon Sep 17 00:00:00 2001 From: steve ulrich Date: Fri, 13 Aug 2021 14:29:51 -0500 Subject: [PATCH 244/328] [Keymap] adds sulrich crkbd (corne) personal keymap (#13186) --- keyboards/crkbd/keymaps/sulrich/README.md | 72 ++++++++++ keyboards/crkbd/keymaps/sulrich/config.h | 36 +++++ keyboards/crkbd/keymaps/sulrich/keymap.c | 156 ++++++++++++++++++++++ keyboards/crkbd/keymaps/sulrich/rules.mk | 2 + 4 files changed, 266 insertions(+) create mode 100644 keyboards/crkbd/keymaps/sulrich/README.md create mode 100644 keyboards/crkbd/keymaps/sulrich/config.h create mode 100644 keyboards/crkbd/keymaps/sulrich/keymap.c create mode 100644 keyboards/crkbd/keymaps/sulrich/rules.mk diff --git a/keyboards/crkbd/keymaps/sulrich/README.md b/keyboards/crkbd/keymaps/sulrich/README.md new file mode 100644 index 000000000000..0bb585aa2eac --- /dev/null +++ b/keyboards/crkbd/keymaps/sulrich/README.md @@ -0,0 +1,72 @@ +# sulrich crkbd layout + +this is the personal keyboard layout of [@sulrich](https://github.com/sulrich), +and is heavily oriented towards operation in the Mac OS environment. + +there are no LED rules in this keymap and the OLED display uses the default +corne images + +## layout notes + +this layout uses a standard QWERTY layout on the default layer followed by a +separate layer for symbols and numbers (and F-keys) + +### thumb cluster: left + +this contains the Mac OS modifier keys as well as the enter key. these are +transparently mapped through the remaining layers with the exception of the +enter key which is toggled to backspace on the symbols layer. + +### thumb cluster: right + +the largest right thumb button provides the space and the layer toggles. + +### default layer +```text + //,-----------------------------------------------------. ,-----------------------------------------------------. + TAB, Q, W, E, R, T, Y, U, I, O, P, \, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LCTL, A, S, D, F, G, H, J, K, L, ;, ', + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LSFT, Z, X, C, V, B, N, M, ,, ., /, RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + OPT, CMD, ENTER, SPC, MO(1), MO(2) + //`--------------------------' `--------------------------' +``` + +### symbols layer [1] + +this layer contains all of the standard symbols. the arrow keys are mapped to +the default vi bindings for single character motion (h, j, k, l). + +```text + //,-----------------------------------------------------. ,-----------------------------------------------------. + ESC, !, @, {, }, |, ^, +, =, -, *, , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , #, $, (, ), `, LEFT, DOWN, UP, RIGHT, , ENTER, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , %, ^, [, ], ~, _, &, <, >, \, , + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + OPT, CMD, BSPACE, SPC, MO(1), MO(2) + //`--------------------------' `--------------------------' +``` + +### number/media layer [2] + +this layer has all of the numbers and the F-keys mapped to reasonably intuitive +locations. additionally, media controls allow for quick access to volume and +track changes. + +```text + //,-----------------------------------------------------. ,-----------------------------------------------------. + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, F12, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , PREV, PLAY, NEXT, VOL_DN, VOL_UP, , MUTE, , , , , + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + OPT, CMD, ENTER, SPC, MO(1), MO(2) + //`--------------------------' `--------------------------' + +``` + diff --git a/keyboards/crkbd/keymaps/sulrich/config.h b/keyboards/crkbd/keymaps/sulrich/config.h new file mode 100644 index 000000000000..29b1f44191d0 --- /dev/null +++ b/keyboards/crkbd/keymaps/sulrich/config.h @@ -0,0 +1,36 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* select hand configuration */ +#define MASTER_LEFT + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/sulrich/keymap.c b/keyboards/crkbd/keymaps/sulrich/keymap.c new file mode 100644 index 000000000000..4e75d5bddd57 --- /dev/null +++ b/keyboards/crkbd/keymaps/sulrich/keymap.c @@ -0,0 +1,156 @@ +/* +Copyright 2021 @sulrich + +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_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LOPT, KC_LGUI, KC_ENT, KC_SPC, MO(1), MO(2) + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_CIRC, KC_PLUS,KC_EQUAL,KC_MINUS, KC_ASTR, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN,KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, KC_TRNS,KC_ENTER, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_UNDS, KC_AMPR, KC_LABK, KC_RABK,KC_BSLASH,KC_TRNS, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS,KC_BSPACE, KC_TRNS, KC_TRNS, KC_TRNS + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + 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_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS + //`--------------------------' `--------------------------' + ) +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_SYMBOLS 2 +#define L_NUMBERS 4 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("default"), false); + break; + case L_SYMBOLS: + oled_write_ln_P(PSTR("symbols"), false); + break; + case L_NUMBERS: + oled_write_ln_P(PSTR("numbers/media"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE + diff --git a/keyboards/crkbd/keymaps/sulrich/rules.mk b/keyboards/crkbd/keymaps/sulrich/rules.mk new file mode 100644 index 000000000000..5ec4f05875ef --- /dev/null +++ b/keyboards/crkbd/keymaps/sulrich/rules.mk @@ -0,0 +1,2 @@ +EXTRAKEY_ENABLE = yes +OLED_DRIVER_ENABLE = yes From 0f0ebde0aa51b2d9bd9a817c0c6c2c5ef53e16e9 Mon Sep 17 00:00:00 2001 From: DonutCables Date: Fri, 13 Aug 2021 15:30:38 -0400 Subject: [PATCH 245/328] [Keyboard] Updates to ScrabblePad (#13177) Co-authored-by: Ryan --- keyboards/donutcables/scrabblepad/config.h | 143 +++++++----------- .../scrabblepad/keymaps/default/keymap.c | 87 +++++------ .../scrabblepad/keymaps/default/readme.md | 2 +- .../scrabblepad/keymaps/via/keymap.c | 92 +++++++++++ .../scrabblepad/keymaps/via/readme.md | 5 + .../scrabblepad/keymaps/via/rules.mk | 2 + keyboards/donutcables/scrabblepad/rules.mk | 28 ++-- .../donutcables/scrabblepad/scrabblepad.c | 29 +--- .../donutcables/scrabblepad/scrabblepad.h | 3 +- 9 files changed, 204 insertions(+), 187 deletions(-) create mode 100644 keyboards/donutcables/scrabblepad/keymaps/via/keymap.c create mode 100644 keyboards/donutcables/scrabblepad/keymaps/via/readme.md create mode 100644 keyboards/donutcables/scrabblepad/keymaps/via/rules.mk diff --git a/keyboards/donutcables/scrabblepad/config.h b/keyboards/donutcables/scrabblepad/config.h index f792d5b1d5f7..5543c6133519 100644 --- a/keyboards/donutcables/scrabblepad/config.h +++ b/keyboards/donutcables/scrabblepad/config.h @@ -1,5 +1,5 @@ /* -Copyright 2018 MechMerlin +Copyright 2021 DonutCables 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 @@ -20,10 +20,10 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Donut Cables +#define VENDOR_ID 0x4443 +#define PRODUCT_ID 0x21D7 +#define DEVICE_VER 0x0100 +#define MANUFACTURER DonutCables #define PRODUCT ScrabblePad /* key matrix size */ @@ -39,43 +39,72 @@ along with this program. If not, see . * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * -*/ + */ #define MATRIX_ROW_PINS { D5, F1, C7, F2, C6, F3, C5, F4, C4, F5, C3, F6, C2, F7, C1 } #define MATRIX_COL_PINS { D6, D7, E0, E1, B7, D2, D3, D4, C0, B4, B5, B6, F0, E6, E7 } #define UNUSED_PINS -/* COL2ROW, ROW2COL*/ +/* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -// #define BACKLIGHT_PIN -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ -// ws2812 options -//#define RGB_DI_PIN A0 // pin the DI on the ws2812 is hooked-up to -//#define RGBLIGHT_ANIMATIONS // run RGB animations -//#define RGBLED_NUM 6 // number of LEDs -//#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -//#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation -//#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) +//#define LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 -/* number of backlight levels */ - /* 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 userful for the Windows task manager shortcut (ctrl+shift+esc). + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). */ -// #define GRAVE_ESC_CTRL_OVERRIDE +//#define GRAVE_ESC_CTRL_OVERRIDE /* * Force NKRO @@ -98,54 +127,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. @@ -161,25 +142,9 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION -/* - * MIDI options - */ - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -//#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED +/* disable these deprecated features by default */ -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 1 +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/donutcables/scrabblepad/keymaps/default/keymap.c b/keyboards/donutcables/scrabblepad/keymaps/default/keymap.c index bb78e71313bc..2762453f79e7 100644 --- a/keyboards/donutcables/scrabblepad/keymaps/default/keymap.c +++ b/keyboards/donutcables/scrabblepad/keymaps/default/keymap.c @@ -1,52 +1,43 @@ -/* Copyright 2018 MechMerlin - * - * 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 . - */ +/* +Copyright 2021 DonutCables + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + #include QMK_KEYBOARD_H -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ - KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC \ -), +enum layer_names { + _BASE, }; -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC + ), +}; diff --git a/keyboards/donutcables/scrabblepad/keymaps/default/readme.md b/keyboards/donutcables/scrabblepad/keymaps/default/readme.md index 4123e76671de..4dca7ad27249 100644 --- a/keyboards/donutcables/scrabblepad/keymaps/default/readme.md +++ b/keyboards/donutcables/scrabblepad/keymaps/default/readme.md @@ -3,4 +3,4 @@ This is the default keymap for the ScrabblePad. On each row, each key is used to spell out each character in -the following string: "donutcat rules ". +the following string: " scrabblepad ". \ No newline at end of file diff --git a/keyboards/donutcables/scrabblepad/keymaps/via/keymap.c b/keyboards/donutcables/scrabblepad/keymaps/via/keymap.c new file mode 100644 index 000000000000..c35af06133cf --- /dev/null +++ b/keyboards/donutcables/scrabblepad/keymaps/via/keymap.c @@ -0,0 +1,92 @@ +/* +Copyright 2021 DonutCables + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_S, KC_C, KC_R, KC_A, KC_B, KC_B, KC_L, KC_E, KC_P, KC_A, KC_D, KC_SPC, KC_SPC + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, 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/donutcables/scrabblepad/keymaps/via/readme.md b/keyboards/donutcables/scrabblepad/keymaps/via/readme.md new file mode 100644 index 000000000000..1e976d866029 --- /dev/null +++ b/keyboards/donutcables/scrabblepad/keymaps/via/readme.md @@ -0,0 +1,5 @@ +# The VIA keymap for ScrabblePad + +This is the VIA keymap for the ScrabblePad. + +The base map is the same as the default map and then three available layers above that. \ No newline at end of file diff --git a/keyboards/donutcables/scrabblepad/keymaps/via/rules.mk b/keyboards/donutcables/scrabblepad/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/donutcables/scrabblepad/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/donutcables/scrabblepad/rules.mk b/keyboards/donutcables/scrabblepad/rules.mk index a4d303b0d32c..a94668cc3afd 100644 --- a/keyboards/donutcables/scrabblepad/rules.mk +++ b/keyboards/donutcables/scrabblepad/rules.mk @@ -2,29 +2,19 @@ MCU = at90usb1286 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = halfkay # Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys +BOOTMAGIC_ENABLE = no # Enable Bootmagic +MOUSEKEY_ENABLE = no # 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 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/donutcables/scrabblepad/scrabblepad.c b/keyboards/donutcables/scrabblepad/scrabblepad.c index e97cbd46c014..88e60fea26ea 100644 --- a/keyboards/donutcables/scrabblepad/scrabblepad.c +++ b/keyboards/donutcables/scrabblepad/scrabblepad.c @@ -1,4 +1,4 @@ -/* Copyright 2018 MechMerlin +/* Copyright 2021 DonutCables * * 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 @@ -14,30 +14,3 @@ * along with this program. If not, see . */ #include "scrabblepad.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} diff --git a/keyboards/donutcables/scrabblepad/scrabblepad.h b/keyboards/donutcables/scrabblepad/scrabblepad.h index b4ac8b2c4f53..f27d990eb2d0 100644 --- a/keyboards/donutcables/scrabblepad/scrabblepad.h +++ b/keyboards/donutcables/scrabblepad/scrabblepad.h @@ -1,4 +1,4 @@ -/* Copyright 2018 MechMerlin +/* Copyright 2021 DonutCables * * 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 @@ -17,7 +17,6 @@ #include "quantum.h" -// Written in the format K(row)(column) where numbering is in hexadecimal #define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \ From 504d443ee3feb69e7d3a2d65d4b60d21f86dea61 Mon Sep 17 00:00:00 2001 From: NightlyBoards <65656486+NightlyBoards@users.noreply.github.com> Date: Sat, 14 Aug 2021 03:32:33 +0800 Subject: [PATCH 246/328] [Keyboard] Add n9 macropad (#13168) --- keyboards/nightly_boards/n9/config.h | 93 +++++++++++++++++++ keyboards/nightly_boards/n9/info.json | 23 +++++ .../n9/keymaps/default/keymap.c | 24 +++++ .../nightly_boards/n9/keymaps/via/keymap.c | 39 ++++++++ .../nightly_boards/n9/keymaps/via/rules.mk | 2 + keyboards/nightly_boards/n9/n9.c | 18 ++++ keyboards/nightly_boards/n9/n9.h | 29 ++++++ keyboards/nightly_boards/n9/readme.md | 18 ++++ keyboards/nightly_boards/n9/rules.mk | 21 +++++ 9 files changed, 267 insertions(+) create mode 100644 keyboards/nightly_boards/n9/config.h create mode 100644 keyboards/nightly_boards/n9/info.json create mode 100644 keyboards/nightly_boards/n9/keymaps/default/keymap.c create mode 100644 keyboards/nightly_boards/n9/keymaps/via/keymap.c create mode 100644 keyboards/nightly_boards/n9/keymaps/via/rules.mk create mode 100644 keyboards/nightly_boards/n9/n9.c create mode 100644 keyboards/nightly_boards/n9/n9.h create mode 100644 keyboards/nightly_boards/n9/readme.md create mode 100644 keyboards/nightly_boards/n9/rules.mk diff --git a/keyboards/nightly_boards/n9/config.h b/keyboards/nightly_boards/n9/config.h new file mode 100644 index 000000000000..b8b29099ca13 --- /dev/null +++ b/keyboards/nightly_boards/n9/config.h @@ -0,0 +1,93 @@ +/* +Copyright 2020 Neil Brian Ramirez +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xD812 +#define PRODUCT_ID 0x0012 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Neil Brian Ramirez +#define PRODUCT [n]9 + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +/* + * 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 { F4, B1, B3 } +#define MATRIX_COL_PINS { F6, F7, D4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN F1 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN F5 +#ifdef RGB_DI_PIN +#define RGBLED_NUM 8 +#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 */ +// /*== 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 +// /*== 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 + + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/nightly_boards/n9/info.json b/keyboards/nightly_boards/n9/info.json new file mode 100644 index 000000000000..aeba1a2b1d63 --- /dev/null +++ b/keyboards/nightly_boards/n9/info.json @@ -0,0 +1,23 @@ +{ + "keyboard_name": "[n]9", + "url": "", + "maintainer": "Neil Brian Ramirez", + "width": 3, + "height": 3, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}] + } + } +} diff --git a/keyboards/nightly_boards/n9/keymaps/default/keymap.c b/keyboards/nightly_boards/n9/keymaps/default/keymap.c new file mode 100644 index 000000000000..8687c0be98c0 --- /dev/null +++ b/keyboards/nightly_boards/n9/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ), +}; diff --git a/keyboards/nightly_boards/n9/keymaps/via/keymap.c b/keyboards/nightly_boards/n9/keymaps/via/keymap.c new file mode 100644 index 000000000000..34c4cc26ce30 --- /dev/null +++ b/keyboards/nightly_boards/n9/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/nightly_boards/n9/keymaps/via/rules.mk b/keyboards/nightly_boards/n9/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/nightly_boards/n9/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/nightly_boards/n9/n9.c b/keyboards/nightly_boards/n9/n9.c new file mode 100644 index 000000000000..e6b736aa8bef --- /dev/null +++ b/keyboards/nightly_boards/n9/n9.c @@ -0,0 +1,18 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * 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 "n9.h" + diff --git a/keyboards/nightly_boards/n9/n9.h b/keyboards/nightly_boards/n9/n9.h new file mode 100644 index 000000000000..6b0dbdc2e678 --- /dev/null +++ b/keyboards/nightly_boards/n9/n9.h @@ -0,0 +1,29 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, \ + K10, K11, K12, \ + K20, K21, K22 \ +) { \ + { K00, K01, K02 }, \ + { K10, K11, K12 }, \ + { K20, K21, K22 }, \ +} diff --git a/keyboards/nightly_boards/n9/readme.md b/keyboards/nightly_boards/n9/readme.md new file mode 100644 index 000000000000..3bf202439869 --- /dev/null +++ b/keyboards/nightly_boards/n9/readme.md @@ -0,0 +1,18 @@ +# [n]9 + +![n9](https://i.imgur.com/dDGm2g7.png) + +A 9-key pcb powered by a pro-micro + +* Keyboard Maintainer: [Neil Brian Ramirez](https://github.com/NightlyBoards) +* Hardware Supported: atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make nightly_boards/n9:default + +Flashing example for this keyboard: + + make nightly_boards/n9: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). diff --git a/keyboards/nightly_boards/n9/rules.mk b/keyboards/nightly_boards/n9/rules.mk new file mode 100644 index 000000000000..39b3797a02fc --- /dev/null +++ b/keyboards/nightly_boards/n9/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth From 4db9aa65b27483f793582bb5428032fafd525e87 Mon Sep 17 00:00:00 2001 From: eniigmakeyboards Date: Fri, 13 Aug 2021 15:34:27 -0400 Subject: [PATCH 247/328] [Keyboard] Add eniigmakeyboards/ek60 (#13140) * add eniigmakeyboards/ek60 * Update keyboards/eniigmakeyboards/ek60/rules.mk Updated layouts Co-authored-by: Drashna Jaelre * Update keymap.c Added GPL2+ header * Update keymap.c Added GPL2+ * Update rules.mk Added ISO layout here * Update readme.md Added instructions for resetting bootloader * Update keyboards/eniigmakeyboards/ek60/rules.mk Co-authored-by: Ryan Co-authored-by: adamws Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/eniigmakeyboards/ek60/config.h | 42 ++++++ keyboards/eniigmakeyboards/ek60/ek60.c | 18 +++ keyboards/eniigmakeyboards/ek60/ek60.h | 135 ++++++++++++++++++ keyboards/eniigmakeyboards/ek60/info.json | 72 ++++++++++ .../ek60/keymaps/default/keymap.c | 28 ++++ .../ek60/keymaps/via/keymap.c | 49 +++++++ .../ek60/keymaps/via/rules.mk | 1 + keyboards/eniigmakeyboards/ek60/readme.md | 11 ++ keyboards/eniigmakeyboards/ek60/rules.mk | 24 ++++ 9 files changed, 380 insertions(+) create mode 100644 keyboards/eniigmakeyboards/ek60/config.h create mode 100644 keyboards/eniigmakeyboards/ek60/ek60.c create mode 100644 keyboards/eniigmakeyboards/ek60/ek60.h create mode 100644 keyboards/eniigmakeyboards/ek60/info.json create mode 100644 keyboards/eniigmakeyboards/ek60/keymaps/default/keymap.c create mode 100644 keyboards/eniigmakeyboards/ek60/keymaps/via/keymap.c create mode 100644 keyboards/eniigmakeyboards/ek60/keymaps/via/rules.mk create mode 100644 keyboards/eniigmakeyboards/ek60/readme.md create mode 100644 keyboards/eniigmakeyboards/ek60/rules.mk diff --git a/keyboards/eniigmakeyboards/ek60/config.h b/keyboards/eniigmakeyboards/ek60/config.h new file mode 100644 index 000000000000..25653750105e --- /dev/null +++ b/keyboards/eniigmakeyboards/ek60/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2020 adamws + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x454B +#define PRODUCT_ID 0x0003 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Eniigma Keyboards +#define PRODUCT ek60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { B2, B1, B0, F0, B4 } +#define MATRIX_COL_PINS { F7, C6, F6, B6, F5, F4, B5, F1, E6, D0, D7, D5, D1, D3, D2 } +#define UNUSED_PINS { B3, B7, C7, D4, D6 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/eniigmakeyboards/ek60/ek60.c b/keyboards/eniigmakeyboards/ek60/ek60.c new file mode 100644 index 000000000000..2ce369ec829a --- /dev/null +++ b/keyboards/eniigmakeyboards/ek60/ek60.c @@ -0,0 +1,18 @@ +/* Copyright 2021 adamws + * + * 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 "ek60.h" + diff --git a/keyboards/eniigmakeyboards/ek60/ek60.h b/keyboards/eniigmakeyboards/ek60/ek60.h new file mode 100644 index 000000000000..992618e44730 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek60/ek60.h @@ -0,0 +1,135 @@ +/* Copyright 2021 adamws + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k41, k43, k46, k4a, k4b, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e }, \ + { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e } \ +} + +#define LAYOUT_60_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k43, k46, k4a, k4b, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e } \ +} + +#define LAYOUT_60_ansi_tsangan( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k43, k46, k4b, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, XXX, k4d, k4e } \ +} + +#define LAYOUT_60_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k43, k46, k4a, k4b, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e } \ +} + +#define LAYOUT_60_iso_tsangan( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k43, k46, k4b, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, XXX, k4d, k4e } \ +} + +#define LAYOUT_60_iso_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k43, k46, k4a, k4b, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e } \ +} + +#define LAYOUT_60_iso_split_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k41, k43, k46, k4a, k4b, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e }, \ + { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e } \ +} + diff --git a/keyboards/eniigmakeyboards/ek60/info.json b/keyboards/eniigmakeyboards/ek60/info.json new file mode 100644 index 000000000000..38ca454c6590 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek60/info.json @@ -0,0 +1,72 @@ +{ + "keyboard_name": "ek60", + "url": "", + "maintainer": "adamws", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k01","x":1,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k06","x":6,"y":0},{"label":"k07","x":7,"y":0},{"label":"k08","x":8,"y":0},{"label":"k09","x":9,"y":0},{"label":"k0a","x":10,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0}, + {"label":"k10","x":0,"y":1,"w":1.5},{"label":"k12","x":1.5,"y":1},{"label":"k13","x":2.5,"y":1},{"label":"k14","x":3.5,"y":1},{"label":"k15","x":4.5,"y":1},{"label":"k16","x":5.5,"y":1},{"label":"k17","x":6.5,"y":1},{"label":"k18","x":7.5,"y":1},{"label":"k19","x":8.5,"y":1},{"label":"k1a","x":9.5,"y":1},{"label":"k1b","x":10.5,"y":1},{"label":"k1c","x":11.5,"y":1},{"label":"k1d","x":12.5,"y":1},{"label":"k1e","x":13.5,"y":1,"w":1.5}, + {"label":"k20","x":0,"y":2,"w":1.75},{"label":"k22","x":1.75,"y":2},{"label":"k23","x":2.75,"y":2},{"label":"k24","x":3.75,"y":2},{"label":"k25","x":4.75,"y":2},{"label":"k26","x":5.75,"y":2},{"label":"k27","x":6.75,"y":2},{"label":"k28","x":7.75,"y":2},{"label":"k29","x":8.75,"y":2},{"label":"k2a","x":9.75,"y":2},{"label":"k2b","x":10.75,"y":2},{"label":"k2c","x":11.75,"y":2},{"label":"k2d","x":12.75,"y":2,"w":2.25}, + {"label":"k30","x":0,"y":3,"w":1.25},{"label":"k31","x":1.25,"y":3},{"label":"k32","x":2.25,"y":3},{"label":"k33","x":3.25,"y":3},{"label":"k34","x":4.25,"y":3},{"label":"k35","x":5.25,"y":3},{"label":"k36","x":6.25,"y":3},{"label":"k37","x":7.25,"y":3},{"label":"k38","x":8.25,"y":3},{"label":"k39","x":9.25,"y":3},{"label":"k3a","x":10.25,"y":3},{"label":"k3b","x":11.25,"y":3},{"label":"k3d","x":12.25,"y":3,"w":1.75},{"label":"k3e","x":14,"y":3}, + {"label":"k40","x":0,"y":4,"w":1.25},{"label":"k41","x":1.25,"y":4,"w":1.25},{"label":"k43","x":2.5,"y":4,"w":1.25},{"label":"k46","x":3.75,"y":4,"w":6.25},{"label":"k4a","x":10,"y":4,"w":1.25},{"label":"k4b","x":11.25,"y":4,"w":1.25},{"label":"k4d","x":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k01","x":1,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k06","x":6,"y":0},{"label":"k07","x":7,"y":0},{"label":"k08","x":8,"y":0},{"label":"k09","x":9,"y":0},{"label":"k0a","x":10,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0,"w":2}, + {"label":"k10","x":0,"y":1,"w":1.5},{"label":"k12","x":1.5,"y":1},{"label":"k13","x":2.5,"y":1},{"label":"k14","x":3.5,"y":1},{"label":"k15","x":4.5,"y":1},{"label":"k16","x":5.5,"y":1},{"label":"k17","x":6.5,"y":1},{"label":"k18","x":7.5,"y":1},{"label":"k19","x":8.5,"y":1},{"label":"k1a","x":9.5,"y":1},{"label":"k1b","x":10.5,"y":1},{"label":"k1c","x":11.5,"y":1},{"label":"k1d","x":12.5,"y":1},{"label":"k1e","x":13.5,"y":1,"w":1.5}, + {"label":"k20","x":0,"y":2,"w":1.75},{"label":"k22","x":1.75,"y":2},{"label":"k23","x":2.75,"y":2},{"label":"k24","x":3.75,"y":2},{"label":"k25","x":4.75,"y":2},{"label":"k26","x":5.75,"y":2},{"label":"k27","x":6.75,"y":2},{"label":"k28","x":7.75,"y":2},{"label":"k29","x":8.75,"y":2},{"label":"k2a","x":9.75,"y":2},{"label":"k2b","x":10.75,"y":2},{"label":"k2c","x":11.75,"y":2},{"label":"k2d","x":12.75,"y":2,"w":2.25}, + {"label":"k30","x":0,"y":3,"w":2.25},{"label":"k32","x":2.25,"y":3},{"label":"k33","x":3.25,"y":3},{"label":"k34","x":4.25,"y":3},{"label":"k35","x":5.25,"y":3},{"label":"k36","x":6.25,"y":3},{"label":"k37","x":7.25,"y":3},{"label":"k38","x":8.25,"y":3},{"label":"k39","x":9.25,"y":3},{"label":"k3a","x":10.25,"y":3},{"label":"k3b","x":11.25,"y":3},{"label":"k3d","x":12.25,"y":3,"w":2.75}, + {"label":"k40","x":0,"y":4,"w":1.25},{"label":"k41","x":1.25,"y":4,"w":1.25},{"label":"k43","x":2.5,"y":4,"w":1.25},{"label":"k46","x":3.75,"y":4,"w":6.25},{"label":"k4a","x":10,"y":4,"w":1.25},{"label":"k4b","x":11.25,"y":4,"w":1.25},{"label":"k4d","x":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k01","x":1,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k06","x":6,"y":0},{"label":"k07","x":7,"y":0},{"label":"k08","x":8,"y":0},{"label":"k09","x":9,"y":0},{"label":"k0a","x":10,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0,"w":2}, + {"label":"k10","x":0,"y":1,"w":1.5},{"label":"k12","x":1.5,"y":1},{"label":"k13","x":2.5,"y":1},{"label":"k14","x":3.5,"y":1},{"label":"k15","x":4.5,"y":1},{"label":"k16","x":5.5,"y":1},{"label":"k17","x":6.5,"y":1},{"label":"k18","x":7.5,"y":1},{"label":"k19","x":8.5,"y":1},{"label":"k1a","x":9.5,"y":1},{"label":"k1b","x":10.5,"y":1},{"label":"k1c","x":11.5,"y":1},{"label":"k1d","x":12.5,"y":1},{"label":"k1e","x":13.5,"y":1,"w":1.5}, + {"label":"k20","x":0,"y":2,"w":1.75},{"label":"k22","x":1.75,"y":2},{"label":"k23","x":2.75,"y":2},{"label":"k24","x":3.75,"y":2},{"label":"k25","x":4.75,"y":2},{"label":"k26","x":5.75,"y":2},{"label":"k27","x":6.75,"y":2},{"label":"k28","x":7.75,"y":2},{"label":"k29","x":8.75,"y":2},{"label":"k2a","x":9.75,"y":2},{"label":"k2b","x":10.75,"y":2},{"label":"k2c","x":11.75,"y":2},{"label":"k2d","x":12.75,"y":2,"w":2.25}, + {"label":"k30","x":0,"y":3,"w":2.25},{"label":"k32","x":2.25,"y":3},{"label":"k33","x":3.25,"y":3},{"label":"k34","x":4.25,"y":3},{"label":"k35","x":5.25,"y":3},{"label":"k36","x":6.25,"y":3},{"label":"k37","x":7.25,"y":3},{"label":"k38","x":8.25,"y":3},{"label":"k39","x":9.25,"y":3},{"label":"k3a","x":10.25,"y":3},{"label":"k3b","x":11.25,"y":3},{"label":"k3d","x":12.25,"y":3,"w":2.75}, + {"label":"k40","x":0,"y":4,"w":1.5},{"label":"k41","x":1.5,"y":4},{"label":"k43","x":2.5,"y":4,"w":1.5},{"label":"k46","x":4,"y":4,"w":7},{"label":"k4b","x":11,"y":4,"w":1.5},{"label":"k4d","x":12.5,"y":4},{"label":"k4e","x":13.5,"y":4,"w":1.5} + ] + }, + "LAYOUT_60_iso": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k01","x":1,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k06","x":6,"y":0},{"label":"k07","x":7,"y":0},{"label":"k08","x":8,"y":0},{"label":"k09","x":9,"y":0},{"label":"k0a","x":10,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0,"w":2}, + {"label":"k10","x":0,"y":1,"w":1.5},{"label":"k12","x":1.5,"y":1},{"label":"k13","x":2.5,"y":1},{"label":"k14","x":3.5,"y":1},{"label":"k15","x":4.5,"y":1},{"label":"k16","x":5.5,"y":1},{"label":"k17","x":6.5,"y":1},{"label":"k18","x":7.5,"y":1},{"label":"k19","x":8.5,"y":1},{"label":"k1a","x":9.5,"y":1},{"label":"k1b","x":10.5,"y":1},{"label":"k1c","x":11.5,"y":1},{"label":"k1d","x":12.5,"y":1}, + {"label":"k20","x":0,"y":2,"w":1.75},{"label":"k22","x":1.75,"y":2},{"label":"k23","x":2.75,"y":2},{"label":"k24","x":3.75,"y":2},{"label":"k25","x":4.75,"y":2},{"label":"k26","x":5.75,"y":2},{"label":"k27","x":6.75,"y":2},{"label":"k28","x":7.75,"y":2},{"label":"k29","x":8.75,"y":2},{"label":"k2a","x":9.75,"y":2},{"label":"k2b","x":10.75,"y":2},{"label":"k2c","x":11.75,"y":2},{"label":"k2d","x":12.75,"y":2},{"label":"k1e","x":13.75,"y":1,"w":1.25,"h":2}, + {"label":"k30","x":0,"y":3,"w":1.25},{"label":"k31","x":1.25,"y":3},{"label":"k32","x":2.25,"y":3},{"label":"k33","x":3.25,"y":3},{"label":"k34","x":4.25,"y":3},{"label":"k35","x":5.25,"y":3},{"label":"k36","x":6.25,"y":3},{"label":"k37","x":7.25,"y":3},{"label":"k38","x":8.25,"y":3},{"label":"k39","x":9.25,"y":3},{"label":"k3a","x":10.25,"y":3},{"label":"k3b","x":11.25,"y":3},{"label":"k3d","x":12.25,"y":3,"w":2.75}, + {"label":"k40","x":0,"y":4,"w":1.25},{"label":"k41","x":1.25,"y":4,"w":1.25},{"label":"k43","x":2.5,"y":4,"w":1.25},{"label":"k46","x":3.75,"y":4,"w":6.25},{"label":"k4a","x":10,"y":4,"w":1.25},{"label":"k4b","x":11.25,"y":4,"w":1.25},{"label":"k4d","x":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k01","x":1,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k06","x":6,"y":0},{"label":"k07","x":7,"y":0},{"label":"k08","x":8,"y":0},{"label":"k09","x":9,"y":0},{"label":"k0a","x":10,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0,"w":2}, + {"label":"k10","x":0,"y":1,"w":1.5},{"label":"k12","x":1.5,"y":1},{"label":"k13","x":2.5,"y":1},{"label":"k14","x":3.5,"y":1},{"label":"k15","x":4.5,"y":1},{"label":"k16","x":5.5,"y":1},{"label":"k17","x":6.5,"y":1},{"label":"k18","x":7.5,"y":1},{"label":"k19","x":8.5,"y":1},{"label":"k1a","x":9.5,"y":1},{"label":"k1b","x":10.5,"y":1},{"label":"k1c","x":11.5,"y":1},{"label":"k1d","x":12.5,"y":1}, + {"label":"k20","x":0,"y":2,"w":1.75},{"label":"k22","x":1.75,"y":2},{"label":"k23","x":2.75,"y":2},{"label":"k24","x":3.75,"y":2},{"label":"k25","x":4.75,"y":2},{"label":"k26","x":5.75,"y":2},{"label":"k27","x":6.75,"y":2},{"label":"k28","x":7.75,"y":2},{"label":"k29","x":8.75,"y":2},{"label":"k2a","x":9.75,"y":2},{"label":"k2b","x":10.75,"y":2},{"label":"k2c","x":11.75,"y":2},{"label":"k2d","x":12.75,"y":2},{"label":"k1e","x":13.75,"y":1,"w":1.25,"h":2}, + {"label":"k30","x":0,"y":3,"w":1.25},{"label":"k31","x":1.25,"y":3},{"label":"k32","x":2.25,"y":3},{"label":"k33","x":3.25,"y":3},{"label":"k34","x":4.25,"y":3},{"label":"k35","x":5.25,"y":3},{"label":"k36","x":6.25,"y":3},{"label":"k37","x":7.25,"y":3},{"label":"k38","x":8.25,"y":3},{"label":"k39","x":9.25,"y":3},{"label":"k3a","x":10.25,"y":3},{"label":"k3b","x":11.25,"y":3},{"label":"k3d","x":12.25,"y":3,"w":2.75}, + {"label":"k40","x":0,"y":4,"w":1.5},{"label":"k41","x":1.5,"y":4},{"label":"k43","x":2.5,"y":4,"w":1.5},{"label":"k46","x":4,"y":4,"w":7},{"label":"k4b","x":11,"y":4,"w":1.5},{"label":"k4d","x":12.5,"y":4},{"label":"k4e","x":13.5,"y":4,"w":1.5} + ] + }, + "LAYOUT_60_iso_split_bs": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k01","x":1,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k06","x":6,"y":0},{"label":"k07","x":7,"y":0},{"label":"k08","x":8,"y":0},{"label":"k09","x":9,"y":0},{"label":"k0a","x":10,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0}, + {"label":"k10","x":0,"y":1,"w":1.5},{"label":"k12","x":1.5,"y":1},{"label":"k13","x":2.5,"y":1},{"label":"k14","x":3.5,"y":1},{"label":"k15","x":4.5,"y":1},{"label":"k16","x":5.5,"y":1},{"label":"k17","x":6.5,"y":1},{"label":"k18","x":7.5,"y":1},{"label":"k19","x":8.5,"y":1},{"label":"k1a","x":9.5,"y":1},{"label":"k1b","x":10.5,"y":1},{"label":"k1c","x":11.5,"y":1},{"label":"k1d","x":12.5,"y":1}, + {"label":"k20","x":0,"y":2,"w":1.75},{"label":"k22","x":1.75,"y":2},{"label":"k23","x":2.75,"y":2},{"label":"k24","x":3.75,"y":2},{"label":"k25","x":4.75,"y":2},{"label":"k26","x":5.75,"y":2},{"label":"k27","x":6.75,"y":2},{"label":"k28","x":7.75,"y":2},{"label":"k29","x":8.75,"y":2},{"label":"k2a","x":9.75,"y":2},{"label":"k2b","x":10.75,"y":2},{"label":"k2c","x":11.75,"y":2},{"label":"k2d","x":12.75,"y":2},{"label":"k1e","x":13.75,"y":1,"w":1.25,"h":2}, + {"label":"k30","x":0,"y":3,"w":1.25},{"label":"k31","x":1.25,"y":3},{"label":"k32","x":2.25,"y":3},{"label":"k33","x":3.25,"y":3},{"label":"k34","x":4.25,"y":3},{"label":"k35","x":5.25,"y":3},{"label":"k36","x":6.25,"y":3},{"label":"k37","x":7.25,"y":3},{"label":"k38","x":8.25,"y":3},{"label":"k39","x":9.25,"y":3},{"label":"k3a","x":10.25,"y":3},{"label":"k3b","x":11.25,"y":3},{"label":"k3d","x":12.25,"y":3,"w":2.75}, + {"label":"k40","x":0,"y":4,"w":1.25},{"label":"k41","x":1.25,"y":4,"w":1.25},{"label":"k43","x":2.5,"y":4,"w":1.25},{"label":"k46","x":3.75,"y":4,"w":6.25},{"label":"k4a","x":10,"y":4,"w":1.25},{"label":"k4b","x":11.25,"y":4,"w":1.25},{"label":"k4d","x":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25} + ] + }, + "LAYOUT_60_iso_split_rshift": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k01","x":1,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k06","x":6,"y":0},{"label":"k07","x":7,"y":0},{"label":"k08","x":8,"y":0},{"label":"k09","x":9,"y":0},{"label":"k0a","x":10,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0,"w":2}, + {"label":"k10","x":0,"y":1,"w":1.5},{"label":"k12","x":1.5,"y":1},{"label":"k13","x":2.5,"y":1},{"label":"k14","x":3.5,"y":1},{"label":"k15","x":4.5,"y":1},{"label":"k16","x":5.5,"y":1},{"label":"k17","x":6.5,"y":1},{"label":"k18","x":7.5,"y":1},{"label":"k19","x":8.5,"y":1},{"label":"k1a","x":9.5,"y":1},{"label":"k1b","x":10.5,"y":1},{"label":"k1c","x":11.5,"y":1},{"label":"k1d","x":12.5,"y":1}, + {"label":"k20","x":0,"y":2,"w":1.75},{"label":"k22","x":1.75,"y":2},{"label":"k23","x":2.75,"y":2},{"label":"k24","x":3.75,"y":2},{"label":"k25","x":4.75,"y":2},{"label":"k26","x":5.75,"y":2},{"label":"k27","x":6.75,"y":2},{"label":"k28","x":7.75,"y":2},{"label":"k29","x":8.75,"y":2},{"label":"k2a","x":9.75,"y":2},{"label":"k2b","x":10.75,"y":2},{"label":"k2c","x":11.75,"y":2},{"label":"k2d","x":12.75,"y":2},{"label":"k1e","x":13.75,"y":1,"w":1.25,"h":2}, + {"label":"k30","x":0,"y":3,"w":1.25},{"label":"k31","x":1.25,"y":3},{"label":"k32","x":2.25,"y":3},{"label":"k33","x":3.25,"y":3},{"label":"k34","x":4.25,"y":3},{"label":"k35","x":5.25,"y":3},{"label":"k36","x":6.25,"y":3},{"label":"k37","x":7.25,"y":3},{"label":"k38","x":8.25,"y":3},{"label":"k39","x":9.25,"y":3},{"label":"k3a","x":10.25,"y":3},{"label":"k3b","x":11.25,"y":3},{"label":"k3d","x":12.25,"y":3,"w":1.75},{"label":"k3e","x":14,"y":3}, + {"label":"k40","x":0,"y":4,"w":1.25},{"label":"k41","x":1.25,"y":4,"w":1.25},{"label":"k43","x":2.5,"y":4,"w":1.25},{"label":"k46","x":3.75,"y":4,"w":6.25},{"label":"k4a","x":10,"y":4,"w":1.25},{"label":"k4b","x":11.25,"y":4,"w":1.25},{"label":"k4d","x":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25} + ] + } + } +} diff --git a/keyboards/eniigmakeyboards/ek60/keymaps/default/keymap.c b/keyboards/eniigmakeyboards/ek60/keymaps/default/keymap.c new file mode 100644 index 000000000000..2cd9e8bc303d --- /dev/null +++ b/keyboards/eniigmakeyboards/ek60/keymaps/default/keymap.c @@ -0,0 +1,28 @@ + /* Copyright 2021 Eniigma Keyboards + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; + diff --git a/keyboards/eniigmakeyboards/ek60/keymaps/via/keymap.c b/keyboards/eniigmakeyboards/ek60/keymaps/via/keymap.c new file mode 100644 index 000000000000..a2c225e7d107 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek60/keymaps/via/keymap.c @@ -0,0 +1,49 @@ + /* Copyright 2021 Eniigma Keyboards + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TRNS, + 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_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + [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 + ), + [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 + ), + [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 + ) +}; + diff --git a/keyboards/eniigmakeyboards/ek60/keymaps/via/rules.mk b/keyboards/eniigmakeyboards/ek60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/eniigmakeyboards/ek60/readme.md b/keyboards/eniigmakeyboards/ek60/readme.md new file mode 100644 index 000000000000..afa33f0243d0 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek60/readme.md @@ -0,0 +1,11 @@ +# Eniigma Keyboards ek60 + +* Keyboard Maintainer: [eniigmakeyboards](https://github.com/eniigmakeyboards) and [adamws](https://github.com/adamws) + +Make example for this keyboard (after setting up your build environment): + + make eniigmakeyboards/ek60:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +Press and hold the reset button on the underside of the PCB while plugging in the cable to reset the bootloader. diff --git a/keyboards/eniigmakeyboards/ek60/rules.mk b/keyboards/eniigmakeyboards/ek60/rules.mk new file mode 100644 index 000000000000..86b34c241ed8 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek60/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_ansi 60_iso From 74c9c3e9c25d7f2678ecd4dbe09b5d425f3884bf Mon Sep 17 00:00:00 2001 From: Sergey Omelchenko Date: Fri, 13 Aug 2021 22:34:47 +0300 Subject: [PATCH 248/328] [Keyboard] Macropad v2 polling rate fix (#13129) --- keyboards/geekboards/macropad_v2/config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/geekboards/macropad_v2/config.h b/keyboards/geekboards/macropad_v2/config.h index 5f11cdddb012..57675d639c82 100644 --- a/keyboards/geekboards/macropad_v2/config.h +++ b/keyboards/geekboards/macropad_v2/config.h @@ -69,6 +69,7 @@ #define RGB_DISABLE_WHEN_USB_SUSPENDED true #define WAIT_FOR_USB +#define USB_POLLING_INTERVAL_MS 1 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 @@ -76,3 +77,5 @@ /* Bootmagic Lite key configuration */ #define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_COLUMN 0 + +#define TAP_CODE_DELAY 10 From 9b922d55dda081107db4cf9f50b24287c4952e04 Mon Sep 17 00:00:00 2001 From: alittlepeace Date: Fri, 13 Aug 2021 14:35:56 -0500 Subject: [PATCH 249/328] [Keyboard] Adding VIA to Absinthe (#13031) Co-authored-by: Drashna Jaelre --- keyboards/absinthe/keymaps/via/keymap.c | 70 +++++++++++++++++++++++++ keyboards/absinthe/keymaps/via/rules.mk | 2 + 2 files changed, 72 insertions(+) create mode 100644 keyboards/absinthe/keymaps/via/keymap.c create mode 100644 keyboards/absinthe/keymaps/via/rules.mk diff --git a/keyboards/absinthe/keymaps/via/keymap.c b/keyboards/absinthe/keymaps/via/keymap.c new file mode 100644 index 000000000000..f058aacaeacd --- /dev/null +++ b/keyboards/absinthe/keymaps/via/keymap.c @@ -0,0 +1,70 @@ +/* Copyright 2021 alittlepeace + * + * 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_default( + 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_BSLS, KC_GRV, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, KC_END, KC_PGDN, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_default( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + switch(get_highest_layer(layer_state)){ + case 1: + if (clockwise){ + tap_code(KC_VOLU); + } else{ + tap_code(KC_VOLD); + } + break; + default: + if (clockwise) { + tap_code(KC_WH_D); + } else { + tap_code(KC_WH_U); + } + break; + } + } + return true; +} + diff --git a/keyboards/absinthe/keymaps/via/rules.mk b/keyboards/absinthe/keymaps/via/rules.mk new file mode 100644 index 000000000000..ca0f13221f4a --- /dev/null +++ b/keyboards/absinthe/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes \ No newline at end of file From af98005b0252cea38cccd28d7aa72109f3a28f52 Mon Sep 17 00:00:00 2001 From: Evelien-Lillian Dekkers Date: Fri, 13 Aug 2021 21:53:02 +0200 Subject: [PATCH 250/328] [Keyboard] Add Gud70 (#12575) Co-authored-by: Drashna Jaelre --- keyboards/evyd13/gud70/config.h | 150 +++++++++++ keyboards/evyd13/gud70/gud70.c | 22 ++ keyboards/evyd13/gud70/gud70.h | 73 +++++ keyboards/evyd13/gud70/info.json | 252 ++++++++++++++++++ .../evyd13/gud70/keymaps/default/keymap.c | 37 +++ .../evyd13/gud70/keymaps/evyd13/keymap.c | 31 +++ keyboards/evyd13/gud70/readme.md | 20 ++ keyboards/evyd13/gud70/rules.mk | 22 ++ 8 files changed, 607 insertions(+) create mode 100644 keyboards/evyd13/gud70/config.h create mode 100644 keyboards/evyd13/gud70/gud70.c create mode 100644 keyboards/evyd13/gud70/gud70.h create mode 100644 keyboards/evyd13/gud70/info.json create mode 100644 keyboards/evyd13/gud70/keymaps/default/keymap.c create mode 100644 keyboards/evyd13/gud70/keymaps/evyd13/keymap.c create mode 100644 keyboards/evyd13/gud70/readme.md create mode 100644 keyboards/evyd13/gud70/rules.mk diff --git a/keyboards/evyd13/gud70/config.h b/keyboards/evyd13/gud70/config.h new file mode 100644 index 000000000000..914a87f4f538 --- /dev/null +++ b/keyboards/evyd13/gud70/config.h @@ -0,0 +1,150 @@ +/* Copyright 2020 Evelien Dekkers + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4705 +#define PRODUCT_ID 0x198B +#define DEVICE_VER 0x0001 +#define MANUFACTURER Evyd13 +#define PRODUCT Gud70 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * 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 {D7,D6,D4,E6,B7} +#define MATRIX_COL_PINS {D5,D3,D2,D1,D0,B4,B5,B6,C6,C7,F0,F1,F4,F5,F6,F7} +#define UNUSED_PINS {} + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define LED_NUM_LOCK_PIN B2 +#define LED_CAPS_LOCK_PIN B1 +#define LED_SCROLL_LOCK_PIN B0 +#define LED_PIN_ON_STATE 0 + +/* + * 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 BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #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 */ +// /*== 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 +// /*== 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 userful 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/evyd13/gud70/gud70.c b/keyboards/evyd13/gud70/gud70.c new file mode 100644 index 000000000000..7b8c0a98f993 --- /dev/null +++ b/keyboards/evyd13/gud70/gud70.c @@ -0,0 +1,22 @@ +/* Copyright 2020 Evelien Dekkers + * + * 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 "gud70.h" + +void keyboard_pre_init_kb(void) { + // Enable top LED + setPinOutput(B3); + writePinLow(B3); +} diff --git a/keyboards/evyd13/gud70/gud70.h b/keyboards/evyd13/gud70/gud70.h new file mode 100644 index 000000000000..338fafd35128 --- /dev/null +++ b/keyboards/evyd13/gud70/gud70.h @@ -0,0 +1,73 @@ +/* Copyright 2020 Evelien Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" +#define XXX KC_NO + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, k0f, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, \ + k40, k41, k42, k47, k4a, k4b, k4c, k4d, k4e, k4f \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \ + { k40, k41, k42, XXX, XXX, XXX, XXX, k47, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \ +} + +#define LAYOUT_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, k1f, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, k2f, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, \ + k40, k41, k42, k47, k4a, k4b, k4c, k4d, k4e, k4f \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e, k1f }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \ + { k40, k41, k42, XXX, XXX, XXX, XXX, k47, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \ +} + +#define LAYOUT_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, \ + k40, k41, k42, k47, k4a, k4b, k4c, k4d, k4e, k4f \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e, k1f }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \ + { k40, k41, k42, XXX, XXX, XXX, XXX, k47, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \ +} diff --git a/keyboards/evyd13/gud70/info.json b/keyboards/evyd13/gud70/info.json new file mode 100644 index 000000000000..d2a9d9248c5c --- /dev/null +++ b/keyboards/evyd13/gud70/info.json @@ -0,0 +1,252 @@ +{ + "keyboard_name": "Gud70", + "url": "https://github.com/evyd13/gud70-pcb", + "maintainer": "evyd13", + "width": 17, + "height": 5, + "layouts": { + "LAYOUT_all": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":16, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":16, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":16, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":16, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":6}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4}, + {"x":12.5, "y":4, "w":1.5}, + {"x":14, "y":4}, + {"x":15, "y":4}, + {"x":16, "y":4} + ] + }, + "LAYOUT_ansi": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + {"x":16, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":16, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":16, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":16, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":6}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4}, + {"x":12.5, "y":4, "w":1.5}, + {"x":14, "y":4}, + {"x":15, "y":4}, + {"x":16, "y":4} + ] + }, + "LAYOUT_iso": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + {"x":16, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + {"x":16, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + {"x":16, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":16, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":6}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4}, + {"x":12.5, "y":4, "w":1.5}, + {"x":14, "y":4}, + {"x":15, "y":4}, + {"x":16, "y":4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/evyd13/gud70/keymaps/default/keymap.c b/keyboards/evyd13/gud70/keymaps/default/keymap.c new file mode 100644 index 000000000000..c1ec59573f1f --- /dev/null +++ b/keyboards/evyd13/gud70/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2020 Evelien Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_BSLS, KC_BSPC, KC_INS, 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_DEL, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, TO(2), KC_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, KC_PMNS, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PAST, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, _______, KC_PDOT, KC_PSLS, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/evyd13/gud70/keymaps/evyd13/keymap.c b/keyboards/evyd13/gud70/keymaps/evyd13/keymap.c new file mode 100644 index 000000000000..45c332a5d792 --- /dev/null +++ b/keyboards/evyd13/gud70/keymaps/evyd13/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2020 Evelien Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_BSLS, KC_BSPC, KC_INS, 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_DEL, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_MPLY, KC_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_APP), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/evyd13/gud70/readme.md b/keyboards/evyd13/gud70/readme.md new file mode 100644 index 000000000000..706cbb296ccc --- /dev/null +++ b/keyboards/evyd13/gud70/readme.md @@ -0,0 +1,20 @@ +# Gud70 + +A replacement PCB for the Uniqey C70. + +* Keyboard Maintainer: [Evyd13](https://github.com/evyd13) +* Hardware Supported: Gud70 PCB +* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/gud70-pcb) + + +To flash a new layout, press the reset button located under the space bar. + +Make example for this keyboard (after setting up your build environment): + + make evyd13/gud70:default + +Flashing example for this keyboard: + + make evyd13/gud70: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). diff --git a/keyboards/evyd13/gud70/rules.mk b/keyboards/evyd13/gud70/rules.mk new file mode 100644 index 000000000000..ec21f3f19476 --- /dev/null +++ b/keyboards/evyd13/gud70/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = qmk-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 424b9ff7090d8407bd6bc56ff42afff05acecb12 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 13 Aug 2021 17:01:05 -0700 Subject: [PATCH 251/328] Crin Refactor (#13982) * rename LAYOUT_default to LAYOUT_all * apply human-friendly formatting to info.json * correct keyboard dimensions * correct data for LAYOUT_tsangan * add labels to LAYOUT_ansi data * add labels to LAYOUT_all data * add labels to LAYOUT_iso data * crin.h: update grid alignment of matrix identifiers * crin.h: add matrix diagram * physically position matrix identifiers for LAYOUT_all - move k2d to top row (right half of split Backspace) - move k41 to fourth row (right half of split Left Shift [KC_NUBS]) * physically position matrix identifiers for LAYOUT_iso - move k1d to top row ([KC_NUHS]) - add k41 to fourth row ([KC_NUBS], previously missing) * refactor keymaps - grid-align keycodes - use four-space indent * correct data for LAYOUT_iso - move Enter key to home row * rename LAYOUT_tsangan to LAYOUT_ansi_tsangan * add LAYOUT_iso_tsangan * update readme.md - add `make` command for building - add "Flashing example..." - touch-up bootloader jump instructions (previous Markdown didn't render ideally on GitHub) * extend keymap functionality - add Grave Accent, Function keys, Print Screen, Scroll Lock and Pause keycodes to keymaps - add RESET keycode (Fn+R) - use KC_RGHT for Right arrow * touch-up bootloader instructions on readme - note that Bootmagic Lite jump erases persistent settings - note that Fn+R is RESET keycode by default --- keyboards/crin/crin.h | 118 ++++--- keyboards/crin/info.json | 406 +++++++++++++++++++++++- keyboards/crin/keymaps/default/keymap.c | 62 ++-- keyboards/crin/keymaps/via/keymap.c | 62 ++-- keyboards/crin/readme.md | 12 +- 5 files changed, 544 insertions(+), 116 deletions(-) diff --git a/keyboards/crin/crin.h b/keyboards/crin/crin.h index 3b234c0072bd..160fc0b393a4 100644 --- a/keyboards/crin/crin.h +++ b/keyboards/crin/crin.h @@ -21,58 +21,92 @@ along with this program. If not, see . #define kxx KC_NO -#define LAYOUT_default( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - 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, k3d, k3f, \ - k40, k41, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ +/* + * ┌───────┐ + * 2u Backspace │0d │ + * └───────┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ │0e │0f │0g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ┌─────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ │1e │1f │1g │ │ │ ISO + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2c │ Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │1d │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤ + * │30 │ │30 │41 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │ │3f │ │3b │ 2.75u RShift + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ └──────────┘ + * │40 │42 │43 │ 45 │49 │4a │4b │4d │ │4e │4f │4g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │40 │42 │43 │ 45 │4a │4b │4d │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3f, \ + k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, kxx, kxx, kxx }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, k3d, kxx, k3f, kxx }, \ - { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, k3d, kxx, k3f, kxx }, \ + { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ } #define LAYOUT_ansi( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ - k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ - { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ } -#define LAYOUT_tsangan( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ - k40, k42, k43, k45, k4a, k4b, k4d, k4e, k4f, k4g \ +#define LAYOUT_ansi_tsangan( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k4a, k4b, k4d, k4e, k4f, k4g \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ - { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ } #define LAYOUT_iso( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ - k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, k2c, \ + k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} + +#define LAYOUT_iso_tsangan( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, k2c, \ + k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k4a, k4b, k4d, k4e, k4f, k4g \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ - { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ } diff --git a/keyboards/crin/info.json b/keyboards/crin/info.json index daccb9bbcd08..a21e3ec395ae 100644 --- a/keyboards/crin/info.json +++ b/keyboards/crin/info.json @@ -2,20 +2,410 @@ "keyboard_name": "Crin", "url": "https://bachoo.com", "maintainer": "KnoblesseOblige", - "width": 17, + "width": 18.5, "height": 5, + "layout_aliases": { + "LAYOUT_default": "LAYOUT_all", + "LAYOUT_tsangan": "LAYOUT_ansi_tsangan" + }, "layouts": { - "LAYOUT_default": { - "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}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "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}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "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}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"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}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":16.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}] + "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}, + {"label":"|", "x":13, "y":0}, + {"label":"~", "x":14, "y":0}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "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":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "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":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":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "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":"GUI", "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":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] }, - "LAYOUT_ansi": { - "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}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "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}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "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}, {"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}, {"x":16.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}] + "LAYOUT_ansi": { + "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}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "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":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "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":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "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":"GUI", "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":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] }, - "LAYOUT_tsangan": { - "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}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "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}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "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}, {"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}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":16.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}] + "LAYOUT_ansi_tsangan": { + "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}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "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":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "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":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"GUI", "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":"GUI", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, + {"label":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] }, "LAYOUT_iso": { - "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}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "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}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "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}, {"x":12.75, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"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}, {"x":16.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}] + "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}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "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":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "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":"ISO~", "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":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "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":"GUI", "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":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] + }, + "LAYOUT_iso_tsangan": { + "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}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "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":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "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":"ISO~", "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":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"GUI", "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":"GUI", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, + {"label":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] } } } diff --git a/keyboards/crin/keymaps/default/keymap.c b/keyboards/crin/keymaps/default/keymap.c index 7058b0cafc6d..87bae7da65d4 100644 --- a/keyboards/crin/keymaps/default/keymap.c +++ b/keyboards/crin/keymaps/default/keymap.c @@ -29,35 +29,35 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_tsangan( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT - ), - - [_FN1] = LAYOUT_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_FN2] = LAYOUT_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_FN3] = LAYOUT_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) + [_BASE] = LAYOUT_ansi_tsangan( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_ansi_tsangan( + 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_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN2] = LAYOUT_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/crin/keymaps/via/keymap.c b/keyboards/crin/keymaps/via/keymap.c index 7058b0cafc6d..87bae7da65d4 100644 --- a/keyboards/crin/keymaps/via/keymap.c +++ b/keyboards/crin/keymaps/via/keymap.c @@ -29,35 +29,35 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_tsangan( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT - ), - - [_FN1] = LAYOUT_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_FN2] = LAYOUT_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_FN3] = LAYOUT_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) + [_BASE] = LAYOUT_ansi_tsangan( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_ansi_tsangan( + 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_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN2] = LAYOUT_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/crin/readme.md b/keyboards/crin/readme.md index 36a2080c422d..1912cee1f78e 100644 --- a/keyboards/crin/readme.md +++ b/keyboards/crin/readme.md @@ -8,13 +8,17 @@ Crin is an F-rowless 65%. Make example for this keyboard (after setting up your build environment): + make crin:default + +Flashing example for this keyboard: + make crin:default:flash -To enter the bootloader either: +To reset the board into bootloader mode, do one of the following: -0. Hold Esc while plugging the PCB in, if BOOTMAGIC lite is enabled. -0. Press the RESET keycode, if programmed on the keymap. -0. Slide the switch just below the reset button to the left and press the reset button. +* Hold Esc while plugging the PCB in, if Bootmagic Lite is enabled (also erases persistent settings). +* Press the RESET keycode, if programmed on the keymap (Fn+R by default). +* Slide the switch just below the reset button to the left and press the reset button. * Please note that you must slide it back to the right for the PCB to boot QMK again. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From ade989962af613b24687f20f54e2dd0e37240216 Mon Sep 17 00:00:00 2001 From: Joshua T Date: Fri, 13 Aug 2021 20:14:21 -0500 Subject: [PATCH 252/328] [Keymap] clean up userspace, add XD75 / Keyboardio Atreus (#13121) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- .../atreus/keymaps/replicaJunction/config.h | 56 +- .../atreus/keymaps/replicaJunction/keymap.c | 135 ++-- .../replicaJunction/kle/base-layer.txt | 34 - .../keymaps/replicaJunction/kle/e-layer.txt | 34 - .../keymaps/replicaJunction/kle/fn-layer.txt | 35 - .../keymaps/replicaJunction/kle/i-layer.txt | 34 - .../keymaps/replicaJunction/kle/r-layer.txt | 34 - .../replicaJunction/kle/space-layer.txt | 34 - .../atreus/keymaps/replicaJunction/readme.md | 102 +-- .../atreus/keymaps/replicaJunction/rules.mk | 34 +- .../atreus/keymaps/replicaJunction/config.h | 51 ++ .../atreus/keymaps/replicaJunction/keymap.c | 94 +++ .../atreus/keymaps/replicaJunction/readme.md | 6 + .../atreus/keymaps/replicaJunction/rules.mk | 29 + .../xd75/keymaps/replicaJunction/config.h | 51 ++ .../xd75/keymaps/replicaJunction/keymap.c | 138 ++++ .../xd75/keymaps/replicaJunction/readme.md | 5 + .../xd75/keymaps/replicaJunction/rules.mk | 29 + .../ergodox/replicaJunction/config.h | 60 +- .../ergodox/replicaJunction/keymap.c | 725 ++++++++---------- .../ergodox/replicaJunction/readme.md | 93 +-- .../ergodox/replicaJunction/rules.mk | 35 +- users/replicaJunction/config.h | 66 -- users/replicaJunction/features/.gitignore | 2 + users/replicaJunction/features/caps_word.c | 105 +++ users/replicaJunction/features/caps_word.h | 26 + users/replicaJunction/features/mouse_jiggle.c | 46 ++ users/replicaJunction/features/mouse_jiggle.h | 23 + users/replicaJunction/features/num_word.c | 129 ++++ users/replicaJunction/features/num_word.h | 27 + users/replicaJunction/features/secrets.c | 51 ++ users/replicaJunction/features/secrets.h | 30 + .../replicaJunction/features/super_alt_tab.c | 52 ++ .../replicaJunction/features/super_alt_tab.h | 27 + users/replicaJunction/keycode_aliases.h | 85 ++ users/replicaJunction/matrix_scan.c | 35 + users/replicaJunction/process_records.c | 149 ++++ users/replicaJunction/process_records.h | 21 + users/replicaJunction/readme.md | 101 ++- users/replicaJunction/replicaJunction.c | 164 +--- users/replicaJunction/replicaJunction.h | 138 +--- users/replicaJunction/rj_keycodes.h | 63 ++ users/replicaJunction/rj_layers.h | 40 + users/replicaJunction/rules.mk | 32 + 44 files changed, 2060 insertions(+), 1200 deletions(-) delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/base-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/e-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/fn-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/i-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/r-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/space-layer.txt create mode 100644 keyboards/keyboardio/atreus/keymaps/replicaJunction/config.h create mode 100644 keyboards/keyboardio/atreus/keymaps/replicaJunction/keymap.c create mode 100644 keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md create mode 100644 keyboards/keyboardio/atreus/keymaps/replicaJunction/rules.mk create mode 100644 keyboards/xd75/keymaps/replicaJunction/config.h create mode 100644 keyboards/xd75/keymaps/replicaJunction/keymap.c create mode 100644 keyboards/xd75/keymaps/replicaJunction/readme.md create mode 100644 keyboards/xd75/keymaps/replicaJunction/rules.mk delete mode 100644 users/replicaJunction/config.h create mode 100644 users/replicaJunction/features/.gitignore create mode 100644 users/replicaJunction/features/caps_word.c create mode 100644 users/replicaJunction/features/caps_word.h create mode 100644 users/replicaJunction/features/mouse_jiggle.c create mode 100644 users/replicaJunction/features/mouse_jiggle.h create mode 100644 users/replicaJunction/features/num_word.c create mode 100644 users/replicaJunction/features/num_word.h create mode 100644 users/replicaJunction/features/secrets.c create mode 100644 users/replicaJunction/features/secrets.h create mode 100644 users/replicaJunction/features/super_alt_tab.c create mode 100644 users/replicaJunction/features/super_alt_tab.h create mode 100644 users/replicaJunction/keycode_aliases.h create mode 100644 users/replicaJunction/matrix_scan.c create mode 100644 users/replicaJunction/process_records.c create mode 100644 users/replicaJunction/process_records.h create mode 100644 users/replicaJunction/rj_keycodes.h create mode 100644 users/replicaJunction/rj_layers.h diff --git a/keyboards/atreus/keymaps/replicaJunction/config.h b/keyboards/atreus/keymaps/replicaJunction/config.h index 8e786aa0da8b..a02f9a95dbad 100644 --- a/keyboards/atreus/keymaps/replicaJunction/config.h +++ b/keyboards/atreus/keymaps/replicaJunction/config.h @@ -1,11 +1,51 @@ +/* Copyright 2021 Joshua T. + * + * 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 -// Layer definitions +// Do not allow one macro to contain the other macro +#define DYNAMIC_MACRO_NO_NESTING + +// "THE most important tap hold configuration setting" +// https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt +// https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt +#define IGNORE_MOD_TAP_INTERRUPT + +// This one is a style choice. Play with it both on and off to see which +// one suits you better. +// https://precondition.github.io/home-row-mods#permissive-hold +// https://docs.qmk.fm/#/tap_hold?id=permissive-hold +#define PERMISSIVE_HOLD + +// If you press a dual-role key for longer than TAPPING_TERM, then +// release it without pressing another key, without this setting nothing +// would happen. With this setting, it sends the key's tap function. +// https://precondition.github.io/home-row-mods#retro-tapping +#define RETRO_TAPPING + +// Disable some unused features to save space +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +///// +// Flags for stuff in my userspace + +#define USER_INCLUDE_GAMING_LAYER +#define USER_INCLUDE_MACRO_LAYER -#define L_COLEMAK 0 -#define L_NUM 1 -#define L_EXTEND 2 -#define L_FUNC 3 -#define L_LL_R 4 -#define L_LL_E 5 -#define L_LL_I 6 +// "Super Alt-Tab" +// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab +#define USER_SUPER_ALT_TAB_TIMEOUT 500 diff --git a/keyboards/atreus/keymaps/replicaJunction/keymap.c b/keyboards/atreus/keymaps/replicaJunction/keymap.c index c3cc371151f2..32cc95d2fd23 100644 --- a/keyboards/atreus/keymaps/replicaJunction/keymap.c +++ b/keyboards/atreus/keymaps/replicaJunction/keymap.c @@ -1,78 +1,95 @@ -/* - * Keyboard: Atreus - * Keymap: replicaJunction - * Version: 2.1 +/* Copyright 2021 Joshua T. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #include QMK_KEYBOARD_H #include "replicaJunction.h" +#define BSP_SYM LT(L_SYMBOLS, KC_BSPC) +#define SPC_NAV LT(L_NAVIGATION, KC_SPC) +#define EQL_FUN LT(L_FN, KC_EQL) + +#define ESC_SFT LSFT_T(KC_ESC) +#define TAB_SFT RSFT_T(KC_TAB) + +#define DF_TYPE DF(L_BASE) +#define DF_GAME DF(L_GAMING) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[L_COLEMAK] = LAYOUT( - KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, - KC_A, KC_R_LT, KC_S_LT, KC_T, KC_G, KC_M, KC_N, KC_E_LT, KC_I_LT, KC_O, - KX_Z_MT, KX_X_MT, KX_C_MT, KX_D_MT, KC_V, KC_K, KX_H_MT, KX_COMT, KX_DOMT, KX_SLMT, - TD_LAYR, KC_LGUI, KC_TAB, KC_LSFT, KX_BKNM, KX_DCTL, KX_NALT, KX_SPAC, KC_RSFT, KC_MINS, KC_QUOT, KC_EQL -) -, +[L_BASE] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH, + KC_ESC, KC_LGUI,KC_TAB, ESC_SFT,BSP_SYM,CTL_DEL,ALT_ENT,SPC_NAV,TAB_SFT,KC_MINS,KC_QUOT,EQL_FUN +), -[L_NUM] = LAYOUT( - KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_SLSH, KC_COLN, KC_7, KC_8, KC_9, KC_SLSH, - KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_PIPE, KC_HASH, KC_4, KC_5, KC_6, KC_ASTR, - KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BSLS, KC_BSPC, KC_1, KC_2, KC_3, KC_MINS, - _______, KC_AMPR, KC_TILD, KC_GRV, ooooooo, _______, KC_ENT, MO_FUNC, KC_0, KC_DOT, KC_EQL, KC_PLUS -) -, +[L_GAMING] = LAYOUT( + _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, + _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, + _______,_______,KC_C, KC_D, _______, _______,_______,_______,_______,_______, + _______,KC_TAB, KC_LALT,KC_LSFT,KC_SPC, KC_LCTL,KC_LALT,KC_BSPC,KC_BTN1,KC_BTN2,KC_BTN3,_______ +), -[L_EXTEND] = LAYOUT( - _______, _______, _______, KC_APP, KX_CGR, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, - KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, - _______, _______, _______, KX_SRCH, KX_PAST, _______, KX_STAB, KC_TAB, _______, KC_INS, - _______, _______, _______, _______, MO_FUNC, KC_DEL, KC_ENT, _______, _______, _______, _______, KC_PSCR -) -, +[L_NUMBERS] = LAYOUT( + _______,_______,_______,_______,_______, KC_HASH,KC_7, KC_8, KC_9, KC_SLSH, + _______,_______,_______,_______,_______, KC_PLUS,KC_4, KC_5, KC_6, KC_ASTR, + _______,_______,_______,_______,_______, KC_MINS,KC_1, KC_2, KC_3, KC_BSLS, + _______,_______,_______,_______,_______,_______,_______,_______,KC_0, KC_0, KC_DOT, KC_ENT +), -[L_FUNC] = LAYOUT( - _______, _______, M_LCLIK, M_RCLIK, M_MCLIK, KC_VOLU, KC_F9, KC_F10, KC_F11, KC_F12, - KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, M_WHLUP, KC_MUTE, KC_F5, KC_F6, KC_F7, KC_F8, - M_LEFT, M_DOWN, M_UP, M_RIGHT, M_WHLDN, KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) -, +[L_SYMBOLS] = LAYOUT( + KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX, XXXXXXX,KC_LBRC,KC_UNDS,KC_RBRC,XXXXXXX, + KC_BSLS,KC_LPRN,KC_DQUO,KC_RPRN,KC_HASH, KC_PERC,KC_LCBR,KC_EQL, KC_RCBR,KC_PIPE, + KC_EXLM,KC_COLN,KC_ASTR,KC_PLUS,XXXXXXX, XXXXXXX,KC_AMPR,KC_CIRC,KC_TILD,KC_GRV, + _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,CAPWORD,_______,_______,_______ +), -[L_LL_R] = LAYOUT( - _______, _______, _______, _______, _______, KC_COLN, KC_P7, KC_P8, KC_P9, KC_PSLS, - _______, ooooooo, KC_AMPR, KC_PIPE, _______, KC_HASH, KC_P4, KC_P5, KC_P6, KC_PAST, - _______, _______, _______, _______, _______, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PMNS, - _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, KC_PLUS -) -, +[L_NAVIGATION] = LAYOUT( + OS_UNDO,OS_CUT, OS_PAST,OS_COPY,OS_SALL, KC_PGUP,KC_HOME,KC_UP, KC_END, KC_DEL, + KC_LGUI,KC_LALT,KC_LSFT,KC_LCTL,_______, KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_BSPC, + WIN_V, _______,_______,OS_FIND,SEARCH, _______,SFT_TAB,KC_TAB, KC_APP, KC_PSCR, + _______,_______,_______,NUMWORD,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______ +), -[L_LL_E] = LAYOUT( - RJ_MAKE, RJ_EQ, RJ_LEQ, RJ_GEQ, RJ_GEQR, _______, _______, _______, _______, _______, - _______, _______, RJ_SELS, RJ_DUND, _______, _______, _______, ooooooo, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) -, +[L_FN] = LAYOUT( + RESET, _______,_______,_______,_______, KC_VOLU,KC_F9, KC_F10, KC_F11, KC_F12, + MS_JIGL,_______,_______,_______,_______, KC_MUTE,KC_F5, KC_F6, KC_F7, KC_F8, + _______,K_SECR1,K_SECR2,K_SECR3,K_SECR4, KC_VOLD,KC_F1, KC_F2, KC_F3, KC_F4, + DF_TYPE,DF_GAME,_______,_______,_______,KC_LCTL,KC_LALT,_______,_______,_______,_______,ooooooo +), -[L_LL_I] = LAYOUT( - KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_SLSH, _______, KC_UNDS, KC_GRV, _______, _______, - KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_MINS, KC_QUOT, ooooooo, _______, - KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_TILD, KC_DQT, _______, _______, - _______, KC_AMPR, KC_LABK, KC_RABK, _______, _______, _______, _______, _______, _______, _______, _______ +[L_MACROS] = LAYOUT( + QK_MAKE,_______,DM_REC2,DM_REC1,DM_RSTP, _______,SHEBANG,_______,_______,_______, + QK_FLSH,_______,DM_PLY2,DM_PLY1,_______, PRG_NE, PRG_EQ, PRG_GEQ,PRG_LEQ,PRG_ARR, + QK_VERS,_______,_______,_______,_______, _______,PS_ITEM,FS_PIPE,_______,FS_ARR, + _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______ ) -}; -// Uncomment any of these to add keyboard-specific code. Otherwise, they -// will use user defaults defined in the replicaJunction.h header file. +// Template +// [L_FUNC] = LAYOUT( +// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +// ), -// bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { -// return true; -// } +}; -// void matrix_init_keymap(void) {}; +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, L_SYMBOLS, L_NAVIGATION, L_MACROS); +} -// void matrix_scan_keymap(void) {}; diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/base-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/base-layer.txt deleted file mode 100644 index aec41316f23c..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/base-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2},"F"], -[{y:-0.65,x:1},"W",{x:1},"P"], -[{y:-0.75},"Q"], -[{y:-0.9,x:4},"B"], -[{y:-0.7,x:2},"S"], -[{y:-0.65,x:1,c:"#45b866"},"R",{x:1,c:"#cccccc"},"T"], -[{y:-0.75},"A"], -[{y:-0.9,x:4},"G"], -[{y:-0.7,x:2},"C\n\n\n"], -[{y:-0.65,x:1},"X\n\n\nCtrl",{x:1},"D\n\n\nCtrlAlt"], -[{y:-0.75},"Z"], -[{y:-0.9,x:4},"V\n\n\nAlt"], -[{y:-0.75,x:5,h:1.5},"Del\nCtrl"], -[{y:-0.95,x:2},"Tab"], -[{y:-0.65,x:1,a:7,fa:[7]},"",{x:1,a:4,f:3},"Shift"], -[{y:-0.75,f:3},"Layer tap"], -[{y:-0.9,x:4,f:3},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,f:3},"U"], -[{y:-0.65,x:1,f:3},"L",{x:1,f:3},"Y"], -[{y:-0.75,x:4,f:3},":\n;"], -[{y:-0.9,f:3},"J"], -[{y:-0.7,x:2,c:"#ffb07b",f:3},"E"], -[{y:-0.65,x:1,c:"#cccccc",f:3},"N",{x:1,c:"#5dcde3",f:3},"I"], -[{y:-0.75,x:4,c:"#cccccc",f:3},"O"], -[{y:-0.9,f:3},"M"], -[{y:-0.7,x:2,f:3},"<\n,\n\nCtrlAlt"], -[{y:-0.65,x:1,f:3},"H\n\n\nAlt",{x:1,f:3},">\n.\n\n"], -[{y:-0.75,x:4,f:3},"?\n/\n\nCtrl"], -[{y:-0.9,f:3},"K"], -[{y:-0.75,x:-1,f:3,h:1.5},"Enter\nAlt"], -[{y:-0.95,x:2,f:3},"_\n-"], -[{y:-0.65,x:1,f:3},"Shift",{x:1,f:3},"\"\n'"], -[{y:-0.75,x:4,f:3},"+\n="], -[{y:-0.9,c:"#ffe08d",f:3},"Space"] diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/e-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/e-layer.txt deleted file mode 100644 index 2b4105b2b42f..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/e-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2},"<="], -[{y:-0.65,x:1},"==",{x:1},">="], -[{y:-0.75},"make"], -[{y:-0.9,x:4},"=>"], -[{y:-0.7,x:2},"select *"], -[{y:-0.65,x:1,a:7},"",{x:1,a:4},"$_"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.75,x:5,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.7,x:2,c:"#ffb07b"},""], -[{y:-0.65,x:1,c:"#cccccc"},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.7,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.75,x:-1,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""] diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/fn-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/fn-layer.txt deleted file mode 100644 index d45fb7e97dc1..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/fn-layer.txt +++ /dev/null @@ -1,35 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2},"RClick"], -[{y:-0.65,x:1,a:7},"",{x:1,a:4},"LClick"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4,a:4},"MClick"], -[{y:-0.7,x:2},"Alt"], -[{y:-0.65,x:1},"Shift",{x:1},"Ctrl"], -[{y:-0.75,a:7,fa:[7]},""], -[{y:-0.9,x:4,a:4,fa:[5,0,0,0,0,0,0,0,0,0,7]},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.7,x:2,fa:[0,0,0,0,0,0,0,0,0,0,7]},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.65,x:1},"\n\n\n\n\n\n\n\n\n\n",{x:1},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.75},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.9,x:4,fa:[5,0,0,0,0,0,0,0,0,0,7]},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.75,x:5,a:7,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4,c:"#ffe08d"},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,c:"#cccccc",a:4,f:3},"F10"], -[{y:-0.65,x:1,f:3},"F9",{x:1,f:3},"F11"], -[{y:-0.75,x:4,f:3},"F12"], -[{y:-0.9,a:7},""], -[{y:-0.7,x:2,a:4,f:3},"F6"], -[{y:-0.65,x:1,f:3},"F5",{x:1,f:3},"F7"], -[{y:-0.75,x:4,f:3},"F8"], -[{y:-0.9,a:7},""], -[{y:-0.7,x:2,a:4,f:3},"F2"], -[{y:-0.65,x:1,f:3},"F1",{x:1,f:3},"F3"], -[{y:-0.75,x:4,f:3},"F4"], -[{y:-0.9,a:7},""], -[{y:-0.75,x:-1,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9,c:"#ffe08d"},""] - diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/i-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/i-layer.txt deleted file mode 100644 index 45bef783a30b..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/i-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2},"{"], -[{y:-0.65,x:1},"@",{x:1},"}"], -[{y:-0.75},"!"], -[{y:-0.9,x:4},"/"], -[{y:-0.7,x:2},"("], -[{y:-0.65,x:1},"$",{x:1},")"], -[{y:-0.75},"#"], -[{y:-0.9,x:4},"|"], -[{y:-0.7,x:2},"["], -[{y:-0.65,x:1},"^",{x:1},"]"], -[{y:-0.75},"%"], -[{y:-0.9,x:4},"\\"], -[{y:-0.75,x:5,a:7,h:1.5},""], -[{y:-0.95,x:2,a:4},"<"], -[{y:-0.65,x:1},"&",{x:1},">"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,a:4},"`"], -[{y:-0.65,x:1},"_",{x:1,a:7},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.7,x:2,a:4},"'"], -[{y:-0.65,x:1},"-",{x:1,c:"#5dcde3",a:7},""], -[{y:-0.75,x:4,c:"#cccccc"},""], -[{y:-0.9},""], -[{y:-0.7,x:2,a:4},"\""], -[{y:-0.65,x:1},"~",{x:1,a:7},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.75,x:-1,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""] diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/r-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/r-layer.txt deleted file mode 100644 index 3d44383863ab..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/r-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2,a:7},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2,a:4},"&"], -[{y:-0.65,x:1,c:"#45b866",a:7},"",{x:1,c:"#cccccc",a:4},"|"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.75,x:5,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,a:4},"8"], -[{y:-0.65,x:1},"7",{x:1},"9"], -[{y:-0.75,x:4},"/"], -[{y:-0.9},":"], -[{y:-0.7,x:2},"5"], -[{y:-0.65,x:1},"4",{x:1},"6"], -[{y:-0.75,x:4},"*"], -[{y:-0.9},"#"], -[{y:-0.7,x:2},"2"], -[{y:-0.65,x:1},"1",{x:1},"3"], -[{y:-0.75,x:4},"-"], -[{y:-0.9},""], -[{y:-0.75,x:-1,a:7,h:1.5},""], -[{y:-0.95,x:2,a:4},"."], -[{y:-0.65,x:1},"0",{x:1},"="], -[{y:-0.75,x:4},"+"], -[{y:-0.9},"Space"] diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/space-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/space-layer.txt deleted file mode 100644 index d1ffa35f895d..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/space-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2,a:7},""], -[{y:-0.65,x:1},"",{x:1,fa:[7]},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2,a:4,f:3},"Alt"], -[{y:-0.65,x:1,f:3},"Shift",{x:1,f:3},"Ctrl"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.75,x:5,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2},""], -[{y:-0.65,x:1,a:4,f:3},"Home",{x:1,f:3},"End"], -[{y:-0.75,x:4,f:3},"Delete"], -[{y:-0.9,f:3},"PgUp"], -[{y:-0.7,x:2,a:7},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4,a:4,f:3},"Bksp"], -[{y:-0.9,f:3},"PgDn"], -[{y:-0.7,x:2,f:3},"Tab"], -[{y:-0.65,x:1,f:3},"Shift+\n\n\n\n\n\nTab",{x:1,a:7},""], -[{y:-0.75,x:4,a:4,f:3},"Insert"], -[{y:-0.9,a:7},""], -[{y:-0.75,x:-1,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4,a:4,f:3},"Prnt Scrn"], -[{y:-0.9,c:"#ffe08d",a:7},""] diff --git a/keyboards/atreus/keymaps/replicaJunction/readme.md b/keyboards/atreus/keymaps/replicaJunction/readme.md index f1d6c47b132e..6aa356f4f733 100644 --- a/keyboards/atreus/keymaps/replicaJunction/readme.md +++ b/keyboards/atreus/keymaps/replicaJunction/readme.md @@ -1,103 +1,7 @@ # replicaJunction - Atreus Layout -This layout is designed to make the absolute most out of the Atreus 40% keyboard. +I no longer actively use this keyboard. I've replaced it with the [Keyboardio Atreus](../../../keyboardio/atreus/keymaps/replicaJunction/readme.md). -This layout is probably not perfect for you. That's okay! Use it for ideas as you design your own perfect layout. +I still try to make sure the layout compiles, but I'm no longer tweaking it or adding new features. -Most of the custom logic in this keyboard is actually not in these files. Instead, it's in the directory `/users/replicaJunction` (from the root of the QMK repo). This allows me to share macros and custom logic between multiple keyboards. A `process_record_keyboard()` function defined weakly in `replicaJunction.h` allows keyboards to process records individually as well without overriding the `process_record_user()` function. (My Ergodox uses this to handle its LEDs, for example.) - -The default letter layout in this keymap is [Colemak-ModDH](https://colemakmods.github.io/mod-dh/). I use the "matrix version" of that layout, which retains the M key on the home row as in normal Colemak. - -## Design Goals - -I designed this layout with the following goals in mind: - -* Nothing may interfere with ordinary typing. -* Symbols need to be accessible quickly and organized in a manner I can remember. -* Limit more difficult finger movements (and pinky usage in general). - -### Nothing may interfere with ordinary typing - -For a long time, this meant that I couldn't use letters or home row keys as dual-role keys. I'm a fast typer, and I'm sometimes already typing the next letter before I've fully released the previous one. Normal keyboards don't care about this, but if I started adding dual-role functionality to letters, I found that I would sometimes type the next letter before releasing the layer toggle, and the letter I tried to send would still be sent under the layer I thought I'd left off. - -Fortunately, though, QMK has addressed this with the `PERMISSIVE_HOLD` flag. [Details are on the QMK docs page.](https://docs.qmk.fm/#/feature_advanced_keycodes?id=permissive-hold) - -Using that flag, I'm comfortable having layer shift keys on the home row, and this goes a long way to eliminate finger stress. - -### Sympols need to be accessible quickly - -Symbols are available under my left hand by holding the I key (on my right hand). I've grouped parenthesis, slashes, and braces together; the remaining symbols are ordered in the same way as they appear on USA keycap legends (for example, 1 is !, so that symbol is first in my lineup). Practically, I just had to get used to these other "misc" symbols. - -This also means that some symbols are accessible in more than one way. For example, the carats (greater than and less than) are available both in the "normal" location (Shift+Comma / Shift+Period) and on the symbol layer. I make regular changes to some of the symbols I don't use as commonly as I think of them. - -### Limit more difficult finger movements - -This is why I kept trying to put layer toggles on the home row keys instead of just placing them on random thumb keys. I suffer from RSI, and it's important for me to watch out for more "stressful" finger movements. - -The home row is the easiest row for your fingers to hit, followed by the upper row, and the lower row is noticeably more difficult to press. Because of this, I favored the upper row over the lower one any time I had the option to do so. - -## Features - -### ZXC Mods - -Keys on the bottom row of each half of this keyboard can be held to send modifier keys. I've tried to map this in a relatively logical manner: - -* Z / Slash: Ctrl -* X / Period: GUI -* C / Comma: Ctrl+Alt -* D / H: Alt - -Combined with Shift keys on the thumbs, this makes all modifiers quick to access on either hand. - -### Layer tap dance - -The lower-left key on the left hand can be used to apply or remove layers based on a number of taps: - -* 1 tap sends Escape, and also disables any persistent layers. -* 2 taps enables the Number pad layer. -* 5 or more taps resets the keyboard. - -## Extend Layer - -[Originally found on the Colemak forums](https://forum.colemak.com/topic/2014-extend-extra-extreme/), having a QMK-powered keyboard allows a super easy implementation of this concept. The idea is to place commonly-used keys under easy reach of your hands. Since I work with text often, my most common needs are things like Ctrl+Shift+arrow keys, and they're easy to access using this layer. (While technically it's four keypresses instead of just three, since it takes one key to enter the layer, that one key is a thumb button and the other three are all on the home row, so I find it much more comfortable than modifiers on a traditional keyboard.) - -Also featured in this layer is easy access to Tab, plus a Shift+Tab key. Alt-Tabbing back and forth, along with Ctrl-Tab, are super easy and friendly. When I need Ctrl+Alt+Delete, I typically use the ones found on this layer. - -## Layout Images - -Colored keys indicate keys that swap to another layer when held. - -These images are located in the `kle` folder of this directory. Also included is the "raw data" from Keyboard-Layout-Editor in a corresponding text file. - -### Base layer - -![Base layer](kle/base-layer.png) - -### R layer - -![R layer](kle/r-layer.png) - -### E layer - -![E layer](kle/i-layer.png) - -### I layer - -![I layer](kle/i-layer.png) - -### Space layer - -![Space layer](kle/space-layer.png) - -### Function layer - -![Function layer](kle/fn-layer.png) - -## Credits - -* [Drashna](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme.md) - * User / keymap function ideas -* [Jeremy](https://github.com/qmk/qmk_firmware/blob/master/keyboards/atreus/keymaps/jeremy/readme.md) - * Sanity check on the Function keys (_of course they should be in rows of 4, not rows of 3 like a number pad. Why did I ever use anything else?_) -* [DreymaR of the Colemak forums](https://forum.colemak.com/topic/2014-extend-extra-extreme/) - * Original idea of the Extend layer +Most of the interesting features in this layout are defined in [my userspace folder](../../../../users/replicaJunction/readme.md). Refer to the documentation and code there for more details. diff --git a/keyboards/atreus/keymaps/replicaJunction/rules.mk b/keyboards/atreus/keymaps/replicaJunction/rules.mk index 9ff9c3fbb23c..13730aec650d 100644 --- a/keyboards/atreus/keymaps/replicaJunction/rules.mk +++ b/keyboards/atreus/keymaps/replicaJunction/rules.mk @@ -1,12 +1,28 @@ -# https://docs.qmk.fm/getting_started_make_guide.html +# Userspace options +USER_CAPS_WORD_ENABLE = yes +USER_MOUSE_JIGGLE_ENABLE = yes +USER_NUM_WORD_ENABLE = yes +USER_SECRETS_ENABLE = yes -MOUSEKEY_ENABLE = yes -TAP_DANCE_ENABLE = yes -# KEY_LOCK_ENABLE = yes -# CONSOLE_ENABLE = no -# COMMAND_ENABLE = no +DYNAMIC_MACRO_ENABLE = yes -# Use the "Unicode map" method -# UNICODE_ENABLE = no -# UNICODEMAP_ENABLE = yes +# Extra features that are nice but takes space. Enable only if they're +# used in the layout. +WPM_ENABLE = no +# EXTRAKEY_ENABLE = no # For volume keys and similar +# MOUSEKEY_ENABLE = no # Them mouse keys yo +KEY_OVERRIDE_ENABLE = no +LEADER_ENABLE = no +TAP_DANCE_ENABLE = no +# RGBLIGHT_ENABLE = no # Keyboard RGB underglow +RGB_MATRIX_ENABLE = no +# Features I definitely don't care aboud +LTO_ENABLE = yes +CONSOLE_ENABLE = no +VERBOSE = no +DEBUG_MATRIX_SCAN_RATE = no +DEBUG_MATRIX = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no diff --git a/keyboards/keyboardio/atreus/keymaps/replicaJunction/config.h b/keyboards/keyboardio/atreus/keymaps/replicaJunction/config.h new file mode 100644 index 000000000000..a02f9a95dbad --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/replicaJunction/config.h @@ -0,0 +1,51 @@ +/* Copyright 2021 Joshua T. + * + * 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 + +// Do not allow one macro to contain the other macro +#define DYNAMIC_MACRO_NO_NESTING + +// "THE most important tap hold configuration setting" +// https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt +// https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt +#define IGNORE_MOD_TAP_INTERRUPT + +// This one is a style choice. Play with it both on and off to see which +// one suits you better. +// https://precondition.github.io/home-row-mods#permissive-hold +// https://docs.qmk.fm/#/tap_hold?id=permissive-hold +#define PERMISSIVE_HOLD + +// If you press a dual-role key for longer than TAPPING_TERM, then +// release it without pressing another key, without this setting nothing +// would happen. With this setting, it sends the key's tap function. +// https://precondition.github.io/home-row-mods#retro-tapping +#define RETRO_TAPPING + +// Disable some unused features to save space +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +///// +// Flags for stuff in my userspace + +#define USER_INCLUDE_GAMING_LAYER +#define USER_INCLUDE_MACRO_LAYER + +// "Super Alt-Tab" +// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab +#define USER_SUPER_ALT_TAB_TIMEOUT 500 diff --git a/keyboards/keyboardio/atreus/keymaps/replicaJunction/keymap.c b/keyboards/keyboardio/atreus/keymaps/replicaJunction/keymap.c new file mode 100644 index 000000000000..9e47155f4418 --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/replicaJunction/keymap.c @@ -0,0 +1,94 @@ +/* Copyright 2021 Joshua T. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "replicaJunction.h" + +#define BSP_SYM LT(L_SYMBOLS, KC_BSPC) +#define SPC_NAV LT(L_NAVIGATION, KC_SPC) +#define EQL_FUN LT(L_FN, KC_EQL) + +#define ESC_SFT LSFT_T(KC_ESC) +#define TAB_SFT RSFT_T(KC_TAB) + +#define DF_TYPE DF(L_BASE) +#define DF_GAME DF(L_GAMING) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[L_BASE] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_D, KC_V, SALTTAB,KC_BSLS,KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH, + KC_ESC, KC_LGUI,KC_TAB, ESC_SFT,BSP_SYM,CTL_DEL,ALT_ENT,SPC_NAV,TAB_SFT,KC_MINS,KC_QUOT,EQL_FUN +), + +[L_GAMING] = LAYOUT( + _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, + _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, + _______,_______,KC_C, KC_D, _______,_______,KC_LOCK,_______,_______,_______,_______,_______, + _______,KC_TAB, KC_LALT,KC_LSFT,KC_SPC, KC_LCTL,KC_LALT,KC_BSPC,KC_BTN1,KC_BTN2,KC_BTN3,_______ +), + +[L_NUMBERS] = LAYOUT( + _______,_______,_______,_______,_______, KC_HASH,KC_7, KC_8, KC_9, KC_SLSH, + _______,_______,_______,_______,_______, KC_PLUS,KC_4, KC_5, KC_6, KC_ASTR, + _______,_______,_______,_______,_______,_______,_______,KC_MINS,KC_1, KC_2, KC_3, KC_BSLS, + _______,_______,_______,_______,_______,_______,_______,_______,KC_0, KC_0, KC_DOT, KC_ENT +), + +[L_SYMBOLS] = LAYOUT( + KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX, XXXXXXX,KC_LBRC,KC_UNDS,KC_RBRC,XXXXXXX, + KC_BSLS,KC_LPRN,KC_DQUO,KC_RPRN,KC_HASH, KC_PERC,KC_LCBR,KC_EQL, KC_RCBR,KC_PIPE, + KC_EXLM,KC_COLN,KC_ASTR,KC_PLUS,XXXXXXX,_______,_______,XXXXXXX,KC_AMPR,KC_CIRC,KC_TILD,KC_GRV, + _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,CAPWORD,_______,_______,_______ +), + +[L_NAVIGATION] = LAYOUT( + OS_UNDO,OS_CUT, OS_PAST,OS_COPY,OS_SALL, KC_PGUP,KC_HOME,KC_UP, KC_END, KC_DEL, + KC_LGUI,KC_LALT,KC_LSFT,KC_LCTL,_______, KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_BSPC, + WIN_V, _______,_______,OS_FIND,SEARCH, _______,_______,_______,SFT_TAB,KC_TAB, KC_APP, KC_PSCR, + _______,_______,_______,NUMWORD,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______ +), + +[L_FN] = LAYOUT( + _______,_______,_______,_______,_______, KC_VOLU,KC_F9, KC_F10, KC_F11, KC_F12, + _______,_______,_______,_______,_______, KC_MUTE,KC_F5, KC_F6, KC_F7, KC_F8, + _______,K_SECR1,K_SECR2,K_SECR3,K_SECR4,MS_JIGL,RESET, KC_VOLD,KC_F1, KC_F2, KC_F3, KC_F4, + DF_TYPE,DF_GAME,_______,_______,_______,KC_LCTL,KC_LALT,_______,_______,_______,_______,ooooooo +), + +[L_MACROS] = LAYOUT( + QK_MAKE,_______,DM_REC2,DM_REC1,DM_RSTP, _______,SHEBANG,_______,_______,_______, + QK_FLSH,_______,DM_PLY2,DM_PLY1,_______, PRG_NE, PRG_EQ, PRG_GEQ,PRG_LEQ,PRG_ARR, + QK_VERS,_______,_______,_______,_______,_______,_______,_______,PS_ITEM,FS_PIPE,_______,FS_ARR, + _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______ +) + + +// Template +// [L_FUNC] = LAYOUT( +// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +// ), + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, L_SYMBOLS, L_NAVIGATION, L_MACROS); +} diff --git a/keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md b/keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md new file mode 100644 index 000000000000..88f948a94f8a --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md @@ -0,0 +1,6 @@ +replicaJunction - Keyboardio Atreus +=================================== + +A 44-key layout designed for daily programming usage and occasional, light gaming. + +Most of the interesting logic in this is defined and described in [my userspace](../../../../../users/replicaJunction/readme.md), so check that out if you're interested in how things work. The CAPSWORD and NUMWORD features are especially important for a keyboard this size. diff --git a/keyboards/keyboardio/atreus/keymaps/replicaJunction/rules.mk b/keyboards/keyboardio/atreus/keymaps/replicaJunction/rules.mk new file mode 100644 index 000000000000..7e0b3c9cacca --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/replicaJunction/rules.mk @@ -0,0 +1,29 @@ +# Userspace options +USER_CAPS_WORD_ENABLE = yes +USER_MOUSE_JIGGLE_ENABLE = yes +USER_NUM_WORD_ENABLE = yes +USER_SECRETS_ENABLE = yes +USER_SUPER_ALT_TAB_ENABLE = yes + +DYNAMIC_MACRO_ENABLE = yes + +# Extra features that are nice but takes space. Enable only if they're +# used in the layout. +WPM_ENABLE = no +# EXTRAKEY_ENABLE = no # For volume keys and similar +# MOUSEKEY_ENABLE = no # Them mouse keys yo +KEY_OVERRIDE_ENABLE = no +LEADER_ENABLE = no +TAP_DANCE_ENABLE = no +# RGBLIGHT_ENABLE = no # Keyboard RGB underglow +RGB_MATRIX_ENABLE = no + +# Features I definitely don't care aboud +LTO_ENABLE = yes +CONSOLE_ENABLE = no +VERBOSE = no +DEBUG_MATRIX_SCAN_RATE = no +DEBUG_MATRIX = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no diff --git a/keyboards/xd75/keymaps/replicaJunction/config.h b/keyboards/xd75/keymaps/replicaJunction/config.h new file mode 100644 index 000000000000..a02f9a95dbad --- /dev/null +++ b/keyboards/xd75/keymaps/replicaJunction/config.h @@ -0,0 +1,51 @@ +/* Copyright 2021 Joshua T. + * + * 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 + +// Do not allow one macro to contain the other macro +#define DYNAMIC_MACRO_NO_NESTING + +// "THE most important tap hold configuration setting" +// https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt +// https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt +#define IGNORE_MOD_TAP_INTERRUPT + +// This one is a style choice. Play with it both on and off to see which +// one suits you better. +// https://precondition.github.io/home-row-mods#permissive-hold +// https://docs.qmk.fm/#/tap_hold?id=permissive-hold +#define PERMISSIVE_HOLD + +// If you press a dual-role key for longer than TAPPING_TERM, then +// release it without pressing another key, without this setting nothing +// would happen. With this setting, it sends the key's tap function. +// https://precondition.github.io/home-row-mods#retro-tapping +#define RETRO_TAPPING + +// Disable some unused features to save space +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +///// +// Flags for stuff in my userspace + +#define USER_INCLUDE_GAMING_LAYER +#define USER_INCLUDE_MACRO_LAYER + +// "Super Alt-Tab" +// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab +#define USER_SUPER_ALT_TAB_TIMEOUT 500 diff --git a/keyboards/xd75/keymaps/replicaJunction/keymap.c b/keyboards/xd75/keymaps/replicaJunction/keymap.c new file mode 100644 index 000000000000..71ef2a668386 --- /dev/null +++ b/keyboards/xd75/keymaps/replicaJunction/keymap.c @@ -0,0 +1,138 @@ +/* Copyright 2021 Joshua T. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "replicaJunction.h" + +// enum additional_keyboard_layers { +// L_RGB = _LAYER_SAFE_RANGE +// }; + +#define BSP_SYM LT(L_SYMBOLS, KC_BSPC) +#define SPC_NAV LT(L_NAVIGATION, KC_SPC) +#define ESC_NUM LT(L_NUMBERS, KC_ESC) +#define MO_FN MO(L_FN) +#define MO_MAC MO(L_MACROS) + +#define DF_TYPE DF(L_BASE) +#define DF_GAME DF(L_GAMING) + +#define ESC_SFT LSFT_T(KC_ESC) +#define TAB_SFT RSFT_T(KC_TAB) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [L_BASE] = LAYOUT_ortho_5x15( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_EQL, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_MINS, KC_A, KC_R, KC_S, KC_T, KC_G, SALTTAB, KC_UP, KC_END, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + NUMWORD, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, CAPWORD, + KC_LCTL, KC_LGUI, KC_LALT, MO_FN, ESC_SFT, BSP_SYM, CTL_DEL, KC_ENT, ALT_ENT, SPC_NAV, TAB_SFT, MO_FN, KC_RALT, KC_RGUI, KC_RCTL + ), + + + [L_GAMING] = LAYOUT_ortho_5x15( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LCTL, KC_LALT, KC_LSFT, KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, KC_SPC, MO_FN, KC_RALT, KC_RGUI, KC_RCTL + ), + + + // [L_QWERTY] = LAYOUT_ortho_5x15( + // KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + // KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, + // KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + // KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + // KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_RGUI, KC_RCTL + // ), + + + // [L_CURSOR] = LAYOUT_ortho_5x15( + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, OS_SALL, OS_COPY, OS_PAST, OS_CUT, OS_UNDO, _______, + // _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, _______, _______, _______, SEARCH, SALTTAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, + // _______, KC_RGUI, KC_RALT, KC_RSFT, KC_RCTL, _______, _______, _______, _______, OS_FIND, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, + // _______, _______, _______, _______, _______, ooooooo, _______, _______, _______, SPC_NAV, _______, _______, _______, _______, _______ + // ), + + + [L_NUMBERS] = LAYOUT_ortho_5x15( + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NLCK, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HASH, KC_P7, KC_P8, KC_P9, KC_PSLS, SFT_TAB, + _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, _______, _______, _______, _______, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TAB, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_BSLS, KC_EQL, + _______, _______, _______, _______, ooooooo, _______, _______, _______, _______, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, _______ + ), + + + [L_SYMBOLS] = LAYOUT_ortho_5x15( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX, _______, _______, _______, XXXXXXX, KC_LBRC, KC_UNDS, KC_RBRC, XXXXXXX, _______, + _______, KC_BSLS, KC_LPRN, KC_DQUO, KC_RPRN, KC_HASH, _______, _______, _______, KC_PERC, KC_LCBR, KC_EQL, KC_RCBR, KC_PIPE, _______, + _______, KC_EXLM, KC_COLN, KC_ASTR, KC_PLUS, XXXXXXX, _______, _______, _______, XXXXXXX, KC_AMPR, KC_CIRC, KC_TILD, KC_GRV, _______, + _______, _______, _______, _______, _______, ooooooo, _______, _______, _______, ooooooo, _______, _______, _______, _______, _______ + ), + + + [L_NAVIGATION] = LAYOUT_ortho_5x15( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, OS_UNDO, OS_CUT, OS_PAST, OS_COPY, OS_SALL, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, _______, + _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, _______, _______, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, _______, + _______, WIN_V, _______, _______, OS_FIND, SEARCH, _______, _______, _______, _______, SFT_TAB, KC_TAB, KC_APP, KC_PSCR, _______, + _______, _______, _______, _______, _______, ooooooo, _______, _______, _______, ooooooo, _______, _______, _______, _______, _______ + ), + + + [L_FN] = LAYOUT_ortho_5x15( + DF_TYPE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, MS_JIGL, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + DF_GAME, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, KC_F12, + _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_CAPS, RESET, _______, KC_MUTE, _______, _______, _______, _______, _______, + _______, RGB_M_P, RGB_M_B, _______, _______, _______, _______, _______, _______, KC_VOLD, K_SECR1, K_SECR2, K_SECR3, K_SECR4, _______, + _______, _______, _______, ooooooo, _______, _______, _______, _______, _______, _______, _______, ooooooo, _______, _______, _______ + ), + + + [L_MACROS] = LAYOUT_ortho_5x15( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, QK_MAKE, _______, DM_REC2, DM_REC1, _______, _______, _______, _______, _______, SHEBANG, _______, _______, _______, _______, + _______, QK_FLSH, _______, DM_PLY2, DM_PLY1, DM_RSTP, _______, _______, _______, PRG_NE, PRG_EQ, PRG_GEQ, PRG_LEQ, PRG_ARR, _______, + _______, QK_VERS, _______, _______, _______, _______, _______, _______, _______, _______, PS_ITEM, FS_PIPE, _______, FS_ARR, _______, + _______, _______, _______, _______, ooooooo, _______, _______, _______, _______, ooooooo, _______, _______, _______, _______, _______ + ) + + // [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */ + // _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NLCK, KC_SLSH, KC_ASTR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + // KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_F12, + // KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______, + // KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, + // _______, _______, RGB_TOG, ooooooo, RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, ooooooo, _______, _______, _______ + // ) + + // // Template + // [_LAYER] = LAYOUT_ortho_5x15( + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // ), +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, L_SYMBOLS, L_NAVIGATION, L_MACROS); +} diff --git a/keyboards/xd75/keymaps/replicaJunction/readme.md b/keyboards/xd75/keymaps/replicaJunction/readme.md new file mode 100644 index 000000000000..980a2f727218 --- /dev/null +++ b/keyboards/xd75/keymaps/replicaJunction/readme.md @@ -0,0 +1,5 @@ +# replicaJunction - XD75 layout + +As a longtime ortho user, I prefer the "pseudo-split" keymap, where the center 3 columns are used for other purposes. This leaves 6 columns on each side to used like a split Preonic. + +Most of the goodies in this layout are defined in [my userspace folder](../../../../users/replicaJunction/readme.md). Better explanations of the interesting features are provided there. diff --git a/keyboards/xd75/keymaps/replicaJunction/rules.mk b/keyboards/xd75/keymaps/replicaJunction/rules.mk new file mode 100644 index 000000000000..7e0b3c9cacca --- /dev/null +++ b/keyboards/xd75/keymaps/replicaJunction/rules.mk @@ -0,0 +1,29 @@ +# Userspace options +USER_CAPS_WORD_ENABLE = yes +USER_MOUSE_JIGGLE_ENABLE = yes +USER_NUM_WORD_ENABLE = yes +USER_SECRETS_ENABLE = yes +USER_SUPER_ALT_TAB_ENABLE = yes + +DYNAMIC_MACRO_ENABLE = yes + +# Extra features that are nice but takes space. Enable only if they're +# used in the layout. +WPM_ENABLE = no +# EXTRAKEY_ENABLE = no # For volume keys and similar +# MOUSEKEY_ENABLE = no # Them mouse keys yo +KEY_OVERRIDE_ENABLE = no +LEADER_ENABLE = no +TAP_DANCE_ENABLE = no +# RGBLIGHT_ENABLE = no # Keyboard RGB underglow +RGB_MATRIX_ENABLE = no + +# Features I definitely don't care aboud +LTO_ENABLE = yes +CONSOLE_ENABLE = no +VERBOSE = no +DEBUG_MATRIX_SCAN_RATE = no +DEBUG_MATRIX = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no diff --git a/layouts/community/ergodox/replicaJunction/config.h b/layouts/community/ergodox/replicaJunction/config.h index 9ffd74dccdcf..a02f9a95dbad 100644 --- a/layouts/community/ergodox/replicaJunction/config.h +++ b/layouts/community/ergodox/replicaJunction/config.h @@ -1,13 +1,51 @@ +/* Copyright 2021 Joshua T. + * + * 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 -// Layer definitions - -#define L_COLEMAK 0 -#define L_QWERTY 1 -#define L_NUM 2 -#define L_EXTEND 3 -#define L_FUNC 4 -#define L_GAMING 5 -#define L_LL_R 6 -#define L_LL_E 7 -#define L_LL_I 8 +// Do not allow one macro to contain the other macro +#define DYNAMIC_MACRO_NO_NESTING + +// "THE most important tap hold configuration setting" +// https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt +// https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt +#define IGNORE_MOD_TAP_INTERRUPT + +// This one is a style choice. Play with it both on and off to see which +// one suits you better. +// https://precondition.github.io/home-row-mods#permissive-hold +// https://docs.qmk.fm/#/tap_hold?id=permissive-hold +#define PERMISSIVE_HOLD + +// If you press a dual-role key for longer than TAPPING_TERM, then +// release it without pressing another key, without this setting nothing +// would happen. With this setting, it sends the key's tap function. +// https://precondition.github.io/home-row-mods#retro-tapping +#define RETRO_TAPPING + +// Disable some unused features to save space +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +///// +// Flags for stuff in my userspace + +#define USER_INCLUDE_GAMING_LAYER +#define USER_INCLUDE_MACRO_LAYER + +// "Super Alt-Tab" +// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab +#define USER_SUPER_ALT_TAB_TIMEOUT 500 diff --git a/layouts/community/ergodox/replicaJunction/keymap.c b/layouts/community/ergodox/replicaJunction/keymap.c index ce0400be5cdb..0c36abcf744e 100644 --- a/layouts/community/ergodox/replicaJunction/keymap.c +++ b/layouts/community/ergodox/replicaJunction/keymap.c @@ -1,427 +1,378 @@ -/* - * Keyboard: Ergodox - * Keymap: replicaJunction - * Version: 2.1 +/* Copyright 2021 Joshua T. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "config.h" #include "replicaJunction.h" -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// Most layers are defined in my userspace, but this keyboard has +// an extra one. +enum additional_keyboard_layers { + L_SYSLEDS = _LAYER_SAFE_RANGE +}; -[L_COLEMAK] = LAYOUT_ergodox( -//--------|--------|--------|--------|--------|--------|--------| - KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_GRV , -//--------|--------|--------|--------|--------|--------|--------| - KX_ECTL ,KC_Q ,KC_W ,KC_F ,KC_P ,KC_B ,KC_LBRC , -//--------|--------|--------|--------|--------|--------|--------| - KC_TAB ,KC_A ,KC_R_LT ,KC_S_LT ,KC_T ,KC_G, -//--------|--------|--------|--------|--------|--------|--------| - KC_LSFT ,KX_Z_MT ,KX_X_MT ,KX_C_MT ,KX_D_MT ,KC_V ,KC_RBRC , -//--------|--------|--------|--------|--------|--------|--------| - TD_LAYR ,KC_LGUI ,KC_HYPR ,KX_CTSF ,KC_LCTL , -//--------|--------|--------|--------|--------|--------|--------| - KC_HOME ,KC_END , -// |--------|--------| - KC_PGUP , -// |--------|--------|--------| - KX_BKNM ,KX_DCTL ,KC_PGDN , -// |--------|--------|--------| - -//--------|--------|--------|--------|--------|--------|-------| - TG_GAME ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_EQL , -//--------|--------|--------|--------|--------|--------|-------| - KC_DEL ,KC_J ,KC_L ,KC_U ,KC_Y ,KC_SCLN ,KC_BSLS, -//--------|--------|--------|--------|--------|--------|-------| - KC_M ,KC_N ,KC_E_LT ,KC_I_LT ,KC_O ,KC_QUOT, -//--------|--------|--------|--------|--------|--------|-------| - KC_LOCK ,KC_K ,KX_H_MT ,KX_COMT ,KX_DOMT ,KX_SLMT ,KC_RSFT, -//--------|--------|--------|--------|--------|--------|-------| - KC_LALT ,KC_MINS ,KC_QUOT ,KC_EQL ,TT_NUM , -//--------|--------|--------|--------|--------|--------|-------| - KC_LEFT ,KC_RGHT , -//--------|--------| - KC_UP , -//--------|--------|--------| - KC_DOWN ,KX_NALT ,KX_SPAC -//--------|--------|--------| +#define BSP_SYM LT(L_SYMBOLS, KC_BSPC) +#define SPC_NAV LT(L_NAVIGATION, KC_SPC) -), +#define MO_FN MO(L_FN) +#define MO_MAC MO(L_MACROS) +#define MO_SLED MO(L_SYSLEDS) + +#define TG_GAME TG(L_GAMING) + +#define ESC_SFT LSFT_T(KC_ESC) +#define TAB_SFT RSFT_T(KC_TAB) +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + -[L_QWERTY] = LAYOUT_ergodox( -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -// |--------|--------| - _______ , -// |--------|--------|--------| - _______ ,_______ ,_______ , -// |--------|--------|--------| - -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,KC_EQL , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT , -//--------|--------|--------|--------|--------|--------|--------| - KC_LOCK ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSPC , -//--------|--------|--------|--------|--------|--------|--------| - KC_RALT ,KC_MINS ,KC_QUOT ,KC_EQL ,TT_NUM , -//--------|--------|--------|--------|--------|--------|--------| - KC_LEFT ,KC_RGHT , -//--------|--------| - KC_UP , -//--------|--------|--------| - KC_DOWN ,KX_NALT ,KX_SPAC -//--------|--------|--------| +[L_BASE] = LAYOUT_ergodox( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, + KC_EQL, KC_Q, KC_W, KC_F, KC_P, KC_B, NUMWORD, + KC_MINS, KC_A, KC_R, KC_S, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_RBRC, + KC_LCTL, KC_LGUI ,KC_LALT, MO_FN, ESC_SFT, + KC_HOME, KC_END, + KC_PGUP, + BSP_SYM, CTL_DEL, KC_PGDN, + + TG_GAME, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + CAPWORD, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LOCK, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + TAB_SFT, MO_FN, KC_RALT, KC_RGUI, MO_SLED, + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, ALT_ENT, SPC_NAV ), +[L_GAMING] = LAYOUT_ergodox( + KC_GRV, _______,_______,_______,_______,_______,_______, + KC_TAB, _______,_______,_______,_______,_______,_______, + KC_ESC, KC_A, KC_R, KC_S, KC_T, _______, + KC_LSFT,_______,_______,KC_C, KC_D, _______,_______, + _______,_______,KC_TAB, KC_LALT,KC_LCTL, + KC_LOCK,_______, + _______, + KC_SPC, KC_LSFT,_______, + + ooooooo,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______, + _______,KC_N, KC_E, KC_I, KC_O, _______, + _______,_______,_______,_______,_______,_______,_______, + MO_FN, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, + KC_BTN3,_______, + KC_BTN2, + KC_BTN1,KC_ENT, KC_BSPC +), + -[L_NUM] = LAYOUT_ergodox( -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_SLSH ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_PIPE, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_BSLS ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,KC_AMPR ,KC_LABK ,KC_RABK, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -// |--------|--------| - _______ , -// |--------|--------|--------| - _______ ,_______ ,_______ , -// |--------|--------|--------| - -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_COLN ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PSLS ,KC_F12 , -//--------|--------|--------|--------|--------|--------|--------| - KC_HASH ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PAST ,KC_BSPC , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_BSPC ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PMNS ,KC_TAB , -//--------|--------|--------|--------|--------|--------|--------| - KC_P0 ,KC_PDOT ,KC_PEQL ,KC_PPLS ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -//--------|--------| - _______ , -//--------|--------|--------| - _______ ,KC_PENT ,MO_FUNC -//--------|--------|--------| +[L_NUMBERS] = LAYOUT_ergodox( + _______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______, + _______,KC_LGUI,KC_LALT,KC_LSFT,KC_LCTL,_______, + _______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______, + _______,_______, + _______, + _______,_______,_______, + + _______,KC_NLCK,_______,_______,_______,_______,_______, + KC_NLCK,KC_HASH,KC_P7, KC_P8, KC_P9, KC_PSLS,SFT_TAB, + KC_PPLS,KC_P4, KC_P5, KC_P6, KC_PAST,KC_TAB, + _______,KC_PMNS,KC_P1, KC_P2, KC_P3, KC_BSLS,KC_EQL, + KC_P0, KC_P0, KC_PDOT,KC_PENT,_______, + _______,_______, + _______, + _______,_______,_______ ), +[L_SYMBOLS] = LAYOUT_ergodox( + _______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, + _______,KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX,_______, + _______,KC_BSLS,KC_LPRN,KC_DQUO,KC_RPRN,KC_HASH, + _______,KC_EXLM,KC_COLN,KC_ASTR,KC_PLUS,XXXXXXX,_______, + _______,_______,_______,_______,_______, + _______,_______, + _______, + ooooooo,_______,_______, + + _______,KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______,XXXXXXX,KC_LBRC,KC_UNDS,KC_RBRC,XXXXXXX,KC_F12, + KC_PERC,KC_LCBR,KC_EQL, KC_RCBR,KC_PIPE,_______, + _______,XXXXXXX,KC_AMPR,KC_CIRC,KC_TILD,KC_GRV, _______, + _______,_______,_______,_______,_______, + _______,_______, + _______, + _______,_______,ooooooo +), + -[L_EXTEND] = LAYOUT_ergodox( -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,KC_APP ,KX_CGR, KC_VOLU, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,KX_SRCH, KX_PAST, KC_VOLD, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -// |--------|--------|--------| - _______ , -// |--------|--------|--------| - MO_FUNC, _______ ,_______ , -// |--------|--------|--------| - -//--------|--------|--------|--------|--------|--------|--------| - KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, _______ , -//--------|--------|--------|--------|--------|--------|--------| - KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, KC_MENU, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,KX_STAB, KC_TAB, _______ ,KC_INS, KC_PSCR, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,KC_PSCR, _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ -//--------|--------|--------|--------|--------|--------|--------| +[L_NAVIGATION] = LAYOUT_ergodox( + _______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, + _______,OS_UNDO,OS_CUT, OS_PAST,OS_COPY,OS_SALL,_______, + _______,KC_LGUI,KC_LSFT,KC_LALT,KC_LCTL,_______, + _______,WIN_V, _______,_______,OS_FIND,SEARCH, _______, + _______,_______,_______,_______,_______, + _______,_______, + _______, + _______,_______,_______, + + _______,KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______,KC_PGUP,KC_HOME,KC_UP, KC_END, KC_DEL, KC_F12, + KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_BSPC,_______, + _______,_______,SFT_TAB,KC_TAB, KC_APP, KC_PSCR,_______, + _______,_______,_______,_______,_______, + _______,_______, + _______, + _______,_______,ooooooo ), +[L_FN] = LAYOUT_ergodox( + _______,_______,_______,_______,_______,_______,_______, + _______,QK_VERS,_______,DM_REC2,DM_REC1,DM_RSTP,_______, + _______,QK_MAKE,_______,DM_PLY2,DM_PLY1,_______, + _______,QK_FLSH,K_SECR1,K_SECR2,K_SECR3,K_SECR4,_______, + _______,_______,_______,ooooooo,_______, + _______,_______, + _______, + KC_LCTL,_______,_______, + + _______,_______,_______,_______,_______,_______,_______, + _______,KC_VOLU,KC_F9, KC_F10, KC_F11, KC_F12, _______, + KC_MUTE,KC_F5, KC_F6, KC_F7, KC_F8, _______, + _______,KC_VOLD,KC_F1, KC_F2, KC_F3, KC_F4, _______, + _______,ooooooo,_______,_______,_______, + _______,RESET, + _______, + _______,_______,KC_LALT +), -[L_FUNC] = LAYOUT_ergodox( -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,M_LCLIK, M_RCLIK, M_MCLIK, _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, M_WHLUP, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,M_LEFT, M_DOWN, M_UP ,M_RIGHT, M_WHLDN, _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -// |--------|--------|--------| - _______ , -// |--------|--------|--------| - _______ ,_______ ,_______ , -// |--------|--------|--------| - -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_VOLU, KC_F9, KC_F10, KC_F11, KC_F12, _______ , -//--------|--------|--------|--------|--------|--------|--------| - KC_MUTE, KC_F5, KC_F6, KC_F7, KC_F8, _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ -//--------|--------|--------|--------|--------|--------|--------| + +[L_MACROS] = LAYOUT_ergodox( + _______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,DM_REC2,DM_REC1,_______,_______, + _______,_______,_______,DM_PLY2,DM_PLY1,DM_RSTP, + _______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______, + _______,_______, + _______, + ooooooo,_______,_______, + + _______,_______,_______,_______,_______,_______,_______, + _______,_______,SHEBANG,_______,_______,_______,_______, + PRG_NE, PRG_EQ, PRG_GEQ,PRG_LEQ,PRG_ARR,_______, + _______,_______,PS_ITEM,FS_PIPE,_______,FS_ARR, _______, + _______,_______,_______,_______,_______, + _______,_______, + _______, + _______,_______,ooooooo ), -[L_GAMING] = LAYOUT_ergodox( -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - KC_ESC ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,KC_R ,KC_S ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - KC_LSFT, _______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,KC_LALT ,KC_LCTL , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -// |--------|--------| - _______ , -// |--------|--------|--------| - KC_SPC, KC_LSFT, _______ , -// |--------|--------|--------| - -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,KC_E ,KC_I ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,KC_UP, KC_SLSH, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,KC_LEFT, KC_DOWN, KC_RGHT, -//--------|--------|--------|--------|--------|--------|--------| - M_MCLIK ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - M_RCLIK , -//--------|--------|--------|--------|--------|--------|--------| - M_LCLIK ,KC_ENT ,KC_BSPC -//--------|--------|--------|--------|--------|--------|--------| -) -, - -// "Letter Layers" - -[L_LL_R] = LAYOUT_ergodox( -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,ooooooo ,KC_AMPR ,KC_PIPE ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -// |--------|--------| - _______ , -// |--------|--------|--------| - _______ ,_______ ,_______ , -// |--------|--------|--------| - -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_COLN ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PSLS ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - KC_HASH ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PAST ,KC_TAB , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_BSPC ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PMNS ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - KC_P0 ,KC_PDOT ,KC_PEQL ,KC_PPLS ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -//--------|--------| - _______ , -//--------|--------|--------| - _______ ,KC_PENT ,MO_FUNC -//--------|--------|--------| -) -, - -[L_LL_E] = LAYOUT_ergodox( -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - RJ_QMKV ,RJ_MAKE ,RJ_EQ ,RJ_LEQ ,RJ_GEQ ,RJ_GEQR ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,RJ_SELS ,RJ_DUND ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -// |--------|--------| - _______ , -// |--------|--------|--------| - _______ ,_______ ,_______ , -// |--------|--------|--------| - -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,ooooooo ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -//--------|--------| - _______ , -//--------|--------|--------| - _______ ,_______ ,_______ -//--------|--------|--------| -) -, - -[L_LL_I] = LAYOUT_ergodox( -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_SLSH ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_PIPE, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_BSLS ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,KC_AMPR ,KC_LABK ,KC_RABK, -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -// |--------|--------| - _______ , -// |--------|--------|--------| - _______ ,_______ ,_______ , -// |--------|--------|--------| - -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,KC_UNDS, KC_GRV ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,KC_MINS ,KC_QUOT ,ooooooo ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,KC_TILD, KC_DQT ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ ,_______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ , -//--------|--------|--------|--------|--------|--------|--------| - _______ ,_______ ,_______ -//--------|--------|--------|--------|--------|--------|--------| +[L_SYSLEDS] = LAYOUT_ergodox( + _______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______, + _______,_______, + _______, + _______,_______,_______, + + KC_NLCK,_______,_______,_______,_______,_______,_______, + KC_CAPS,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + KC_SLCK,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,ooooooo, + _______,_______, + _______, + _______,_______,_______ ) +// Template +// [_NUMBERS] = LAYOUT_ergodox( +// _______,_______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______, +// _______,_______, +// _______, +// _______,_______,_______, + +// _______,_______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______, +// _______,_______, +// _______, +// _______,_______,_______ +// ), }; -// The normal QMK functions ending in _user are overridden in the -// replicaJunction userspace. Those functions handle my global -// settings, and redirect to these _keymap functions if something -// is unhandled. This allows me to keep most of my global preferences -// in one place while still allowing keyboard-specific code. +void keyboard_post_init_user_kb(void) { + ergodox_right_led_1_on(); +} + + +//////////////////////////////////////////////////////////// +// System LED code +//////////////////////////////////////////////////////////// + +// We need to track both the layer state and the system LED state in +// order to update the LEDs appropriately when either one changes. +// These are both represented as a bitmask. +// +// There is a global 'layer_state' variable but it is set after the call +// to layer_state_set_user(), so it doesn't work properly for our +// purposes. +static uint32_t current_layer_state = 0; +static uint8_t sys_led_state = 0; + +// Whether the given layer (one of the constant defined at the top) is active. +#define LAYER_ON(state, layer) (state & (1<. + */ + +#include "caps_word.h" + +static bool is_caps_word_on = false; + +bool is_caps_word_enabled(void) { + return is_caps_word_on; +} + +void enable_caps_word(void) { + if (is_caps_word_on) return; + is_caps_word_on = true; + tap_code(KC_CAPS); +} + +void disable_caps_word(void) { + if (!is_caps_word_on) return; + is_caps_word_on = false; + tap_code(KC_CAPS); +} + +void toggle_caps_word(void) { + if (is_caps_word_on) { + disable_caps_word(); + } + else { + enable_caps_word(); + } +} + +bool should_terminate_caps_word(uint16_t keycode, const keyrecord_t *record) { + switch (keycode) { + // Keycodes which should not disable caps word mode + case KC_A ... KC_Z: + case KC_1 ... KC_0: + case KC_MINS: + case KC_UNDS: + case KC_BSPC: + return false; + + default: + if (record->event.pressed) { + return true; + } + return false; + } + + // Should be unreachable + return false; +} + + +bool process_record_caps_word(uint16_t keycode, const keyrecord_t *record) { + // Nothing in this function acts on key release + if (!record->event.pressed) { + return true; + } + + // Handle the custom keycodes that go with this feature + if (keycode == CAPWORD) { + enable_caps_word(); + return false; + } + + // If the behavior isn't enabled and the keypress isn't a keycode to + // toggle the behavior, allow QMK to handle the keypress as usual + if (!is_caps_word_on) { + return true; + } + + // Get the base keycode of a mod or layer tap key + switch (keycode) { + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: + // Earlier return if this has not been considered tapped yet + if (record->tap.count == 0) + return true; + keycode = keycode & 0xFF; + break; + default: + break; + } + + if (should_terminate_caps_word(keycode, record)) { + disable_caps_word(); + } + + return true; +} diff --git a/users/replicaJunction/features/caps_word.h b/users/replicaJunction/features/caps_word.h new file mode 100644 index 000000000000..4182ce58291b --- /dev/null +++ b/users/replicaJunction/features/caps_word.h @@ -0,0 +1,26 @@ +/* Copyright 2021 Joshua T. + * + * 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 QMK_KEYBOARD_H +#include "rj_keycodes.h" + +bool is_caps_word_enabled(void); +void enable_caps_word(void); +void disable_caps_word(void); +void toggle_caps_word(void); + +bool process_record_caps_word(uint16_t keycode, const keyrecord_t *record); diff --git a/users/replicaJunction/features/mouse_jiggle.c b/users/replicaJunction/features/mouse_jiggle.c new file mode 100644 index 000000000000..b2c451d33edd --- /dev/null +++ b/users/replicaJunction/features/mouse_jiggle.c @@ -0,0 +1,46 @@ +/* Copyright 2021 Joshua T. + * + * 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 "mouse_jiggle.h" + +bool is_mouse_jiggle_active = false; + +void matrix_scan_mouse_jiggle(void) { + if (is_mouse_jiggle_active) { + tap_code(KC_MS_UP); + tap_code(KC_MS_DOWN); + } +} + +bool process_record_mouse_jiggle(uint16_t keycode, const keyrecord_t *record) { + if (!record->event.pressed) { + return true; + } + + if (is_mouse_jiggle_active) { + // If active, quit whenever another key is pressed + is_mouse_jiggle_active = false; + return true; + } + + if (keycode != MS_JIGL) { + return true; + } + + is_mouse_jiggle_active = true; + SEND_STRING("Mouse jiggler enabled"); + return false; +} diff --git a/users/replicaJunction/features/mouse_jiggle.h b/users/replicaJunction/features/mouse_jiggle.h new file mode 100644 index 000000000000..ba2c6e75701b --- /dev/null +++ b/users/replicaJunction/features/mouse_jiggle.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Joshua T. + * + * 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 QMK_KEYBOARD_H +#include "rj_keycodes.h" + +void matrix_scan_mouse_jiggle(void); + +bool process_record_mouse_jiggle(uint16_t keycode, const keyrecord_t *record); diff --git a/users/replicaJunction/features/num_word.c b/users/replicaJunction/features/num_word.c new file mode 100644 index 000000000000..4cca5c19ae22 --- /dev/null +++ b/users/replicaJunction/features/num_word.c @@ -0,0 +1,129 @@ +/* Copyright 2021 Joshua T. + * + * 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 "num_word.h" + +static uint16_t num_word_timer = 0; +static bool is_num_word_on = false; + +bool is_num_word_enabled(void) { + return is_num_word_on; +} + +void enable_num_word(void) { + if (is_num_word_on) return; + is_num_word_on = true; + layer_on(L_NUMBERS); +} + +void disable_num_word(void) { + if (!is_num_word_on) return; + is_num_word_on = false; + layer_off(L_NUMBERS); +} + +void toggle_num_word(void) { + if (is_num_word_on) { + disable_num_word(); + } + else { + enable_num_word(); + } +} + +bool should_terminate_num_word(uint16_t keycode, const keyrecord_t *record) { + switch (keycode) { + // Keycodes which should not disable num word mode. + // We could probably be more brief with these definitions by using + // a couple more ranges, but I believe "explicit is better than + // implicit" + case KC_1 ... KC_0: + case KC_EQL: + case KC_SCLN: + case KC_MINS: + case KC_DOT: + + // Numpad keycodes + case KC_P1 ... KC_P0: + case KC_PSLS ... KC_PPLS: + case KC_PDOT: + + // Misc + case KC_UNDS: + case KC_BSPC: + return false; + + default: + if (record->event.pressed) { + return true; + } + return false; + } + + // Should be unreachable + return false; +} + + +bool process_record_num_word(uint16_t keycode, const keyrecord_t *record) { + // Handle the custom keycodes that go with this feature + if (keycode == NUMWORD) { + if (record->event.pressed) { + enable_num_word(); + num_word_timer = timer_read(); + return false; + } + else { + if (timer_elapsed(num_word_timer) > TAPPING_TERM) { + // If the user held the key longer than TAPPING_TERM, + // consider it a hold, and disable the behavior on + // key release. + disable_num_word(); + return false; + } + } + } + + // Other than the custom keycodes, nothing else in this feature will + // activate if the behavior is not on, so allow QMK to handle the + // event as usual + if (!is_num_word_on) return true; + + // Nothing else acts on key release, either + if (!record->event.pressed) { + return true; + } + + // Get the base keycode of a mod or layer tap key + switch (keycode) { + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: + // Earlier return if this has not been considered tapped yet + if (record->tap.count == 0) + return true; + keycode = keycode & 0xFF; + break; + default: + break; + } + + if (should_terminate_num_word(keycode, record)) { + disable_num_word(); + } + + return true; +} diff --git a/users/replicaJunction/features/num_word.h b/users/replicaJunction/features/num_word.h new file mode 100644 index 000000000000..194c4e2e0de3 --- /dev/null +++ b/users/replicaJunction/features/num_word.h @@ -0,0 +1,27 @@ +/* Copyright 2021 Joshua T. + * + * 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 QMK_KEYBOARD_H +#include "rj_keycodes.h" +#include "rj_layers.h" + +bool is_num_word_enabled(void); +void enable_num_word(void); +void disable_num_word(void); +void toggle_num_word(void); + +bool process_record_num_word(uint16_t keycode, const keyrecord_t *record); diff --git a/users/replicaJunction/features/secrets.c b/users/replicaJunction/features/secrets.c new file mode 100644 index 000000000000..3e1ea283dc37 --- /dev/null +++ b/users/replicaJunction/features/secrets.c @@ -0,0 +1,51 @@ +/* Copyright 2021 Joshua T. + * + * 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 . + */ + +// Before you can compile with this feature, you'll need to manually +// create a file in this directory called "secret_definitions.h" +// containing the data to be added. +// +// Example implementation: +// +// #pragma once +// static const char * const secrets[] = { +// "secret1", +// "secret2", +// "secret3", +// "secret4" +// } + +#include QMK_KEYBOARD_H +#include "replicaJunction.h" +#include "secrets.h" +#include "secret_definitions.h" + +#ifndef MACRO_TIMER +# define MACRO_TIMER 5 +#endif + +bool process_record_secrets(uint16_t keycode, const keyrecord_t *record) { + switch (keycode) { + case K_SECR1 ... K_SECR4: // Secrets! Externally defined strings, not stored in repo + if (!record->event.pressed) { + clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); + send_string_with_delay(secrets[keycode - K_SECR1], MACRO_TIMER); + } + return false; + } + + return true; +} diff --git a/users/replicaJunction/features/secrets.h b/users/replicaJunction/features/secrets.h new file mode 100644 index 000000000000..ef439622726b --- /dev/null +++ b/users/replicaJunction/features/secrets.h @@ -0,0 +1,30 @@ +/* Copyright 2021 Joshua T. + * + * 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 QMK_KEYBOARD_H + +// NOTE: In some implementations of the "secrets" functionality, the +// secrets.h file is the file that actually contains secret text. +// +// This is not the case in my implementation. That file is called +// "secret_definitions.h", and it's in a local .gitignore file so it +// does not get committed. +// +// The inclusion of this file is not an error, and there is no sensitive +// text here. + +bool process_record_secrets(uint16_t keycode, const keyrecord_t *record); diff --git a/users/replicaJunction/features/super_alt_tab.c b/users/replicaJunction/features/super_alt_tab.c new file mode 100644 index 000000000000..9759898c87b6 --- /dev/null +++ b/users/replicaJunction/features/super_alt_tab.c @@ -0,0 +1,52 @@ +/* Copyright 2021 Joshua T. + * + * 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 "super_alt_tab.h" + +// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab + +bool is_alt_tab_active = false; +uint16_t alt_tab_timer = 0; + +void matrix_scan_super_alt_tab(void) { + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > USER_SUPER_ALT_TAB_TIMEOUT) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +} + + +bool process_record_super_alt_tab(uint16_t keycode, const keyrecord_t *record) { + if (keycode != SALTTAB) { + return true; + } + + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } + else { + unregister_code(KC_TAB); + } + + return false; +} diff --git a/users/replicaJunction/features/super_alt_tab.h b/users/replicaJunction/features/super_alt_tab.h new file mode 100644 index 000000000000..8bdf2bc22e26 --- /dev/null +++ b/users/replicaJunction/features/super_alt_tab.h @@ -0,0 +1,27 @@ +/* Copyright 2021 Joshua T. + * + * 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 QMK_KEYBOARD_H +#include "rj_keycodes.h" + +#ifndef USER_SUPER_ALT_TAB_TIMEOUT +# define USER_SUPER_ALT_TAB_TIMEOUT 500 +#endif + +void matrix_scan_super_alt_tab(void); + +bool process_record_super_alt_tab(uint16_t keycode, const keyrecord_t *record); diff --git a/users/replicaJunction/keycode_aliases.h b/users/replicaJunction/keycode_aliases.h new file mode 100644 index 000000000000..b1006a863c14 --- /dev/null +++ b/users/replicaJunction/keycode_aliases.h @@ -0,0 +1,85 @@ +/* Copyright 2021 Joshua T. + * + * 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 QMK_KEYBOARD_H + +// Transparent, but indicates that this key must be blocked (for example, a layer shift key) +#define ooooooo KC_TRNS + + +#define SFT_TAB LSFT(KC_TAB) +#define WIN_TAB LGUI(KC_TAB) +#define WIN_L LGUI(KC_L) +#define WIN_V LGUI(KC_V) +#define ALT_F4 LALT(KC_F4) +#define CTL_DEL LCTL_T(KC_DEL) +#define CTL_ESC CTL_T(KC_ESC) +#define ALT_ENT ALT_T(KC_ENT) +#define ALT_TAB ALT_T(KC_TAB) + +#define OSM_LSF OSM(MOD_LSFT) +#define OSM_RSF OSM(MOD_RSFT) + +// OS shortcuts (Windows) +#define OS_COPY LCTL(KC_C) +#define OS_PAST LCTL(KC_V) +#define OS_CUT LCTL(KC_X) +#define OS_UNDO LCTL(KC_Z) +#define OS_SALL LCTL(KC_A) +#define OS_FIND LCTL(KC_F) + + +// Home row modifiers +#define GUI_A LGUI_T(KC_A) +#define ALT_R LALT_T(KC_R) +#define SFT_S LSFT_T(KC_S) +#define CRT_T LCTL_T(KC_T) // we can't call this CTL_T because that name is taken! + +#define CRT_N RCTL_T(KC_N) +#define SFT_E RSFT_T(KC_E) +#define ALT_I RALT_T(KC_I) +#define GUI_O RGUI_T(KC_O) + + +// Mouse keys +#define M_UP KC_MS_UP +#define M_DOWN KC_MS_DOWN +#define M_LEFT KC_MS_LEFT +#define M_RIGHT KC_MS_RIGHT +#define M_LCLIK KC_MS_BTN1 +#define M_RCLIK KC_MS_BTN2 +#define M_MCLIK KC_MS_BTN3 +#define M_WHLUP KC_WH_U +#define M_WHLDN KC_WH_D + + +// Windows 10 shortcuts: change desktop to the left/right +#define DESKLFT LCTL(LGUI(KC_LEFT)) +#define DESKRGT LCTL(LGUI(KC_RGHT)) + + +// Application-specific shortcuts + +// Search: defined in Everything Search Engine as the keypress to show/hide the window +#define SEARCH HYPR(KC_S) + +// Microsoft PowerToys hotkeys +// https://github.com/microsoft/PowerToys +#define PTYRUN LALT(KC_SPC) // PowerToys Run +#define PTYZONE LGUI(KC_GRV) // PowerToys FancyZones +#define PTYCOLR LGUI(LSFT(KC_C)) // PowerToys ColorPicker diff --git a/users/replicaJunction/matrix_scan.c b/users/replicaJunction/matrix_scan.c new file mode 100644 index 000000000000..969799550a40 --- /dev/null +++ b/users/replicaJunction/matrix_scan.c @@ -0,0 +1,35 @@ +/* Copyright 2021 Joshua T. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "replicaJunction.h" + +__attribute__ ((weak)) +void matrix_scan_user_kb(void) { } + +// Runs on every matrix scan. Be careful what goes here - you can really impact the +// responsiveness of your keyboard if you add too much in this function. +void matrix_scan_user(void) { +#ifdef USER_MOUSE_JIGGLE_ENABLE + matrix_scan_mouse_jiggle(); +#endif + +#ifdef USER_SUPER_ALT_TAB_ENABLE + matrix_scan_super_alt_tab(); +#endif + + matrix_scan_user_kb(); +} diff --git a/users/replicaJunction/process_records.c b/users/replicaJunction/process_records.c new file mode 100644 index 000000000000..abce215261fa --- /dev/null +++ b/users/replicaJunction/process_records.c @@ -0,0 +1,149 @@ +/* Copyright 2021 Joshua T. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "process_records.h" + +uint8_t mod_state; + + +__attribute__ ((weak)) +bool process_record_user_kb(uint16_t keycode, keyrecord_t *record) { + return true; +} + +// Runs for each key down or up event. +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Returning true here will cause QMK to continue handling the key normally. + // Returning false indicates that we've handled everything the keycode should do, and QMK + // should not continue handling the keypress. + // + // NOTE: There is also a process_record_kb function that can be defined in the keyboard- + // specific code. This allows the keyboard to have its own process_record function. + // This is supposed to be "higher" than the user function, meaning the kb function + // is shared for all keymaps for the keyboard. + // + // For this reason, I add my own function, called process_record_user_kb, and at the end + // of this function, I defer to that one if it exists. + // return process_record_user(keycode, record); + + + // Custom keycode / function handling, based on the core function + // process_record_quantum + // https://github.com/qmk/qmk_firmware/blob/master/quantum/quantum.c + + if (!( +#ifdef USER_CAPS_WORD_ENABLE + process_record_caps_word(keycode, record) && +#endif +#ifdef USER_MOUSE_JIGGLE_ENABLE + process_record_mouse_jiggle(keycode, record) && +#endif +#ifdef USER_NUM_WORD_ENABLE + process_record_num_word(keycode, record) && +#endif +#ifdef USER_SECRETS_ENABLE + process_record_secrets(keycode, record) && +#endif +#ifdef USER_SUPER_ALT_TAB_ENABLE + process_record_super_alt_tab(keycode, record) && +#endif + true)) { + return false; + } + + + // Miscellaneous keycode handling + mod_state = get_mods(); + + switch(keycode) + { + case QK_MAKE: { + if (record->event.pressed) + SEND_STRING("qmk compile --keyboard " QMK_KEYBOARD " --keymap " QMK_KEYMAP); + return false; + } + case QK_FLSH: { + if (record->event.pressed) { + SEND_STRING("qmk flash --keyboard " QMK_KEYBOARD " --keymap " QMK_KEYMAP); + } + return false; + } + case QK_VERS: { + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE); + } + return false; + } + case PRG_EQ: { + if (record->event.pressed) { + SEND_STRING("=="); + } + return false; + } + case PRG_NE: { + if (record->event.pressed) { + SEND_STRING("!="); + } + return false; + } + case PRG_GEQ: { + if (record->event.pressed) { + SEND_STRING(">="); + } + return false; + } + case PRG_LEQ: { + if (record->event.pressed) { + SEND_STRING("<="); + } + return false; + } + case PRG_ARR: { + if (record->event.pressed) { + SEND_STRING("=>"); + } + return false; + } + + case PS_ITEM: { + if (record->event.pressed) { + SEND_STRING("$_"); + } + return false; + } + case FS_PIPE: { + if (record->event.pressed) { + SEND_STRING("|>"); + } + return false; + } + case FS_ARR: { + if (record->event.pressed) { + SEND_STRING("->"); + } + return false; + } + case SHEBANG: { + if (record->event.pressed) { + SEND_STRING("#!"); + } + return false; + } + } + + return process_record_user_kb(keycode, record); +} diff --git a/users/replicaJunction/process_records.h b/users/replicaJunction/process_records.h new file mode 100644 index 000000000000..224bc6f4ff40 --- /dev/null +++ b/users/replicaJunction/process_records.h @@ -0,0 +1,21 @@ +/* Copyright 2021 Joshua T. + * + * 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 QMK_KEYBOARD_H +#include "replicaJunction.h" + +bool process_record_user_kb(uint16_t keycode, keyrecord_t *record); diff --git a/users/replicaJunction/readme.md b/users/replicaJunction/readme.md index 2a9cad2729eb..9d728f902906 100644 --- a/users/replicaJunction/readme.md +++ b/users/replicaJunction/readme.md @@ -1,14 +1,93 @@ -Copyright 2018 @ +replicaJunction QMK Userspace +============================= -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. +# Overview +I alternate between a few keyboards, one of which is the 44-key Keyboardio Atreus. Small keyboards require a liberal use of layers. Even though larger keyboards don't rely on layers as heavily, my muscle memory adapted to my Atreus layout, so I've ended up building several of those features in my keymaps for larger boards as well. -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. +The result, I believe, is a good compromise between ergonomics and ease of use. -You should have received a copy of the GNU General Public License -along with this program. If not, see . \ No newline at end of file +The code in this userspace is designed to be very modular. I use a few different keyboards, and I'm constantly tweaking one or another, so I want the ability to add and remove features from the firmware at compile-time. While my endgame goal is to get all the layouts to be compatible, in practice, it's been years and I'm still not to that point... + +Modular code also means that it should be easy to identify and adapt specific pieces to your own firmware. + +## Keyboards and Keymaps + +The following keyboards use the files in this userspace: + +* [Atreus](../../keyboards/atreus/keymaps/replicaJunction/readme.md) (42-key) +* [Ergodox](../../layouts/community/ergodox/replicaJunction/readme.md) +* [Keyboardio Atreus](../../keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md) (44-key) +* [XD75](../../keyboards/xd75/keymaps/replicaJunction/readme.md) + +# Features + +* **Secrets**, as [explained by Drashna](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme_secrets.md) +* **CAPSWORD** and **NUMWORD** +* Mouse jiggler +* Super alt-tab + +## Secrets +My implementation of the "secrets" concept is very similar to Drashna's, but I've chosen to allow most of the supporting code to be committed to the repo. The only thing missing is a file called `secret_definitions.h`, which contains the actual text contained in those macros. + +To use my implementation, create a file of that name in the same directory. Make sure you've got a `.gitignore` file in place, and add these contents to the definitions file: + +```c +#pragma once +static const char * const secrets[] = { + "secret1", + "secret2", + "secret3", + "secret4" +} +``` + +Change the quoted text to the text you'd like and you're golden. If you need more (or fewer) items, you'll probably need to adjust the code in `secrets.c` as well, since it looks for up to four items in a switch case. + +## CAPSWORD and NUMWORD +The concept here is simple: more often than you'd think, you need to type a single word in ALL CAPS. An easy example for me, as a programmer, is a constant value; in most programming languages, constants are typed in all caps by convention. + +You typically have a few choices, but each one comes with a drawback. Here are the options I'm aware of: + +* Use proper typing technique and alternate which hand holds Shift for each keypress + * This can often end up requiring you to switch / re-press Shift again and again, making this a tedious process +* Hold a single Shift key down + * This can lead to uncomfortable finger gymnastics +* Hit the Caps Lock key, then hit it again when you're done + * Requires you to remember to hit it again, meaning a higher cognitive load + * In some layouts for smaller keyboards, Caps Lock is not easily accessible (sometimes not mapped at all) + +The solution to this problem is CAPSWORD. When enabled, it activates Caps Lock and begins running an additional callback on each keypress. If the keypress is an alphanumeric key or one of a specific few symbols (such as the underscore), nothing happens. Otherwise, before processing the keypress, Caps Lock is disabled again. + +NUMWORD is a similar concept, but has a slightly more elaborate implementation. There's a bit of extra logic in the NUMWORD code that allows the keycode to act as a tap/hold key as well. Tapping enables NUMWORD while number keys are in use, while holding the key enables a number layer for the duration of the key hold and disables it again afterwards. + +**Note:** The implementation of NUMWORD requires that the keyboard's layer definitions be accessible in a header file. In my case, since I use a fairly standard set of layers, I've declared it in my userspace. + +## Mouse Jiggler +This adds a keycode that will move the mouse cursor on each matrix scan. Used to prevent the screen from locking if you're temporarily doing something else (working on a different machine, reading / writing, etc.). + +When you press the keycode, the keyboard will write the text "Mouse jiggler enabled" to signify that the behavior is active. I suggest opening a Notepad window before pressing the key. + +Pressing any key will automatically disable the feature again. This is because it causes a huge hit to the reliability and performance of the keyboard while it's active (adding stuff to every matrix scan will do that). I kept forgetting to turn it off before trying to use the keyboard again, so I decided to make it automatically disable itself. + +Enable this by setting `USER_MOUSE_JIGGLE_ENABLE = yes` in your `rules.mk` file. The feature also depends on the Mouse Keys feature, so ensure you don't disable `MOUSEKEY_ENABLE`. + +## Super Alt-Tab +Taken [straight out of the QMK documentation](https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab), this is an easy way to shift between a couple different windows. I use it with a very low interval when I'm alternating back and forth between two known windows with no real need for the visual feedback and thought. If you want to be able to browse the open windows before the function releases Alt, I'd suggest raising `USER_SUPER_ALT_TAB_TIMEOUT` to a higher value. + +# Credits +I'm absolutely sure I've missed a few sources here. If you see something in my code that you think is yours and isn't credited here, I sincerely apologize. + +[bpruitt-goddard](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/bpruitt-goddard/readme.md) +* Dynamic macro tap-dance (no longer used, but I did use this for a while) + +[Drashna](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme.md) +* Secrets concept and basic implementation +* "Wrappers" concept (no longer used, but I did use this for a while) + +[Treeman](https://github.com/treeman/qmk_firmware/blob/master/keyboards/kyria/keymaps/treeman) +* CAPSWORD and NUMBERWORD concept + * I re-implented some of the code based on my own prefences, but I did use some implementation code from here + * [Treeman's blog post](https://www.jonashietala.se/blog/2021/06/03/the-t-34-keyboard-layout/) provides more context on these features, and is a great read + +[QMK issue #452](https://github.com/qmk/qmk_firmware/issues/452) +* Helped clarify a good organizational structure for the individual features in this userspace diff --git a/users/replicaJunction/replicaJunction.c b/users/replicaJunction/replicaJunction.c index f0bc59d25705..55d8b7716619 100644 --- a/users/replicaJunction/replicaJunction.c +++ b/users/replicaJunction/replicaJunction.c @@ -1,149 +1,25 @@ +/* Copyright 2021 Joshua T. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H #include "replicaJunction.h" -#include "version.h" - -#ifdef TAP_DANCE_ENABLE -void dance_layer(qk_tap_dance_state_t *state, void *user_data) -{ - uint8_t layer = biton32(layer_state); - - if (state->count >= 5) - { - // 5 or more taps resets the keyboard - reset_keyboard(); - } - #ifdef L_QWERTY - else if (state->count == 3) - { - // Triple tap changes to QWERTY layer - if (layer == L_QWERTY) - { - layer_off(L_QWERTY); - } - else - { - layer_on(L_QWERTY); - } - } - #endif - #ifdef L_NUM - else if (state->count == 2) - { - // Double tap toggles Number layer - if (layer == L_NUM) - { - layer_off(L_NUM); - } - else - { - layer_on(L_NUM); - } - } - #endif - else - { - // Single tap sends Escape, and also turns off layers - // That's mostly in case I get stuck and forget where I am - #ifdef L_NUM - layer_off(L_NUM); - #endif - #ifdef L_EXTEND - layer_off(L_EXTEND); - #endif - #ifdef L_SYMBOL - layer_off(L_SYMBOL); - #endif - #ifdef L_QWERTY - layer_off(L_QWERTY); - #endif - register_code(KC_ESC); - unregister_code(KC_ESC); - } -}; - -// Tap Dance Definitions -// Note - this needs to come AFTER the function is declared -qk_tap_dance_action_t tap_dance_actions[] = { - [TD_LAYER_TOGGLE] = ACTION_TAP_DANCE_FN(dance_layer) -}; - -#endif // TAP_DANCE_ENABLE - -// These functions can be overridden in individual keymap files. -// This allows a user function to be shared for all my keyboards, while each -// keyboard can also have a keyboard-specific section. - -// Note that keymaps don't need to override these if there's nothing to -// override them with. -__attribute__ ((weak)) -void matrix_init_keymap(void) {} __attribute__ ((weak)) -void matrix_scan_keymap(void) {} +void keyboard_post_init_user_kb(void) { } -__attribute__ ((weak)) -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - return true; -}; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - #ifdef UNICODEMAP_ENABLE - // Set Unicode input to use WinCompose - // https://github.com/samhocevar/wincompose - set_unicode_input_mode(UC_WINC); - #endif // UNICODEMAP_ENABLE - - matrix_init_keymap(); -}; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - matrix_scan_keymap(); +void keyboard_post_init_user(void) { + keyboard_post_init_user_kb(); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) - return true; - - switch(keycode) - { - case RJ_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader - SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP - #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU)) - ":dfu" - #elif defined(BOOTLOADER_HALFKAY) - ":teensy" - #elif defined(BOOTLOADER_CATERINA) - ":avrdude" - #endif // bootloader options - //SS_TAP(X_ENTER) - ); - return false; - case RJ_QMKV: - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - return false; - case RJ_EQ: - SEND_STRING("=="); - return false; - case RJ_NEQ: - SEND_STRING("!="); - return false; - case RJ_GEQ: - SEND_STRING(">="); - return false; - case RJ_LEQ: - SEND_STRING("<="); - return false; - case RJ_GEQR: - SEND_STRING("=>"); - return false; - case RJ_DUND: - SEND_STRING("$_"); - return false; - case RJ_SELS: - SEND_STRING("select *"); - return false; - } - - return process_record_keymap(keycode, record); -}; diff --git a/users/replicaJunction/replicaJunction.h b/users/replicaJunction/replicaJunction.h index 9b5772543384..f3b7bcea0a00 100644 --- a/users/replicaJunction/replicaJunction.h +++ b/users/replicaJunction/replicaJunction.h @@ -1,114 +1,42 @@ -#pragma once - -#include "quantum.h" - -/////////////////////////////////////////////////////////////////////////////// -// Keymap definitions -/////////////////////////////////////////////////////////////////////////////// - -// Layer definitions -// #define L_COLEMAK 0 -// #define L_QWERTY 1 -// #define L_NUM 2 -// #define L_EXTEND 3 -// #define L_FUNC 4 -// #define L_GAMING 5 -// #define L_SYMBOL 6 -// #define L_LL_R 7 -// #define L_LL_S 8 -// #define L_LL_E 9 -// #define L_LL_I 10 - -// Keyboard aliases -#define ooooooo KC_TRNS - -#define MO_FUNC MO(L_FUNC) -#define TT_NUM TT(L_NUM) -#define TG_GAME TG(L_GAMING) -#define OSL_SYM OSL(L_SYMBOL) - -#define OSM_LSF OSM(MOD_LSFT) -#define OSM_RSF OSM(MOD_RSFT) - -#define KX_CTSF LCTL(KC_LSFT) -#define KX_STAB LSFT(KC_TAB) -#define KX_CGR LCTL(KC_GRV) -#define KX_PAST LCTL(LGUI(LALT(KC_V))) -#define KX_SRCH LCTL(LGUI(LALT(KC_S))) +/* Copyright 2021 Joshua T. + * + * 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 . + */ -#define KX_BKNM LT(L_NUM, KC_BSPC) -#define KX_DCTL CTL_T(KC_DEL) -#define KX_NALT ALT_T(KC_ENT) -#define KX_ECTL CTL_T(KC_ESC) -#define KX_SPAC LT(L_EXTEND, KC_SPC) - -#define KX_Z_MT CTL_T(KC_Z) -#define KX_X_MT GUI_T(KC_X) -#define KX_C_MT MT(MOD_LCTL | MOD_LALT, KC_C) -#define KX_D_MT ALT_T(KC_D) - -#define KX_SLMT CTL_T(KC_SLSH) -#define KX_DOMT GUI_T(KC_DOT) -#define KX_COMT MT(MOD_LCTL | MOD_LALT, KC_COMM) -#define KX_H_MT ALT_T(KC_H) - -#ifdef L_LL_R - #define KC_R_LT LT(L_LL_R, KC_R) -#else - #define KC_R_LT KC_R +#pragma once +#include QMK_KEYBOARD_H +#include "rj_keycodes.h" +#include "rj_layers.h" +#include "keycode_aliases.h" +#include "version.h" + +#ifdef USER_CAPS_WORD_ENABLE +# include "features/caps_word.h" #endif -#ifdef L_LL_S - #define KC_S_LT LT(L_LL_S, KC_S) -#else - #define KC_S_LT KC_S +#ifdef USER_MOUSE_JIGGLE_ENABLE +# include "features/mouse_jiggle.h" #endif -#ifdef L_LL_E - #define KC_E_LT LT(L_LL_E, KC_E) -#else - #define KC_E_LT KC_E +#ifdef USER_NUM_WORD_ENABLE +# include "features/num_word.h" #endif -#ifdef L_LL_I - #define KC_I_LT LT(L_LL_I, KC_I) -#else - #define KC_I_LT KC_I +#ifdef USER_SECRETS_ENABLE +# include "features/secrets.h" #endif -// "Macro" functions -enum userspace_custom_keycodes { - RJ_MAKE = SAFE_RANGE, // QMK make command - RJ_QMKV, // QMK version - RJ_EQ, // == - RJ_NEQ, // != - RJ_GEQ, // >= - RJ_LEQ, // <= - RJ_GEQR, // => ("greater than or equal - right") - RJ_DUND, // $_ - RJ_SELS, // select * (used for PowerShell) - RJ_MUTE, // Discord mute (GUI+Shift+M) - RJ_DEAF, // Discord deafen (GUI+Shift+D) - RJ_DOVR // Toggle Discord overlay (GUI+Shift+O) -}; - -// Mouse keys -#define M_UP KC_MS_UP -#define M_DOWN KC_MS_DOWN -#define M_LEFT KC_MS_LEFT -#define M_RIGHT KC_MS_RIGHT -#define M_LCLIK KC_MS_BTN1 -#define M_RCLIK KC_MS_BTN2 -#define M_MCLIK KC_MS_BTN3 -#define M_WHLUP KC_WH_U -#define M_WHLDN KC_WH_D - -// Used in macro definitions -#define TAP(code) register_code (code); unregister_code (code); - -// Tap Dance -#ifdef TAP_DANCE_ENABLE -#define TD_LAYER_TOGGLE 0 -extern void dance_layer(qk_tap_dance_state_t *state, void *user_data); -#define TD_LAYR TD(TD_LAYER_TOGGLE) -#endif // TAP_DANCE_ENABLE +#ifdef USER_SUPER_ALT_TAB_ENABLE +# include "features/super_alt_tab.h" +#endif diff --git a/users/replicaJunction/rj_keycodes.h b/users/replicaJunction/rj_keycodes.h new file mode 100644 index 000000000000..fde2698dfe25 --- /dev/null +++ b/users/replicaJunction/rj_keycodes.h @@ -0,0 +1,63 @@ +/* Copyright 2021 Joshua T. + * + * 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 QMK_KEYBOARD_H + +// Custom keycodes and macros +enum userspace_custom_keycodes { + QK_MAKE = SAFE_RANGE, // QMK make command + QK_FLSH, // QMK flash command + QK_VERS, // QMK version + + // Programming macros + PRG_EQ, // == + PRG_NE, // != + PRG_GEQ, // >= + PRG_LEQ, // <= + PRG_ARR, // => + PS_ITEM, // $_ (PowerShell - $PSItem variable) + FS_PIPE, // |> (F# pipe operator) + FS_ARR, // -> (F# lambda / pattern matching) + SHEBANG, // #! + + // USER_CAPS_WORD_ENABLE + CAPWORD, + +#ifdef USER_NUM_WORD_ENABLE + NUMWORD, +#endif + + // USER_ENABLE_CUSTOM_SHIFT_CODES + // Custom characters that send different symbols than usual when shifted + KCC_COM, // , or ! + KCC_DOT, // . or @ + KCC_QUO, // ' or ~ + + // USER_MOUSE_JIGGLE_ENABLE + MS_JIGL, + + // USER_ENABLE_SUPER_ALT_TAB + SALTTAB, + + // USER_ENABLE_SECRETS + K_SECR1, + K_SECR2, + K_SECR3, + K_SECR4, + + DYNAMIC_MACRO_RANGE +}; diff --git a/users/replicaJunction/rj_layers.h b/users/replicaJunction/rj_layers.h new file mode 100644 index 000000000000..f6296af053bd --- /dev/null +++ b/users/replicaJunction/rj_layers.h @@ -0,0 +1,40 @@ +/* Copyright 2021 Joshua T. + * + * 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 + +enum rj_layers { + L_BASE, + +#ifdef USER_INCLUDE_QWERTY + L_QWERTY, +#endif + +#ifdef USER_INCLUDE_GAMING_LAYER + L_GAMING, +#endif + + L_NUMBERS, + L_SYMBOLS, + L_NAVIGATION, + L_FN, + +#ifdef USER_INCLUDE_MACRO_LAYER + L_MACROS, +#endif + + _LAYER_SAFE_RANGE +}; diff --git a/users/replicaJunction/rules.mk b/users/replicaJunction/rules.mk index 30a330195dc8..addaa04d97d2 100644 --- a/users/replicaJunction/rules.mk +++ b/users/replicaJunction/rules.mk @@ -1 +1,33 @@ SRC += replicaJunction.c + +# Only load these source files if the features are enabled. Keyboards can +# enable or disable these features in their own rules.mk files. + +ifeq ($(strip $(USER_CAPS_WORD_ENABLE)), yes) + SRC += features/caps_word.c + OPT_DEFS += -DUSER_CAPS_WORD_ENABLE +endif + +ifeq ($(strip $(USER_MOUSE_JIGGLE_ENABLE)), yes) + SRC += features/mouse_jiggle.c + OPT_DEFS += -DUSER_MOUSE_JIGGLE_ENABLE +endif + +ifeq ($(strip $(USER_NUM_WORD_ENABLE)), yes) + SRC += features/num_word.c + OPT_DEFS += -DUSER_NUM_WORD_ENABLE +endif + +ifeq ($(strip $(USER_SECRETS_ENABLE)), yes) + SRC += features/secrets.c + OPT_DEFS += -DUSER_SECRETS_ENABLE +endif + +ifeq ($(strip $(USER_SUPER_ALT_TAB_ENABLE)), yes) + SRC += features/super_alt_tab.c + OPT_DEFS += -DUSER_SUPER_ALT_TAB_ENABLE +endif + +# Define these last so any other logic can set up some defines first +SRC += matrix_scan.c \ + process_records.c From 2881517097b3b2e74a4c5e8d39306c2218974217 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 13 Aug 2021 20:57:41 -0700 Subject: [PATCH 253/328] Fix Line endings in Absinthe VIA keymap (#13997) --- keyboards/absinthe/keymaps/via/keymap.c | 140 ++++++++++++------------ 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/keyboards/absinthe/keymaps/via/keymap.c b/keyboards/absinthe/keymaps/via/keymap.c index f058aacaeacd..797d14226dc7 100644 --- a/keyboards/absinthe/keymaps/via/keymap.c +++ b/keyboards/absinthe/keymaps/via/keymap.c @@ -1,70 +1,70 @@ -/* Copyright 2021 alittlepeace - * - * 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_default( - 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_BSLS, KC_GRV, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, KC_END, KC_PGDN, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_default( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - [2] = LAYOUT_default( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - [3] = LAYOUT_default( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - -}; - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* First encoder */ - switch(get_highest_layer(layer_state)){ - case 1: - if (clockwise){ - tap_code(KC_VOLU); - } else{ - tap_code(KC_VOLD); - } - break; - default: - if (clockwise) { - tap_code(KC_WH_D); - } else { - tap_code(KC_WH_U); - } - break; - } - } - return true; -} - +/* Copyright 2021 alittlepeace + * + * 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_default( + 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_BSLS, KC_GRV, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, KC_END, KC_PGDN, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_default( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + switch(get_highest_layer(layer_state)){ + case 1: + if (clockwise){ + tap_code(KC_VOLU); + } else{ + tap_code(KC_VOLD); + } + break; + default: + if (clockwise) { + tap_code(KC_WH_D); + } else { + tap_code(KC_WH_U); + } + break; + } + } + return true; +} + From 088d6abf5455ab8ea3e7f3071cd7ce674f12fce8 Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Sat, 14 Aug 2021 12:54:38 +0800 Subject: [PATCH 254/328] [Keyboard] Add Irene Keyboard (#13991) Co-authored-by: Drashna Jaelre --- keyboards/irene/config.h | 150 +++++++++++++++++++++++ keyboards/irene/info.json | 77 ++++++++++++ keyboards/irene/irene.c | 17 +++ keyboards/irene/irene.h | 43 +++++++ keyboards/irene/keymaps/default/keymap.c | 33 +++++ keyboards/irene/keymaps/via/keymap.c | 33 +++++ keyboards/irene/keymaps/via/rules.mk | 1 + keyboards/irene/readme.md | 20 +++ keyboards/irene/rules.mk | 22 ++++ 9 files changed, 396 insertions(+) create mode 100644 keyboards/irene/config.h create mode 100644 keyboards/irene/info.json create mode 100644 keyboards/irene/irene.c create mode 100644 keyboards/irene/irene.h create mode 100644 keyboards/irene/keymaps/default/keymap.c create mode 100644 keyboards/irene/keymaps/via/keymap.c create mode 100644 keyboards/irene/keymaps/via/rules.mk create mode 100644 keyboards/irene/readme.md create mode 100644 keyboards/irene/rules.mk diff --git a/keyboards/irene/config.h b/keyboards/irene/config.h new file mode 100644 index 000000000000..15750f5406db --- /dev/null +++ b/keyboards/irene/config.h @@ -0,0 +1,150 @@ +/* +Copyright 2021 Ramon Imbao + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x1434 +#define PRODUCT_ID 0x3000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Andrei Collado +#define PRODUCT Irene + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * 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 { B0, F0, C7, B4, B7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, C6, B6, B5, D7, D6, D4, D5, D3, D2, D1, D0 } +#define UNUSED_PINS + +/* 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN F1 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 23 +//# 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 */ +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/irene/info.json b/keyboards/irene/info.json new file mode 100644 index 000000000000..f7c1bf8319dd --- /dev/null +++ b/keyboards/irene/info.json @@ -0,0 +1,77 @@ +{ + "keyboard_name": "Irene", + "url": "", + "maintainer": "Andrei Collado", + "width": 18, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0.5, "y":0}, + {"x":1.75, "y":0}, + {"x":2.75, "y":0}, + {"x":3.75, "y":0}, + {"x":4.75, "y":0}, + {"x":5.75, "y":0}, + {"x":6.75, "y":0}, + {"x":7.75, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":16, "y":0}, + {"x":17, "y":0}, + + {"x":0.25, "y":1}, + {"x":1.5, "y":1, "w":1.5}, + {"x":3, "y":1}, {"x":4, "y":1}, + {"x":5, "y":1}, {"x":6, "y":1}, + {"x":7, "y":1}, {"x":9.5, "y":1}, + {"x":10.5, "y":1}, {"x":11.5, "y":1}, + {"x":12.5, "y":1}, {"x":13.5, "y":1}, + {"x":14.5, "y":1}, {"x":15.5, "y":1}, + {"x":16.5, "y":1, "w":1.5}, + + {"x":0, "y":2}, + {"x":1.5, "y":2, "w":1.75}, + {"x":3.25, "y":2}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":2}, + {"x":14.75, "y":2}, + {"x":15.75, "y":2, "w":2.25}, + + {"x":1.5, "y":3, "w":2.25}, + {"x":3.75, "y":3}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3}, + {"x":13.25, "y":3}, + {"x":14.25, "y":3}, + {"x":15.25, "y":3, "w":1.75}, + {"x":17, "y":3}, + + {"x":1.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":1.5}, + {"x":5.5, "y":4, "w":2}, + {"x":7.5, "y":4, "w":1.25}, + {"x":9.25, "y":4, "w":2.75}, + {"x":12, "y":4, "w":1.5}, + {"x":16.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/irene/irene.c b/keyboards/irene/irene.c new file mode 100644 index 000000000000..f0f4751c52b3 --- /dev/null +++ b/keyboards/irene/irene.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Ramon Imbao + * + * 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 "irene.h" diff --git a/keyboards/irene/irene.h b/keyboards/irene/irene.h new file mode 100644 index 000000000000..435e84957dbc --- /dev/null +++ b/keyboards/irene/irene.h @@ -0,0 +1,43 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define ___ KC_NO + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k57, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k41, k43, k44, k46, k48, k4a, k4e \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, ___, k2e }, \ + { ___, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { ___, k41, ___, k43, k44, ___, k46, ___, k48, ___, k4a, ___, ___, ___, k4e }, \ +} diff --git a/keyboards/irene/keymaps/default/keymap.c b/keyboards/irene/keymaps/default/keymap.c new file mode 100644 index 000000000000..8f102b441da0 --- /dev/null +++ b/keyboards/irene/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_all( + RESET, _______, 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_HOME, _______, _______, KC_UP, _______, _______, _______, RGB_HUD, RGB_HUI, RGB_SAD, RGB_VAD, RGB_VAI, _______, _______, _______, + KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/irene/keymaps/via/keymap.c b/keyboards/irene/keymaps/via/keymap.c new file mode 100644 index 000000000000..8f102b441da0 --- /dev/null +++ b/keyboards/irene/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_all( + RESET, _______, 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_HOME, _______, _______, KC_UP, _______, _______, _______, RGB_HUD, RGB_HUI, RGB_SAD, RGB_VAD, RGB_VAI, _______, _______, _______, + KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/irene/keymaps/via/rules.mk b/keyboards/irene/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/irene/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/irene/readme.md b/keyboards/irene/readme.md new file mode 100644 index 000000000000..56dfd4bfbde2 --- /dev/null +++ b/keyboards/irene/readme.md @@ -0,0 +1,20 @@ +# Irene + +![Irene](https://i.imgur.com/p4bWtKDl.jpeg) + +The Irene is a polycarbonate top-mount keyboard featuring the Alice layout inspired by TGR's Police and Jaxxstatic's Rukia. The name came from a Kpop idol Irene from Red Velvet. + +* Keyboard Maintainer: [Andrei Collado](https://github.com/colladoandrei) +* Hardware Supported: ATmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make irene:default + +To get to the bootloader, simply press the reset button located on the back of the PCB. You can then flash new firmware onto it. + +Flashing example for this keyboard: + + make irene: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). diff --git a/keyboards/irene/rules.mk b/keyboards/irene/rules.mk new file mode 100644 index 000000000000..ef4ccf32fbe3 --- /dev/null +++ b/keyboards/irene/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From ed350a1aa6eac4194a0f75af798b47a6e6e85164 Mon Sep 17 00:00:00 2001 From: yulei Date: Sat, 14 Aug 2021 14:35:32 +0800 Subject: [PATCH 255/328] add falcon keyboard (#13674) * added falcon keyboard * Update keyboards/matrix/falcon/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/matrix/falcon/rules.mk Co-authored-by: Drashna Jaelre * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Apply suggestions from code review Co-authored-by: Ryan * added description for the bootloader * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/matrix/falcon/config.h | 72 +++++++++++++++++++ keyboards/matrix/falcon/falcon.c | 28 ++++++++ keyboards/matrix/falcon/falcon.h | 51 +++++++++++++ keyboards/matrix/falcon/info.json | 12 ++++ .../matrix/falcon/keymaps/default/keymap.c | 32 +++++++++ keyboards/matrix/falcon/keymaps/via/keymap.c | 46 ++++++++++++ keyboards/matrix/falcon/keymaps/via/rules.mk | 2 + keyboards/matrix/falcon/readme.md | 25 +++++++ keyboards/matrix/falcon/rules.mk | 24 +++++++ 9 files changed, 292 insertions(+) create mode 100644 keyboards/matrix/falcon/config.h create mode 100644 keyboards/matrix/falcon/falcon.c create mode 100644 keyboards/matrix/falcon/falcon.h create mode 100644 keyboards/matrix/falcon/info.json create mode 100644 keyboards/matrix/falcon/keymaps/default/keymap.c create mode 100644 keyboards/matrix/falcon/keymaps/via/keymap.c create mode 100644 keyboards/matrix/falcon/keymaps/via/rules.mk create mode 100644 keyboards/matrix/falcon/readme.md create mode 100644 keyboards/matrix/falcon/rules.mk diff --git a/keyboards/matrix/falcon/config.h b/keyboards/matrix/falcon/config.h new file mode 100644 index 000000000000..afd0b5d3efa0 --- /dev/null +++ b/keyboards/matrix/falcon/config.h @@ -0,0 +1,72 @@ +/** + * config.h + * + * Copyright 2021 astro + 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D58 +#define PRODUCT_ID 0x474E +#define DEVICE_VER 0x0001 +#define MANUFACTURER Matrix Lab +#define PRODUCT Falcon + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 13 + +#define MATRIX_ROW_PINS { F1, B7, F7, F5, F4} +#define MATRIX_COL_PINS { F6, B3, B2, B1, B0, C7, C6, B6, B5, B4, D7, D6, D4} + +#define UNUSED_PINS +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +//rgb light setting +#define RGBLED_NUM 4 +#define RGB_DI_PIN D1 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +//pin setting +#define LED_CAPS_LOCK_PIN E2 +#define LED_POWER_PIN D5 +#define CHG_EN_PIN E6 +#define BATTERY_LEVEL_PIN F0 diff --git a/keyboards/matrix/falcon/falcon.c b/keyboards/matrix/falcon/falcon.c new file mode 100644 index 000000000000..0d779443153e --- /dev/null +++ b/keyboards/matrix/falcon/falcon.c @@ -0,0 +1,28 @@ +/** + * falcon.c + * Copyright 2021 astro + 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 "falcon.h" + +void matrix_init_kb(void) +{ + // enable charge + setPinOutput(CHG_EN_PIN); + writePinHigh(CHG_EN_PIN); + + // enable led power + setPinOutput(LED_POWER_PIN); + writePinHigh(LED_POWER_PIN); + +} diff --git a/keyboards/matrix/falcon/falcon.h b/keyboards/matrix/falcon/falcon.h new file mode 100644 index 000000000000..f98ba095042d --- /dev/null +++ b/keyboards/matrix/falcon/falcon.h @@ -0,0 +1,51 @@ +/** + * falcon.h + * Copyright 2021 astro + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . + * + */ +#pragma once + +#include "quantum.h" + + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array + +#define LAYOUT_60_hhkb( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + 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, k43, k44, k45) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c}, \ + { 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,KC_NO}, \ + { k30,KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c}, \ + {KC_NO, k41, k42,KC_NO,KC_NO, k43, k44, k45, k0e, k3d, k2d, k1d, k0d} \ +} + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + 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, \ + k41, k42, k43, k44, k45) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c}, \ + { 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}, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c}, \ + {KC_NO, k41, k42,KC_NO,KC_NO, k43, k44, k45, k0e, k3d, k2d, k1d, k0d} \ +} diff --git a/keyboards/matrix/falcon/info.json b/keyboards/matrix/falcon/info.json new file mode 100644 index 000000000000..a7c48220c0f2 --- /dev/null +++ b/keyboards/matrix/falcon/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Matrix Lab Falcon", + "url": "", + "maintainer": "Astro", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_hhkb": { + "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}, {"label":"|", "x":13, "y":0}, {"label":"~", "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":"Delete", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "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":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/matrix/falcon/keymaps/default/keymap.c b/keyboards/matrix/falcon/keymaps/default/keymap.c new file mode 100644 index 000000000000..2860d515e97d --- /dev/null +++ b/keyboards/matrix/falcon/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/** + * keymap.c + * + Copyright 2021 astro + 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( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL), + + [1] = LAYOUT_60_hhkb( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,KC_PSCR, + RESET, RGB_TOG,RGB_MOD,_______,KC_F13,KC_F14,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME,KC_END,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______, _______, _______,_______), +}; diff --git a/keyboards/matrix/falcon/keymaps/via/keymap.c b/keyboards/matrix/falcon/keymaps/via/keymap.c new file mode 100644 index 000000000000..03f9bab87b88 --- /dev/null +++ b/keyboards/matrix/falcon/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/** + * keymap.c + * + Copyright 2021 astro + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_DEL, 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_LALT, KC_SPC, KC_RGUI,KC_RALT), + + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,KC_DEL, + RESET, _______,KC_UP,_______,_______,_______,_______,_______,KC_PAUS,KC_SLCK,KC_PSCR,KC_PGUP,_______,KC_INS, + _______, KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______, _______,_______,KC_HOME,KC_END,_______, _______, + _______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_PGDN,_______,_______, + _______,_______, _______, _______,MO(2)), + + [2] = LAYOUT_all( + _______, _______,_______, _______,_______, _______,_______, _______,_______, _______,_______, _______,_______,_______,_______, + _______, _______,KC_VOLU,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + KC_MUTE, KC_MPRV,KC_VOLD,KC_MNXT,_______,_______,_______,_______, _______,_______,_______,_______,_______, _______, + _______, _______, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_VAI,RGB_VAD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,_______,_______,_______, + _______,_______, KC_MPLY, _______,_______), + + [3] = LAYOUT_all( + _______, _______,_______, _______,_______, _______,_______, _______,_______, _______,_______, _______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______, _______, _______,_______) +}; diff --git a/keyboards/matrix/falcon/keymaps/via/rules.mk b/keyboards/matrix/falcon/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/matrix/falcon/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/matrix/falcon/readme.md b/keyboards/matrix/falcon/readme.md new file mode 100644 index 000000000000..c283650fcf59 --- /dev/null +++ b/keyboards/matrix/falcon/readme.md @@ -0,0 +1,25 @@ +# Falcon AVR + +PCB using atmega32u4 for the Matrix Falcon + +* Keyboard Maintainer: [astro](https://github.com/yulei) +* Hardware Supported: Matrix Falcon +* Hardware Availability: Limited GB + +Make example for this keyboard (after setting up your build environment): + + make matrix/falcon:default + +Flashing example for this keyboard: + + make matrix/falcon:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard. +* **Physical reset button**: Briefly short cut the *RST* pin with the *GND* pin (pin at the topside of the *RST*) on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available. \ No newline at end of file diff --git a/keyboards/matrix/falcon/rules.mk b/keyboards/matrix/falcon/rules.mk new file mode 100644 index 000000000000..9d1fe7ea8a48 --- /dev/null +++ b/keyboards/matrix/falcon/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_hhkb From e2c6dadfbf5efad7d5c88438593de34972dd845f Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 14 Aug 2021 01:48:25 -0700 Subject: [PATCH 256/328] Noxary 378 Layout Macro rework (#13998) * physically arrange layout macro * add info.json --- keyboards/noxary/378/378.h | 8 +- keyboards/noxary/378/info.json | 94 +++++++++++++++++++ keyboards/noxary/378/keymaps/default/keymap.c | 12 +-- keyboards/noxary/378/keymaps/via/keymap.c | 54 +++++------ 4 files changed, 131 insertions(+), 37 deletions(-) create mode 100644 keyboards/noxary/378/info.json diff --git a/keyboards/noxary/378/378.h b/keyboards/noxary/378/378.h index db92f21d2fcc..55158f3695cf 100644 --- a/keyboards/noxary/378/378.h +++ b/keyboards/noxary/378/378.h @@ -22,10 +22,10 @@ along with this program. If not, see . #define ___ KC_NO #define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3G, \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K1G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K2G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3G, \ K40, K41, K42, K43, K44, K48, K4C, K4E, K4F, K4G \ ) { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ diff --git a/keyboards/noxary/378/info.json b/keyboards/noxary/378/info.json new file mode 100644 index 000000000000..a63a2890ae17 --- /dev/null +++ b/keyboards/noxary/378/info.json @@ -0,0 +1,94 @@ +{ + "keyboard_name": "Noxary 378", + "url": "", + "maintainer": "Gondolindrim", + "height": 5, + "width": 19.25, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1!", "x": 3.25, "y": 0 }, + { "label": "2@", "x": 4.25, "y": 0 }, + { "label": "3#", "x": 5.25, "y": 0 }, + { "label": "4$", "x": 6.25, "y": 0 }, + { "label": "5%", "x": 7.25, "y": 0 }, + { "label": "6^", "x": 8.25, "y": 0 }, + { "label": "7&", "x": 9.25, "y": 0 }, + { "label": "8*", "x": 10.25, "y": 0 }, + { "label": "9(", "x": 11.25, "y": 0 }, + { "label": "0)", "x": 12.25, "y": 0 }, + { "label": "-_", "x": 13.25, "y": 0 }, + { "label": "=+", "x": 14.25, "y": 0 }, + { "label": "Backspace", "x": 15.25, "y": 0 }, + { "label": "Backspace", "x": 16.25, "y": 0 }, + { "label": "Print Screen", "x": 17.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + { "label": "Y", "x": 8.75, "y": 1 }, + { "label": "U", "x": 9.75, "y": 1 }, + { "label": "I", "x": 10.75, "y": 1 }, + { "label": "O", "x": 11.75, "y": 1 }, + { "label": "P", "x": 12.75, "y": 1 }, + { "label": "[{", "x": 13.75, "y": 1 }, + { "label": "]}", "x": 14.75, "y": 1 }, + { "label": "\\|", "x": 15.75, "y": 1, "w": 1.5 }, + { "label": "Delete", "x": 17.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + { "label": "H", "x": 9, "y": 2 }, + { "label": "J", "x": 10, "y": 2 }, + { "label": "K", "x": 11, "y": 2 }, + { "label": "L", "x": 12, "y": 2 }, + { "label": ";:", "x": 13, "y": 2 }, + { "label": "'\"", "x": 14, "y": 2 }, + { "label": "Enter", "x": 15, "y": 2, "w": 2.25 }, + { "label": "Home", "x": 17.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + { "label": "N", "x": 9.5, "y": 3 }, + { "label": "M", "x": 10.5, "y": 3 }, + { "label": "<", "x": 11.5, "y": 3 }, + { "label": ">", "x": 12.5, "y": 3 }, + { "label": "?", "x": 13.5, "y": 3 }, + { "label": "Shift", "x": 14.5, "y": 3, "w": 1.75 }, + { "label": "\u2191", "x": 16.25, "y": 3 }, + { "label": "End", "x": 17.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.5 }, + { "label": "GUI", "x": 3.75, "y": 4 }, + { "label": "Alt", "x": 4.75, "y": 4, "w": 1.5 }, + { "label": "Space", "x": 6.25, "y": 4, "w": 7 }, + { "label": "Alt", "x": 13.25, "y": 4, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 4 }, + { "label": "\u2193", "x": 16.25, "y": 4 }, + { "label": "\u2192", "x": 17.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/noxary/378/keymaps/default/keymap.c b/keyboards/noxary/378/keymaps/default/keymap.c index d78d05be3631..0bd9b7390dbd 100755 --- a/keyboards/noxary/378/keymaps/default/keymap.c +++ b/keyboards/noxary/378/keymaps/default/keymap.c @@ -17,11 +17,11 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( - KC_F1 , KC_F6 , 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_F2 , KC_F7 , 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_PSCR, - KC_F3 , KC_F8 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_HOME, KC_DEL , - KC_F4 , KC_F9 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_END , + [0] = LAYOUT_all( + KC_F1 , KC_F6 , 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_PSCR, + KC_F2 , KC_F7 , 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_F3 , KC_F8 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_HOME, + KC_F4 , KC_F9 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , KC_F5 , KC_F10 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT -) + ) }; diff --git a/keyboards/noxary/378/keymaps/via/keymap.c b/keyboards/noxary/378/keymaps/via/keymap.c index f8f4e4687f73..bcbe81690335 100755 --- a/keyboards/noxary/378/keymaps/via/keymap.c +++ b/keyboards/noxary/378/keymaps/via/keymap.c @@ -17,32 +17,32 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( - KC_F1 , KC_F6 , 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_F2 , KC_F7 , 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_PSCR, - KC_F3 , KC_F8 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_HOME, KC_DEL , - KC_F4 , KC_F9 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_END , + [0] = LAYOUT_all( + KC_F1 , KC_F6 , 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_PSCR, + KC_F2 , KC_F7 , 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_F3 , KC_F8 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_HOME, + KC_F4 , KC_F9 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , KC_F5 , KC_F10 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT -), - [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 -), - [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 -), - [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 -) + ), + [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 + ), + [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 + ), + [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 + ) }; From 90583a16682ce95fd2c044fd800a2b79bec6ab98 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 14 Aug 2021 02:02:24 -0700 Subject: [PATCH 257/328] Orthocode Layout Macro rework (#13995) * move rotary encoder to top row of layout macro Makes the layout macro and keycodes resemble the assembled keyboard. * update info.json data - convert tabs to spaces - use human-friendly formatting - fill in key object labels - adjust object sequence for layout macro changes --- keyboards/orthocode/info.json | 145 ++++++++++--------- keyboards/orthocode/keymaps/default/keymap.c | 96 +++++++----- keyboards/orthocode/orthocode.h | 3 +- 3 files changed, 133 insertions(+), 111 deletions(-) diff --git a/keyboards/orthocode/info.json b/keyboards/orthocode/info.json index fec4da90bf2c..44a001242050 100644 --- a/keyboards/orthocode/info.json +++ b/keyboards/orthocode/info.json @@ -7,78 +7,83 @@ "layouts": { "LAYOUT": { "layout": [ - {"label":"Game", "x":0.5, "y":1}, - {"label":"Esc", "x":1.75, "y":1}, - {"label":"", "x":3, "y":1}, - {"label":"", "x":4, "y":1}, - {"label":"", "x":5, "y":1}, - {"label":"", "x":6, "y":1}, - {"label":"", "x":7, "y":1}, - {"label":"", "x":10.5, "y":1}, - {"label":"", "x":11.5, "y":1}, - {"label":"", "x":12.5, "y":1}, - {"label":"", "x":13.5, "y":1}, - {"label":"", "x":14.5, "y":1}, - {"label":"_", "x":15.5, "y":1}, - {"label":"+", "x":16.5, "y":1}, - {"label":"Home", "x":17.5, "y":1}, - {"label":"M1", "x":0.25, "y":2}, - {"label":"Tab", "x":1.5, "y":2, "w":1.5}, - {"label":"Q", "x":3, "y":2}, - {"label":"W", "x":4, "y":2}, - {"label":"E", "x":5, "y":2}, - {"label":"R", "x":6, "y":2}, - {"label":"T", "x":7, "y":2}, - {"label":"Y", "x":10.5, "y":2}, - {"label":"U", "x":11.5, "y":2}, - {"label":"I", "x":12.5, "y":2}, - {"label":"O", "x":13.5, "y":2}, - {"label":"P", "x":14.5, "y":2}, - {"label":"|", "x":15.5, "y":2, "w":1.5}, - {"label":"Delete", "x":17, "y":2}, - {"label":"End", "x":18, "y":2}, - {"label":"M2", "x":0, "y":3}, - {"label":"Ctrl", "x":1.25, "y":3, "w":1.75}, - {"label":"A", "x":3, "y":3}, - {"label":"S", "x":4, "y":3}, - {"label":"D", "x":5, "y":3}, - {"label":"F", "x":6, "y":3}, - {"label":"G", "x":7, "y":3}, - {"label":"H", "x":10.5, "y":3}, - {"label":"J", "x":11.5, "y":3}, - {"label":"K", "x":12.5, "y":3}, - {"label":"L", "x":13.5, "y":3}, - {"label":":", "x":14.5, "y":3}, - {"label":"\"", "x":15.5, "y":3}, - {"label":"Enter", "x":16.5, "y":3, "w":2.25}, {"label":"Rotary", "x":0.5, "y":0}, + + {"label":"Game", "x":0.5, "y":1}, + {"label":"Esc", "x":1.75, "y":1}, + {"label":"1", "x":3, "y":1}, + {"label":"2", "x":4, "y":1}, + {"label":"3", "x":5, "y":1}, + {"label":"4", "x":6, "y":1}, + {"label":"5", "x":7, "y":1}, + {"label":"6", "x":10.5, "y":1}, + {"label":"7", "x":11.5, "y":1}, + {"label":"8", "x":12.5, "y":1}, + {"label":"9", "x":13.5, "y":1}, + {"label":"0", "x":14.5, "y":1}, + {"label":"_", "x":15.5, "y":1}, + {"label":"+", "x":16.5, "y":1}, + {"label":"Home", "x":17.5, "y":1}, + + {"label":"M1", "x":0.25, "y":2}, + {"label":"Tab", "x":1.5, "y":2, "w":1.5}, + {"label":"Q", "x":3, "y":2}, + {"label":"W", "x":4, "y":2}, + {"label":"E", "x":5, "y":2}, + {"label":"R", "x":6, "y":2}, + {"label":"T", "x":7, "y":2}, + {"label":"Y", "x":10.5, "y":2}, + {"label":"U", "x":11.5, "y":2}, + {"label":"I", "x":12.5, "y":2}, + {"label":"O", "x":13.5, "y":2}, + {"label":"P", "x":14.5, "y":2}, + {"label":"|", "x":15.5, "y":2, "w":1.5}, + {"label":"Delete", "x":17, "y":2}, + {"label":"End", "x":18, "y":2}, + + {"label":"M2", "x":0, "y":3}, + {"label":"Ctrl", "x":1.25, "y":3, "w":1.75}, + {"label":"A", "x":3, "y":3}, + {"label":"S", "x":4, "y":3}, + {"label":"D", "x":5, "y":3}, + {"label":"F", "x":6, "y":3}, + {"label":"G", "x":7, "y":3}, + {"label":"H", "x":10.5, "y":3}, + {"label":"J", "x":11.5, "y":3}, + {"label":"K", "x":12.5, "y":3}, + {"label":"L", "x":13.5, "y":3}, + {"label":":", "x":14.5, "y":3}, + {"label":"\"", "x":15.5, "y":3}, + {"label":"Enter", "x":16.5, "y":3, "w":2.25}, + {"label":"Layer", "x":0.75, "y":4, "w":2.25}, - {"label":"Z", "x":3, "y":4}, - {"label":"X", "x":4, "y":4}, - {"label":"C", "x":5, "y":4}, - {"label":"V", "x":6, "y":4}, - {"label":"B", "x":7, "y":4}, - {"label":"N", "x":10.5, "y":4}, - {"label":"M", "x":11.5, "y":4}, - {"label":"<", "x":12.5, "y":4}, - {"label":">", "x":13.5, "y":4}, - {"label":"?", "x":14.5, "y":4}, - {"label":"\u2191", "x":17, "y":4}, - {"label":"Ctrl", "x":1.25, "y":5, "w":1.25}, - {"label":"Win", "x":2.5, "y":5, "w":1.25}, - {"label":"Alt", "x":3.75, "y":5, "w":1.25}, - {"label":"Fn", "x":5.5, "y":5, "w":1.25}, - {"label":"th1", "x":6.75, "y":5, "h":2.75}, - {"label":"th2", "x":7.75, "y":5.25, "h":2.25}, - {"label":"th3", "x":9.75, "y":5.25, "h":2.25}, - {"label":"th4", "x":10.75, "y":5, "h":2.75}, - {"label":"Fn", "x":11.75, "y":5, "w":1.25}, - {"label":"Alt", "x":13, "y":5, "w":1.25}, - {"label":"Ctrl", "x":14.25, "y":5, "w":1.25}, - {"label":"\u2190", "x":16, "y":5}, - {"label":"\u2193", "x":17, "y":5}, - {"label":"\u2192", "x":18, "y":5}] + {"label":"Z", "x":3, "y":4}, + {"label":"X", "x":4, "y":4}, + {"label":"C", "x":5, "y":4}, + {"label":"V", "x":6, "y":4}, + {"label":"B", "x":7, "y":4}, + {"label":"N", "x":10.5, "y":4}, + {"label":"M", "x":11.5, "y":4}, + {"label":"<", "x":12.5, "y":4}, + {"label":">", "x":13.5, "y":4}, + {"label":"?", "x":14.5, "y":4}, + {"label":"\u2191", "x":17, "y":4}, + + {"label":"Ctrl", "x":1.25, "y":5, "w":1.25}, + {"label":"Win", "x":2.5, "y":5, "w":1.25}, + {"label":"Alt", "x":3.75, "y":5, "w":1.25}, + {"label":"Fn", "x":5.5, "y":5, "w":1.25}, + {"label":"th1", "x":6.75, "y":5, "h":2.75}, + {"label":"th2", "x":7.75, "y":5.25, "h":2.25}, + {"label":"th3", "x":9.75, "y":5.25, "h":2.25}, + {"label":"th4", "x":10.75, "y":5, "h":2.75}, + {"label":"Fn", "x":11.75, "y":5, "w":1.25}, + {"label":"Alt", "x":13, "y":5, "w":1.25}, + {"label":"Ctrl", "x":14.25, "y":5, "w":1.25}, + {"label":"\u2190", "x":16, "y":5}, + {"label":"\u2193", "x":17, "y":5}, + {"label":"\u2192", "x":18, "y":5} + ] } } } - diff --git a/keyboards/orthocode/keymaps/default/keymap.c b/keyboards/orthocode/keymaps/default/keymap.c index 11a20102c3dd..ea69d013354a 100644 --- a/keyboards/orthocode/keymaps/default/keymap.c +++ b/keyboards/orthocode/keymaps/default/keymap.c @@ -27,47 +27,63 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - TG(2), 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_HOME, - 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_BSLS, KC_DEL, KC_END, - RGB_MOD, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC__MUTE, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_RSFT, KC_ENT, KC_BSPC, KC_SHSP, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT( - /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ - TG(3), KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - /* tab Q W E R T Y U I O P \ delete end */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS, KC_TRNS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, - /* caps A S D F G H J K L ; ' enter */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, - /* shift Z X C V B N M , . / up */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_EQL, LSFT(KC_EQL), LSFT(KC_9), LSFT(KC_0), KC_TRNS, KC_VOLU, - /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right*/ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS), - [2] = LAYOUT( - /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /* tab Q W E R T Y U I O P \ delete end */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, - /* caps A S D F G H J K L ; ' enter */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, - /* Rotary shift Z X C V B N M , . / up */ - KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right*/ - KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [3] = LAYOUT( - /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ - TG(3), KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, - /* tab Q W E R T Y U I O P \ delete end */ - KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, - /* caps A S D F G H J K L ; ' enter */ - KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, - /* Rotary shift Z X C V B N M , . / up */ - KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, - /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right*/ - KC_FROG, KC_FROG, KC_FROG, MO(1), KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG), + [0] = LAYOUT( + /* Rotary */ + KC__MUTE, + /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ + TG(2), 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_HOME, + /* tab Q W E R T Y U I O P \ delete end */ + 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_BSLS, KC_DEL, KC_END, + /* caps A S D F G H J K L ; ' enter */ + RGB_MOD, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + /* shift Z X C V B N M , . / up */ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, + /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right */ + KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_RSFT, KC_ENT, KC_BSPC, KC_SHSP, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + /* Rotary */ + KC_TRNS, + /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ + TG(3), KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + /* tab Q W E R T Y U I O P \ delete end */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, + /* caps A S D F G H J K L ; ' enter */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, + /* shift Z X C V B N M , . / up */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_EQL, LSFT(KC_EQL), LSFT(KC_9), LSFT(KC_0), KC_TRNS, KC_VOLU, + /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS + ), + [2] = LAYOUT( + /* Rotary */ + KC_TRNS, + /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* tab Q W E R T Y U I O P \ delete end */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, + /* caps A S D F G H J K L ; ' enter */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, + /* shift Z X C V B N M , . / up */ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right */ + KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + /* Rotary */ + KC_FROG, + /* esc 1 2 3 4 5 6 7 8 9 0 - = home */ + TG(3), KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, + /* tab Q W E R T Y U I O P \ delete end */ + KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, + /* caps A S D F G H J K L ; ' enter */ + KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, + /* shift Z X C V B N M , . / up */ + KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, + /* ctrl win alt fn th1 th2 th3 th4 fn alt ctrl left down right */ + KC_FROG, KC_FROG, KC_FROG, MO(1), KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG, KC_FROG + ) }; diff --git a/keyboards/orthocode/orthocode.h b/keyboards/orthocode/orthocode.h index 83da04130338..3abcd48c0619 100644 --- a/keyboards/orthocode/orthocode.h +++ b/keyboards/orthocode/orthocode.h @@ -21,10 +21,11 @@ #include "quantum.h" #define LAYOUT( \ + K30, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ 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, K3D, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E \ ) { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ From 47b76f556bb7915267b0c687ef936cb86d0ef37d Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 14 Aug 2021 02:10:03 -0700 Subject: [PATCH 258/328] Function96 V2 Configurator fixes (#13996) * info.json: apply human-friendly formatting * correct key sequence for LAYOUT_iso * correct key sequence for LAYOUT_iso_splitspace * add layout data for LAYOUT_all --- keyboards/function96/v2/info.json | 541 +++++++++++++++++++++++++++++- 1 file changed, 537 insertions(+), 4 deletions(-) diff --git a/keyboards/function96/v2/info.json b/keyboards/function96/v2/info.json index 45382681fcdd..cdde451466d4 100644 --- a/keyboards/function96/v2/info.json +++ b/keyboards/function96/v2/info.json @@ -5,17 +5,550 @@ "width": 19, "height": 6, "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"Del", "x":14, "y":0}, + {"label":"Prev", "x":15, "y":0}, + {"label":"Next", "x":16, "y":0}, + {"label":"Vol -", "x":17, "y":0}, + {"label":"Vol +", "x":18, "y":0}, + + {"label":"\u00ac", "x":0, "y":1}, + {"label":"!", "x":1, "y":1}, + {"label":"\"", "x":2, "y":1}, + {"label":"\u00a3", "x":3, "y":1}, + {"label":"$", "x":4, "y":1}, + {"label":"%", "x":5, "y":1}, + {"label":"^", "x":6, "y":1}, + {"label":"&", "x":7, "y":1}, + {"label":"*", "x":8, "y":1}, + {"label":"(", "x":9, "y":1}, + {"label":")", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"Backspace", "x":13, "y":1, "w":2}, + {"label":"Play", "x":15, "y":1}, + {"label":"/", "x":16, "y":1}, + {"label":"*", "x":17, "y":1}, + {"label":"-", "x":18, "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":"7", "x":15, "y":2}, + {"label":"8", "x":16, "y":2}, + {"label":"9", "x":17, "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":"~", "x":12.75, "y":3}, + {"label":"Enter", "x":13.75, "y":3, "w":1.25}, + {"label":"4", "x":15, "y":3}, + {"label":"5", "x":16, "y":3}, + {"label":"6", "x":17, "y":3}, + {"label":"+", "x":18, "y":2, "h":2}, + + {"label":"Shift", "x":0, "y":4, "w":1.25}, + {"label":"|", "x":1.25, "y":4}, + {"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":"\u2191", "x":14, "y":4}, + {"label":"1", "x":15, "y":4}, + {"label":"2", "x":16, "y":4}, + {"label":"3", "x":17, "y":4}, + + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "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":2.25}, + {"label":"Layer", "x":6, "y":5, "w":1.25}, + {"label":"Space", "x":7.25, "y":5, "w":2.75}, + {"label":"Alt", "x":10, "y":5, "w":1.25}, + {"label":"Win", "x":11.25, "y":5, "w":1.25}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}, + {"label":"0", "x":16, "y":5}, + {"label":".", "x":17, "y":5}, + {"label":"Enter", "x":18, "y":4, "h":2} + ] + }, "LAYOUT_default": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "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":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"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":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}] + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"Del", "x":14, "y":0}, + {"label":"Prev", "x":15, "y":0}, + {"label":"Next", "x":16, "y":0}, + {"label":"Vol -", "x":17, "y":0}, + {"label":"Vol +", "x":18, "y":0}, + + {"label":"\u00ac", "x":0, "y":1}, + {"label":"!", "x":1, "y":1}, + {"label":"\"", "x":2, "y":1}, + {"label":"\u00a3", "x":3, "y":1}, + {"label":"$", "x":4, "y":1}, + {"label":"%", "x":5, "y":1}, + {"label":"^", "x":6, "y":1}, + {"label":"&", "x":7, "y":1}, + {"label":"*", "x":8, "y":1}, + {"label":"(", "x":9, "y":1}, + {"label":")", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"Backspace", "x":13, "y":1, "w":2}, + {"label":"Play", "x":15, "y":1}, + {"label":"/", "x":16, "y":1}, + {"label":"*", "x":17, "y":1}, + {"label":"-", "x":18, "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":"7", "x":15, "y":2}, + {"label":"8", "x":16, "y":2}, + {"label":"9", "x":17, "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":"4", "x":15, "y":3}, + {"label":"5", "x":16, "y":3}, + {"label":"6", "x":17, "y":3}, + {"label":"+", "x":18, "y":2, "h":2}, + + {"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":"\u2191", "x":14, "y":4}, + {"label":"1", "x":15, "y":4}, + {"label":"2", "x":16, "y":4}, + {"label":"3", "x":17, "y":4}, + + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, + {"label":"Alt", "x":10, "y":5, "w":1.25}, + {"label":"Win", "x":11.25, "y":5, "w":1.25}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}, + {"label":"0", "x":16, "y":5}, + {"label":".", "x":17, "y":5}, + {"label":"Enter", "x":18, "y":4, "h":2} + ] }, "LAYOUT_ansi_splitspace": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "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":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"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":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "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":2.25}, {"label":"Layer", "x":6, "y":5, "w":1.25}, {"label":"Space", "x":7.25, "y":5, "w":2.75}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}] + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"Del", "x":14, "y":0}, + {"label":"Prev", "x":15, "y":0}, + {"label":"Next", "x":16, "y":0}, + {"label":"Vol -", "x":17, "y":0}, + {"label":"Vol +", "x":18, "y":0}, + + {"label":"\u00ac", "x":0, "y":1}, + {"label":"!", "x":1, "y":1}, + {"label":"\"", "x":2, "y":1}, + {"label":"\u00a3", "x":3, "y":1}, + {"label":"$", "x":4, "y":1}, + {"label":"%", "x":5, "y":1}, + {"label":"^", "x":6, "y":1}, + {"label":"&", "x":7, "y":1}, + {"label":"*", "x":8, "y":1}, + {"label":"(", "x":9, "y":1}, + {"label":")", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"Backspace", "x":13, "y":1, "w":2}, + {"label":"Play", "x":15, "y":1}, + {"label":"/", "x":16, "y":1}, + {"label":"*", "x":17, "y":1}, + {"label":"-", "x":18, "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":"7", "x":15, "y":2}, + {"label":"8", "x":16, "y":2}, + {"label":"9", "x":17, "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":"4", "x":15, "y":3}, + {"label":"5", "x":16, "y":3}, + {"label":"6", "x":17, "y":3}, + {"label":"+", "x":18, "y":2, "h":2}, + + {"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":"\u2191", "x":14, "y":4}, + {"label":"1", "x":15, "y":4}, + {"label":"2", "x":16, "y":4}, + {"label":"3", "x":17, "y":4}, + + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "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":2.25}, + {"label":"Layer", "x":6, "y":5, "w":1.25}, + {"label":"Space", "x":7.25, "y":5, "w":2.75}, + {"label":"Alt", "x":10, "y":5, "w":1.25}, + {"label":"Win", "x":11.25, "y":5, "w":1.25}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}, + {"label":"0", "x":16, "y":5}, + {"label":".", "x":17, "y":5}, + {"label":"Enter", "x":18, "y":4, "h":2} + ] }, "LAYOUT_iso": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":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":"~", "x":12.75, "y":3}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"|", "x":1.25, "y":4}, {"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":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}] + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"Del", "x":14, "y":0}, + {"label":"Prev", "x":15, "y":0}, + {"label":"Next", "x":16, "y":0}, + {"label":"Vol -", "x":17, "y":0}, + {"label":"Vol +", "x":18, "y":0}, + + {"label":"\u00ac", "x":0, "y":1}, + {"label":"!", "x":1, "y":1}, + {"label":"\"", "x":2, "y":1}, + {"label":"\u00a3", "x":3, "y":1}, + {"label":"$", "x":4, "y":1}, + {"label":"%", "x":5, "y":1}, + {"label":"^", "x":6, "y":1}, + {"label":"&", "x":7, "y":1}, + {"label":"*", "x":8, "y":1}, + {"label":"(", "x":9, "y":1}, + {"label":")", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"Backspace", "x":13, "y":1, "w":2}, + {"label":"Play", "x":15, "y":1}, + {"label":"/", "x":16, "y":1}, + {"label":"*", "x":17, "y":1}, + {"label":"-", "x":18, "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":"7", "x":15, "y":2}, + {"label":"8", "x":16, "y":2}, + {"label":"9", "x":17, "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":"~", "x":12.75, "y":3}, + {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, + {"label":"4", "x":15, "y":3}, + {"label":"5", "x":16, "y":3}, + {"label":"6", "x":17, "y":3}, + {"label":"+", "x":18, "y":2, "h":2}, + + {"label":"Shift", "x":0, "y":4, "w":1.25}, + {"label":"|", "x":1.25, "y":4}, + {"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":"\u2191", "x":14, "y":4}, + {"label":"1", "x":15, "y":4}, + {"label":"2", "x":16, "y":4}, + {"label":"3", "x":17, "y":4}, + + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, + {"label":"Alt", "x":10, "y":5, "w":1.25}, + {"label":"Win", "x":11.25, "y":5, "w":1.25}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}, + {"label":"0", "x":16, "y":5}, + {"label":".", "x":17, "y":5}, + {"label":"Enter", "x":18, "y":4, "h":2} + ] }, "LAYOUT_iso_splitspace": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":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":"~", "x":12.75, "y":3}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"|", "x":1.25, "y":4}, {"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":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "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":2.25}, {"label":"Layer", "x":6, "y":5, "w":1.25}, {"label":"Space", "x":7.25, "y":5, "w":2.75}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}] + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"Del", "x":14, "y":0}, + {"label":"Prev", "x":15, "y":0}, + {"label":"Next", "x":16, "y":0}, + {"label":"Vol -", "x":17, "y":0}, + {"label":"Vol +", "x":18, "y":0}, + + {"label":"\u00ac", "x":0, "y":1}, + {"label":"!", "x":1, "y":1}, + {"label":"\"", "x":2, "y":1}, + {"label":"\u00a3", "x":3, "y":1}, + {"label":"$", "x":4, "y":1}, + {"label":"%", "x":5, "y":1}, + {"label":"^", "x":6, "y":1}, + {"label":"&", "x":7, "y":1}, + {"label":"*", "x":8, "y":1}, + {"label":"(", "x":9, "y":1}, + {"label":")", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"Backspace", "x":13, "y":1, "w":2}, + {"label":"Play", "x":15, "y":1}, + {"label":"/", "x":16, "y":1}, + {"label":"*", "x":17, "y":1}, + {"label":"-", "x":18, "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":"7", "x":15, "y":2}, + {"label":"8", "x":16, "y":2}, + {"label":"9", "x":17, "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":"~", "x":12.75, "y":3}, + {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, + {"label":"4", "x":15, "y":3}, + {"label":"5", "x":16, "y":3}, + {"label":"6", "x":17, "y":3}, + {"label":"+", "x":18, "y":2, "h":2}, + + {"label":"Shift", "x":0, "y":4, "w":1.25}, + {"label":"|", "x":1.25, "y":4}, + {"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":"\u2191", "x":14, "y":4}, + {"label":"1", "x":15, "y":4}, + {"label":"2", "x":16, "y":4}, + {"label":"3", "x":17, "y":4}, + + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "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":2.25}, + {"label":"Layer", "x":6, "y":5, "w":1.25}, + {"label":"Space", "x":7.25, "y":5, "w":2.75}, + {"label":"Alt", "x":10, "y":5, "w":1.25}, + {"label":"Win", "x":11.25, "y":5, "w":1.25}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}, + {"label":"0", "x":16, "y":5}, + {"label":".", "x":17, "y":5}, + {"label":"Enter", "x":18, "y":4, "h":2} + ] } } } From de29364827063c5ee79d2e9d0eec33af63286408 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 14 Aug 2021 06:19:50 -0700 Subject: [PATCH 259/328] Ducky One2mini Layout Macro fixes (#14002) --- keyboards/ducky/one2mini/1861st/1861st.h | 58 ++++++++++--------- keyboards/ducky/one2mini/1861st/info.json | 24 ++++++-- .../ducky/one2mini/keymaps/ansi/keymap.c | 24 ++++---- .../ducky/one2mini/keymaps/default/keymap.c | 12 ++-- keyboards/ducky/one2mini/keymaps/iso/keymap.c | 18 +++--- 5 files changed, 76 insertions(+), 60 deletions(-) diff --git a/keyboards/ducky/one2mini/1861st/1861st.h b/keyboards/ducky/one2mini/1861st/1861st.h index 2f6f7eee7650..23ca1820627a 100644 --- a/keyboards/ducky/one2mini/1861st/1861st.h +++ b/keyboards/ducky/one2mini/1861st/1861st.h @@ -17,6 +17,8 @@ #include "quantum.h" +#define XXX KC_NO + /* This a shortcut to help you visually see your layout. * * The first section contains all of the arguments representing the physical @@ -30,39 +32,39 @@ 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, k3d, \ - k40, k41, k42, k45, k4a, k4b, k4c, k4d \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, KC_NO }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO }, \ - { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ } -#define LAYOUT_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, k2c, k2d, \ - k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ - k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +#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, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, KC_NO }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO }, \ - { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ } -#define LAYOUT_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, k3d, \ - k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +#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, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO, }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, KC_NO, }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO, }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO, }, \ - { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ } diff --git a/keyboards/ducky/one2mini/1861st/info.json b/keyboards/ducky/one2mini/1861st/info.json index f0abe81ed86d..44ba19b6e776 100644 --- a/keyboards/ducky/one2mini/1861st/info.json +++ b/keyboards/ducky/one2mini/1861st/info.json @@ -2,6 +2,9 @@ "keyboard_name": "Ducky One 2 Mini", "width": 14, "height": 5, + "layout_aliases": { + "LAYOUT_iso": "LAYOUT_60_iso" + }, "layouts": { "LAYOUT_all": { "layout": [ @@ -19,6 +22,7 @@ { "x": 11, "y": 0, "w": 1, "label": "DASH" }, { "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" }, { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" }, + { "x": 0, "y": 1, "w": 1.5, "label": "TAB" }, { "x": 1.5, "y": 1, "w": 1, "label": "Q" }, { "x": 2.5, "y": 1, "w": 1, "label": "W" }, @@ -33,6 +37,7 @@ { "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" }, { "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" }, { "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" }, + { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" }, { "x": 1.75, "y": 2, "w": 1, "label": "A" }, { "x": 2.75, "y": 2, "w": 1, "label": "S" }, @@ -47,6 +52,7 @@ { "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" }, { "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" }, { "x": 13.75, "y": 2, "w": 1.25, "label": "ENTER" }, + { "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" }, { "x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH" }, { "x": 2.25, "y": 3, "w": 1, "label": "Z" }, @@ -59,7 +65,8 @@ { "x": 9.25, "y": 3, "w": 1, "label": "COMMA" }, { "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" }, { "x": 11.25, "y": 3, "w": 1, "label": "SLASH" }, - { "x": 12.25, "y": 3, "w": 2.25, "label": "RSHIFT" }, + { "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" }, + { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" }, { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" }, { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" }, @@ -71,7 +78,7 @@ ] }, - "LAYOUT_ansi": { + "LAYOUT_60_ansi": { "layout": [ { "x": 0, "y": 0, "w": 1, "label": "ESC" }, { "x": 1, "y": 0, "w": 1, "label": "1" }, @@ -87,6 +94,7 @@ { "x": 11, "y": 0, "w": 1, "label": "DASH" }, { "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" }, { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" }, + { "x": 0, "y": 1, "w": 1.5, "label": "TAB" }, { "x": 1.5, "y": 1, "w": 1, "label": "Q" }, { "x": 2.5, "y": 1, "w": 1, "label": "W" }, @@ -101,6 +109,7 @@ { "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" }, { "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" }, { "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" }, + { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" }, { "x": 1.75, "y": 2, "w": 1, "label": "A" }, { "x": 2.75, "y": 2, "w": 1, "label": "S" }, @@ -113,8 +122,8 @@ { "x": 9.75, "y": 2, "w": 1, "label": "L" }, { "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" }, { "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" }, - { "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" }, { "x": 12.75, "y": 2, "w": 2.25, "label": "ENTER" }, + { "x": 0, "y": 3, "w": 2.25, "label": "LSHIFT" }, { "x": 2.25, "y": 3, "w": 1, "label": "Z" }, { "x": 3.25, "y": 3, "w": 1, "label": "X" }, @@ -127,6 +136,7 @@ { "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" }, { "x": 11.25, "y": 3, "w": 1, "label": "SLASH" }, { "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" }, + { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" }, { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" }, { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" }, @@ -138,7 +148,7 @@ ] }, - "LAYOUT_iso": { + "LAYOUT_60_iso": { "layout": [ { "x": 0, "y": 0, "w": 1, "label": "ESC" }, { "x": 1, "y": 0, "w": 1, "label": "1" }, @@ -154,6 +164,7 @@ { "x": 11, "y": 0, "w": 1, "label": "DASH" }, { "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" }, { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" }, + { "x": 0, "y": 1, "w": 1.5, "label": "TAB" }, { "x": 1.5, "y": 1, "w": 1, "label": "Q" }, { "x": 2.5, "y": 1, "w": 1, "label": "W" }, @@ -167,7 +178,7 @@ { "x": 10.5, "y": 1, "w": 1, "label": "P" }, { "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" }, { "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" }, - { "x": 13.75, "y": 1, "w": 1.25, "h": 2, "label": "ENTER" }, + { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" }, { "x": 1.75, "y": 2, "w": 1, "label": "A" }, { "x": 2.75, "y": 2, "w": 1, "label": "S" }, @@ -181,6 +192,8 @@ { "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" }, { "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" }, { "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" }, + { "x": 13.75, "y": 1, "w": 1.25, "h": 2, "label": "ENTER" }, + { "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" }, { "x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH" }, { "x": 2.25, "y": 3, "w": 1, "label": "Z" }, @@ -194,6 +207,7 @@ { "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" }, { "x": 11.25, "y": 3, "w": 1, "label": "SLASH" }, { "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" }, + { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" }, { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" }, { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" }, diff --git a/keyboards/ducky/one2mini/keymaps/ansi/keymap.c b/keyboards/ducky/one2mini/keymaps/ansi/keymap.c index c6d597f72c91..3f03525e1789 100644 --- a/keyboards/ducky/one2mini/keymaps/ansi/keymap.c +++ b/keyboards/ducky/one2mini/keymaps/ansi/keymap.c @@ -27,30 +27,30 @@ enum Layer { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_ansi( + [_QWERTY] = LAYOUT_60_ansi( // 2 3 4 5 6 7 8 9 10 11 12 13 14 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_NUBS, - 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL ), - [_FUNCTION] = LAYOUT_ansi( + [_FUNCTION] = LAYOUT_60_ansi( // 2 3 4 5 6 7 8 9 10 11 12 13 14 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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, - _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, - _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - _______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______ + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_ENT, + _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______ ), - [_COLOUR] = LAYOUT_ansi( + [_COLOUR] = LAYOUT_60_ansi( // 2 3 4 5 6 7 8 9 10 11 12 13 14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RGB_TOG, _______, _______, _______, _______ + _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______ ), }; diff --git a/keyboards/ducky/one2mini/keymaps/default/keymap.c b/keyboards/ducky/one2mini/keymaps/default/keymap.c index 573353a769de..d8bc5bbe2437 100644 --- a/keyboards/ducky/one2mini/keymaps/default/keymap.c +++ b/keyboards/ducky/one2mini/keymaps/default/keymap.c @@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL ), [_FUNCTION] = LAYOUT_all( @@ -41,8 +41,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, - _______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - _______, _______, MO(_CLR), KC_MPLY, _______, KC_APP, _______, _______ + _______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, MO(_CLR), KC_MPLY, _______, KC_APP, _______, _______ ), [_COLOUR] = LAYOUT_all( @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RGB_TOG, _______, _______, _______, _______ + _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______ ), }; diff --git a/keyboards/ducky/one2mini/keymaps/iso/keymap.c b/keyboards/ducky/one2mini/keymaps/iso/keymap.c index 758f45931fcd..1929b86c1e8b 100644 --- a/keyboards/ducky/one2mini/keymaps/iso/keymap.c +++ b/keyboards/ducky/one2mini/keymaps/iso/keymap.c @@ -27,30 +27,30 @@ enum Layer { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_iso( + [_QWERTY] = LAYOUT_60_iso( // 2 3 4 5 6 7 8 9 10 11 12 13 14 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_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, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL ), - [_FUNCTION] = LAYOUT_iso( + [_FUNCTION] = LAYOUT_60_iso( // 2 3 4 5 6 7 8 9 10 11 12 13 14 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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, - _______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - _______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______ + _______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______ ), - [_COLOUR] = LAYOUT_iso( + [_COLOUR] = LAYOUT_60_iso( // 2 3 4 5 6 7 8 9 10 11 12 13 14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RGB_TOG, _______, _______, _______, _______ + _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______ ), }; From fce12f007560834fc761b2f1ee53b32f0353e24e Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 15 Aug 2021 00:18:20 +1000 Subject: [PATCH 260/328] Rework keymap_extras docs (#13949) --- docs/reference_keymap_extras.md | 155 ++++++++++++++++---------------- 1 file changed, 80 insertions(+), 75 deletions(-) diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index 40a1956844ba..ae3d54e4de86 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -1,86 +1,91 @@ # Language-specific Keycodes -Keyboards are able to support a wide range of languages. However, they do not send the actual characters produced by pressing their keys - instead, they send numerical codes. In the USB HID spec, these are called "usages", although they are more often referred to as "scancodes" or "keycodes" when in the context of keyboards. -Less than 256 usages are defined in the HID Keyboard/Keypad usage page, and some of those do nothing on modern operating systems. So, how is this language support achieved? +Keyboards are able to support a wide range of languages. However, this support is not actually achieved within the keyboard itself - instead, it sends numerical codes, which the operating system maps to the appropriate characters depending on the user's configured keyboard layout. By default (and per the HID spec), this is the US ANSI layout. For example, when a Swedish person presses the key with the `å` character printed on it, the keyboard is *actually* sending the keycode for `[`. -In a nutshell, the operating system maps the usages it receives to the appropriate character based on the user's configured keyboard layout. For example, when a Swedish person presses the key with the `å` character printed on it, the keyboard is *actually* sending the keycode for `[`. +Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. -Obviously, this could get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. +Simply `#include` one of the keycode headers below at the top of your `keymap.c`, and assign the keycodes defined in the header in place of the `KC_` prefixed ones. -To use these, simply `#include` the corresponding [header file](https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras) in your `keymap.c`, and add the keycodes defined in them in place of the `KC_` prefixed ones: +## Sendstring Support -|Layout |Header | -|---------------------------|--------------------------------| -|Canadian Multilingual (CSA)|`keymap_canadian_multilingual.h`| -|Croatian |`keymap_croatian.h` | -|Czech |`keymap_czech.h` | -|Danish |`keymap_danish.h` | -|Dutch (Belgium) |`keymap_belgian.h` | -|English (Ireland) |`keymap_irish.h` | -|English (UK) |`keymap_uk.h` | -|English (US Extended) |`keymap_us_extended.h` | -|English (US International) |`keymap_us_international.h` | -|English (US International, Linux)|`keymap_us_international_linux.h`| -|Estonian |`keymap_estonian.h` | -|Finnish |`keymap_finnish.h` | -|French |`keymap_french.h` | -|French (AFNOR) |`keymap_french_afnor.h` | -|French (BÉPO) |`keymap_bepo.h` | -|French (Belgium) |`keymap_belgian.h` | -|French (Switzerland) |`keymap_fr_ch.h` | -|French (macOS, ISO) |`keymap_french_osx.h` | -|German |`keymap_german.h` | -|German (Switzerland) |`keymap_german_ch.h` | -|German (macOS) |`keymap_german_osx.h` | -|German (Neo2)* |`keymap_neo2.h` | -|Greek* |`keymap_greek.h` | -|Hebrew* |`keymap_hebrew.h` | -|Hungarian |`keymap_hungarian.h` | -|Icelandic |`keymap_icelandic.h` | -|Italian |`keymap_italian.h` | -|Italian (macOS, ANSI) |`keymap_italian_osx_ansi.h` | -|Italian (macOS, ISO) |`keymap_italian_osx_iso.h` | -|Japanese |`keymap_jp.h` | -|Korean |`keymap_korean.h` | -|Latvian |`keymap_latvian.h` | -|Lithuanian (ĄŽERTY) |`keymap_lithuanian_azerty.h` | -|Lithuanian (QWERTY) |`keymap_lithuanian_qwerty.h` | -|Norwegian |`keymap_norwegian.h` | -|Polish |`keymap_polish.h` | -|Portuguese |`keymap_portuguese.h` | -|Portuguese (macOS, ISO) |`keymap_portuguese_osx_iso.h` | -|Portuguese (Brazil) |`keymap_br_abnt2.h` | -|Romanian |`keymap_romanian.h` | -|Russian* |`keymap_russian.h` | -|Serbian* |`keymap_serbian.h` | -|Serbian (Latin) |`keymap_serbian_latin.h` | -|Slovak |`keymap_slovak.h` | -|Slovenian |`keymap_slovenian.h` | -|Spanish |`keymap_spanish.h` | -|Spanish (Dvorak) |`keymap_spanish_dvorak.h` | -|Swedish |`keymap_swedish.h` | -|Turkish (F) |`keymap_turkish_f.h` | -|Turkish (Q) |`keymap_turkish_q.h` | +By default, `SEND_STRING()` assumes a US ANSI keyboard layout is set. If you are using a different layout, you can include one of the Sendstring LUT headers below in your `keymap.c` to override the lookup tables used for mapping ASCII characters to keycodes. You do not need to include the corresponding `keymap_*.h` header, as it is implicit when including the Sendstring header. -There are also a few which are not quite language-specific, but useful if you are not using a QWERTY layout: +An important thing to note here is that `SEND_STRING()` only operates on [ASCII text](https://en.wikipedia.org/wiki/ASCII#Character_set). This means that you cannot pass it a string containing Unicode characters - this unfortunately includes accented characters that may be present in your desired layout. +Many layouts make certain characters, such as Grave or Tilde, available only as [dead keys](https://en.wikipedia.org/wiki/Dead_key), so you must add a space immediately after it in the string you want to send, to prevent it from potentially combining with the next character. +Certain other layouts have no Sendstring header as they do not use a Latin-derived alphabet (for example Greek and Russian), and thus there is no way to input most of the ASCII character set. -|Layout |Header | -|-------------------|------------------------| -|Colemak |`keymap_colemak.h` | -|Dvorak |`keymap_dvorak.h` | -|Dvorak (French) |`keymap_dvorak_fr.h` | -|Dvorak (Programmer)|`keymap_dvp.h` | -|Norman |`keymap_norman.h` | -|Plover* |`keymap_plover.h` | -|Plover (Dvorak)* |`keymap_plover_dvorak.h`| -|Steno* |`keymap_steno.h` | -|Workman |`keymap_workman.h` | -|Workman (ZXCVM) |`keymap_workman_zxcvm.h`| +## Header Files -## Sendstring Support +These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras). -By default, `SEND_STRING()` assumes a US ANSI keyboard layout is set. If you are using a different layout, you can also `#include "sendstring_*.h"` (as above) in your keymap to override the lookup tables used for mapping ASCII characters to keycodes. +|Layout |Keycodes Header |Sendstring LUT Header | +|---------------------------------|---------------------------------|------------------------------------| +|Canadian Multilingual (CSA) |`keymap_canadian_multilingual.h` |`sendstring_canadian_multilingual.h`| +|Croatian |`keymap_croatian.h` |`sendstring_croatian.h` | +|Czech |`keymap_czech.h` |`sendstring_czech.h` | +|Danish |`keymap_danish.h` |`sendstring_danish.h` | +|Dutch (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` | +|English (Ireland) |`keymap_irish.h` | | +|English (UK) |`keymap_uk.h` |`sendstring_uk.h` | +|English (US Extended) |`keymap_us_extended.h` | | +|English (US International) |`keymap_us_international.h` |`sendstring_us_international.h` | +|English (US International, Linux)|`keymap_us_international_linux.h`| | +|Estonian |`keymap_estonian.h` |`sendstring_estonian.h` | +|Finnish |`keymap_finnish.h` |`sendstring_finnish.h` | +|French |`keymap_french.h` |`sendstring_french.h` | +|French (AFNOR) |`keymap_french_afnor.h` |`sendstring_french_afnor.h` | +|French (BÉPO) |`keymap_bepo.h` |`sendstring_bepo.h` | +|French (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` | +|French (Switzerland) |`keymap_fr_ch.h` |`sendstring_fr_ch.h` | +|French (macOS, ISO) |`keymap_french_osx.h` |`sendstring_french_osx.h` | +|German |`keymap_german.h` |`sendstring_german.h` | +|German (Switzerland) |`keymap_german_ch.h` |`sendstring_german_ch.h` | +|German (macOS) |`keymap_german_osx.h` |`sendstring_german_osx.h` | +|German (Neo2) |`keymap_neo2.h` | | +|Greek |`keymap_greek.h` | | +|Hebrew |`keymap_hebrew.h` | | +|Hungarian |`keymap_hungarian.h` |`sendstring_hungarian.h` | +|Icelandic |`keymap_icelandic.h` |`sendstring_icelandic.h` | +|Italian |`keymap_italian.h` |`sendstring_italian.h` | +|Italian (macOS, ANSI) |`keymap_italian_osx_ansi.h` |`sendstring_italian_osx_ansi.h` | +|Italian (macOS, ISO) |`keymap_italian_osx_iso.h` |`sendstring_italian_osx_iso.h` | +|Japanese |`keymap_jp.h` |`sendstring_jis.h` | +|Korean |`keymap_korean.h` | | +|Latvian |`keymap_latvian.h` |`sendstring_latvian.h` | +|Lithuanian (ĄŽERTY) |`keymap_lithuanian_azerty.h` |`sendstring_lithuanian_azerty.h` | +|Lithuanian (QWERTY) |`keymap_lithuanian_qwerty.h` |`sendstring_lithuanian_qwerty.h` | +|Norwegian |`keymap_norwegian.h` |`sendstring_norwegian.h` | +|Polish |`keymap_polish.h` | | +|Portuguese |`keymap_portuguese.h` |`sendstring_portuguese.h` | +|Portuguese (macOS, ISO) |`keymap_portuguese_osx_iso.h` |`sendstring_portuguese_osx_iso.h` | +|Portuguese (Brazil) |`keymap_br_abnt2.h` |`sendstring_br_abnt2.h` | +|Romanian |`keymap_romanian.h` |`sendstring_romanian.h` | +|Russian |`keymap_russian.h` | | +|Serbian |`keymap_serbian.h` | | +|Serbian (Latin) |`keymap_serbian_latin.h` |`sendstring_serbian_latin.h` | +|Slovak |`keymap_slovak.h` |`sendstring_slovak.h` | +|Slovenian |`keymap_slovenian.h` |`sendstring_slovenian.h` | +|Spanish |`keymap_spanish.h` |`sendstring_spanish.h` | +|Spanish (Dvorak) |`keymap_spanish_dvorak.h` |`sendstring_spanish_dvorak.h` | +|Swedish |`keymap_swedish.h` |`sendstring_swedish.h` | +|Swedish (macOS, ANSI) |`keymap_swedish_osx_ansi.h` | | +|Swedish (macOS, ISO) |`keymap_swedish_osx_iso.h` | | +|Swedish Pro (macOS, ANSI) |`keymap_swedish_pro_osx_ansi.h` | | +|Swedish Pro (macOS, ISO) |`keymap_swedish_pro_osx_iso.h` | | +|Turkish (F) |`keymap_turkish_f.h` |`sendstring_turkish_f.h` | +|Turkish (Q) |`keymap_turkish_q.h` |`sendstring_turkish_q.h` | -An important thing to note here is that `SEND_STRING()` only operates on [ASCII text](https://en.wikipedia.org/wiki/ASCII#Character_set). This means that you cannot pass it a string containing Unicode characters - this unfortunately includes accented characters that may be present in your desired layout. -Many layouts make certain characters, such as Grave or Tilde, available only as [dead keys](https://en.wikipedia.org/wiki/Dead_key), so you must add a space immediately after it in the string you want to send, to prevent it from potentially combining with the next character. -Certain other layouts have no Sendstring header as they do not use a Latin-derived alphabet (for example Greek and Russian), and thus there is no way to input most of the ASCII character set. These are marked above with a `*`. +There are also a few which are not quite language-specific, but useful if you are not using a QWERTY layout: + +|Layout |Keycodes Header |Sendstring LUT Header | +|-------------------|------------------------|----------------------------| +|Colemak |`keymap_colemak.h` |`sendstring_colemak.h` | +|Dvorak |`keymap_dvorak.h` |`sendstring_dvorak.h` | +|Dvorak (French) |`keymap_dvorak_fr.h` |`sendstring_dvorak_fr.h` | +|Dvorak (Programmer)|`keymap_dvp.h` |`sendstring_dvp.h` | +|Norman |`keymap_norman.h` |`sendstring_norman.h` | +|Plover |`keymap_plover.h` | | +|Plover (Dvorak) |`keymap_plover_dvorak.h`| | +|Steno |`keymap_steno.h` | | +|Workman |`keymap_workman.h` |`sendstring_workman.h` | +|Workman (ZXCVM) |`keymap_workman_zxcvm.h`|`sendstring_workman_zxcvm.h`| From 1e4f0d9dcf7fdcfce701e0b31dc3a9dfbda01fbf Mon Sep 17 00:00:00 2001 From: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Sat, 14 Aug 2021 22:58:44 +0800 Subject: [PATCH 261/328] [Keyboard] add Stealth macropad (#13986) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/ocean/stealth/config.h | 51 +++++++++++++++++++ keyboards/ocean/stealth/info.json | 12 +++++ .../ocean/stealth/keymaps/default/keymap.c | 33 ++++++++++++ keyboards/ocean/stealth/keymaps/via/keymap.c | 33 ++++++++++++ keyboards/ocean/stealth/keymaps/via/rules.mk | 2 + keyboards/ocean/stealth/readme.md | 23 +++++++++ keyboards/ocean/stealth/rules.mk | 22 ++++++++ keyboards/ocean/stealth/stealth.c | 15 ++++++ keyboards/ocean/stealth/stealth.h | 25 +++++++++ 9 files changed, 216 insertions(+) create mode 100644 keyboards/ocean/stealth/config.h create mode 100644 keyboards/ocean/stealth/info.json create mode 100644 keyboards/ocean/stealth/keymaps/default/keymap.c create mode 100644 keyboards/ocean/stealth/keymaps/via/keymap.c create mode 100644 keyboards/ocean/stealth/keymaps/via/rules.mk create mode 100644 keyboards/ocean/stealth/readme.md create mode 100644 keyboards/ocean/stealth/rules.mk create mode 100644 keyboards/ocean/stealth/stealth.c create mode 100644 keyboards/ocean/stealth/stealth.h diff --git a/keyboards/ocean/stealth/config.h b/keyboards/ocean/stealth/config.h new file mode 100644 index 000000000000..ab1860332eff --- /dev/null +++ b/keyboards/ocean/stealth/config.h @@ -0,0 +1,51 @@ +/*Copyright 2021 Ocean + +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 VENDOR_ID 0x9624 +#define PRODUCT_ID 0x0010 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ocean +#define PRODUCT Stealth + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 3 + +/* + * 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) + * + */ +/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14*/ +#define MATRIX_ROW_PINS { D1 } +#define MATRIX_COL_PINS { D0, D4, C6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + diff --git a/keyboards/ocean/stealth/info.json b/keyboards/ocean/stealth/info.json new file mode 100644 index 000000000000..f84d962199d1 --- /dev/null +++ b/keyboards/ocean/stealth/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Stealth", + "url": "", + "maintainer": "Ocean", + "width": 2.25, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0, "w":2.25}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}] + } + } +} \ No newline at end of file diff --git a/keyboards/ocean/stealth/keymaps/default/keymap.c b/keyboards/ocean/stealth/keymaps/default/keymap.c new file mode 100644 index 000000000000..81f4332c2776 --- /dev/null +++ b/keyboards/ocean/stealth/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 Ocean + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_LSFT, KC_LCTL, KC_N + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/ocean/stealth/keymaps/via/keymap.c b/keyboards/ocean/stealth/keymaps/via/keymap.c new file mode 100644 index 000000000000..81f4332c2776 --- /dev/null +++ b/keyboards/ocean/stealth/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 Ocean + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_LSFT, KC_LCTL, KC_N + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/ocean/stealth/keymaps/via/rules.mk b/keyboards/ocean/stealth/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/ocean/stealth/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/ocean/stealth/readme.md b/keyboards/ocean/stealth/readme.md new file mode 100644 index 000000000000..1f49934110bd --- /dev/null +++ b/keyboards/ocean/stealth/readme.md @@ -0,0 +1,23 @@ +# Stealth Macropad + +![Stealth](https://i.imgur.com/Pw5yOdih.jpeg) + +ssSHhh... + +* Keyboard Maintainer: Ocean +* Hardware Supported: Stealth Macropad, Pro Micro +* Hardware Availability: [Local Marketplace](https://tokopedia.com/) + +Make example for this keyboard (after setting up your build environment): + + make ocean/stealth:default + +Flashing example for this keyboard: + + make ocean/stealth:default:flash + +## Bootloader + +To Enter the bootloader you can double click reset button on board when you flash the firmware + +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). diff --git a/keyboards/ocean/stealth/rules.mk b/keyboards/ocean/stealth/rules.mk new file mode 100644 index 000000000000..13ee210cb8ef --- /dev/null +++ b/keyboards/ocean/stealth/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/ocean/stealth/stealth.c b/keyboards/ocean/stealth/stealth.c new file mode 100644 index 000000000000..656701cfd202 --- /dev/null +++ b/keyboards/ocean/stealth/stealth.c @@ -0,0 +1,15 @@ +/* Copyright 2021 Ocean + * 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 "stealth.h" diff --git a/keyboards/ocean/stealth/stealth.h b/keyboards/ocean/stealth/stealth.h new file mode 100644 index 000000000000..b86cd2f05f73 --- /dev/null +++ b/keyboards/ocean/stealth/stealth.h @@ -0,0 +1,25 @@ +/* Copyright 2021 Ocean + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT(\ + K00, K01, K02 \ +) \ +{ \ + { K00, K01, K02 }, \ +} From 209fd753cbe9d4be7f46c137df54748f38de5250 Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Sat, 14 Aug 2021 23:07:55 +0800 Subject: [PATCH 262/328] [Keyboard] Add TKL-FF PCB (#14003) --- keyboards/ramonimbao/tkl_ff/config.h | 152 +++++++++ keyboards/ramonimbao/tkl_ff/info.json | 304 ++++++++++++++++++ .../tkl_ff/keymaps/default/keymap.c | 27 ++ .../ramonimbao/tkl_ff/keymaps/iso/keymap.c | 27 ++ .../ramonimbao/tkl_ff/keymaps/via/keymap.c | 51 +++ .../ramonimbao/tkl_ff/keymaps/via/rules.mk | 1 + keyboards/ramonimbao/tkl_ff/readme.md | 20 ++ keyboards/ramonimbao/tkl_ff/rules.mk | 22 ++ keyboards/ramonimbao/tkl_ff/tkl_ff.c | 17 + keyboards/ramonimbao/tkl_ff/tkl_ff.h | 93 ++++++ 10 files changed, 714 insertions(+) create mode 100644 keyboards/ramonimbao/tkl_ff/config.h create mode 100644 keyboards/ramonimbao/tkl_ff/info.json create mode 100644 keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c create mode 100644 keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c create mode 100644 keyboards/ramonimbao/tkl_ff/keymaps/via/keymap.c create mode 100644 keyboards/ramonimbao/tkl_ff/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/tkl_ff/readme.md create mode 100644 keyboards/ramonimbao/tkl_ff/rules.mk create mode 100644 keyboards/ramonimbao/tkl_ff/tkl_ff.c create mode 100644 keyboards/ramonimbao/tkl_ff/tkl_ff.h diff --git a/keyboards/ramonimbao/tkl_ff/config.h b/keyboards/ramonimbao/tkl_ff/config.h new file mode 100644 index 000000000000..ec73601f84c9 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/config.h @@ -0,0 +1,152 @@ +/* +Copyright 2021 Ramon Imbao + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xB16B +#define PRODUCT_ID 0x00FF +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ramon Imbao +#define PRODUCT TKL FF + +/* 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 } +#define UNUSED_PINS + +/* 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/ramonimbao/tkl_ff/info.json b/keyboards/ramonimbao/tkl_ff/info.json new file mode 100644 index 000000000000..a231cef86f34 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/info.json @@ -0,0 +1,304 @@ +{ + "keyboard_name": "TKL FF", + "url": "", + "maintainer": "Ramon Imbao", + "width": 18.25, + "height": 6.25, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c b/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c new file mode 100644 index 000000000000..1d8b938fd9d3 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2021 Ramon Imbao + * + * 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_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c b/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c new file mode 100644 index 000000000000..2729e390dae5 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2021 Ramon Imbao + * + * 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_iso( + 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_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/ramonimbao/tkl_ff/keymaps/via/keymap.c b/keyboards/ramonimbao/tkl_ff/keymaps/via/keymap.c new file mode 100644 index 000000000000..d46f3aade641 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ramonimbao/tkl_ff/keymaps/via/rules.mk b/keyboards/ramonimbao/tkl_ff/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ramonimbao/tkl_ff/readme.md b/keyboards/ramonimbao/tkl_ff/readme.md new file mode 100644 index 000000000000..06a64210ba46 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/readme.md @@ -0,0 +1,20 @@ +# TKL-FF + +![TKL-FF](https://i.imgur.com/GJCo3F5l.png) + +A TKL PCB made for the Geonworks Frog keyboard that supports both F12 and F13. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make ramonimbao/tkl_ff:default + +To get to the bootloader, simply press the reset button located at the back of the PCB. You can then flash new firmware onto it. + +Flashing example for this keyboard: + + make ramonimbao/tkl_ff: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). diff --git a/keyboards/ramonimbao/tkl_ff/rules.mk b/keyboards/ramonimbao/tkl_ff/rules.mk new file mode 100644 index 000000000000..5c0d8f307c54 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/ramonimbao/tkl_ff/tkl_ff.c b/keyboards/ramonimbao/tkl_ff/tkl_ff.c new file mode 100644 index 000000000000..4a4b7c204ab3 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/tkl_ff.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Ramon Imbao + * + * 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 "tkl_ff.h" diff --git a/keyboards/ramonimbao/tkl_ff/tkl_ff.h b/keyboards/ramonimbao/tkl_ff/tkl_ff.h new file mode 100644 index 000000000000..2fc2a9894877 --- /dev/null +++ b/keyboards/ramonimbao/tkl_ff/tkl_ff.h @@ -0,0 +1,93 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define ___ KC_NO + +// ANSI layout +// Full backspace +// Full right shift +// Full left shift +// 6.25u bottom row +#define LAYOUT_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___, ___, ___, ___ }, \ + { k40, ___, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, ___, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// ISO layout +// Full backspace +// Full right shift +// Split left shift +// 6.25u bottom row +#define LAYOUT_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k2d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, ___, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// Layout for VIA +// Split backspace +// Split left shift +// Split right shift +// 6.25u bottom row +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k3d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g } \ +} From b1d8efeb596cfe088d25948484526e3cf5e6f360 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 15 Aug 2021 15:18:41 +1000 Subject: [PATCH 263/328] LFKeyboards: Replace `KC_FNx` with `F(x)` (#13999) --- .../lfkeyboards/lfk65_hs/keymaps/default/keymap.c | 4 ++-- .../lfkeyboards/lfk78/keymaps/ca178858/keymap.c | 10 +++++----- .../lfkeyboards/lfk87/keymaps/ca178858/keymap.c | 14 +++++++------- .../lfkeyboards/lfk87/keymaps/default/keymap.c | 12 ++++++------ keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c | 12 ++++++------ keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c | 8 ++++---- .../lfkeyboards/mini1800/keymaps/ca178858/keymap.c | 10 +++++----- .../lfkeyboards/mini1800/keymaps/default/keymap.c | 10 +++++----- .../lfkeyboards/smk65/keymaps/default/keymap.c | 4 ++-- keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c | 4 ++-- 10 files changed, 44 insertions(+), 44 deletions(-) diff --git a/keyboards/lfkeyboards/lfk65_hs/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfk65_hs/keymaps/default/keymap.c index 87c9358624d2..02f2f98a950b 100644 --- a/keyboards/lfkeyboards/lfk65_hs/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/lfk65_hs/keymaps/default/keymap.c @@ -48,8 +48,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ 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_F13, KC_F14, MU_MOD, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RGB_TOG, - AU_TOG, KC_FN1,KC_FN3, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RESET, RGB_MOD, - KC_FN5, KC_FN2,KC_FN4, KC_TR, KC_TR, KC_TR, KC_TR, MU_TOG, RGB_VAD, RGB_VAI, KC_TR, KC_TR, RGB_HUI, KC_TR, + AU_TOG, F(1),F(3), KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RESET, RGB_MOD, + F(5), F(2),F(4), KC_TR, KC_TR, KC_TR, KC_TR, MU_TOG, RGB_VAD, RGB_VAI, KC_TR, KC_TR, RGB_HUI, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RGB_SAD, RGB_HUD, RGB_SAI), }; diff --git a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c index 4e5e84722087..9e79a7355509 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c +++ b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [CS_GO] = LAYOUT_split_rshift( - _______, _______, KC_GESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_FN0, _______, \ + _______, _______, KC_GESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, F(0), _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -99,11 +99,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `---------' `------------------------------------------------------' `--------------' */ [SETTINGS] = LAYOUT_split_rshift( - XXXXXXX, XXXXXXX, KC_FN0, KC_FN3, KC_FN4, KC_FN5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, \ + XXXXXXX, XXXXXXX, F(0), F(3), F(4), F(5), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, \ XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_VAD, \ - XXXXXXX, XXXXXXX, KC_FN0, KC_FN6, KC_FN8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ - XXXXXXX, XXXXXXX, KC_FN10, KC_FN7, KC_FN9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN0, XXXXXXX, RGB_HUI, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN12, XXXXXXX, XXXXXXX, KC_FN0, RGB_SAD, RGB_HUD, RGB_SAI \ + XXXXXXX, XXXXXXX, F(0), F(6), F(8), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ + XXXXXXX, XXXXXXX, F(10), F(7), F(9), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, F(0), XXXXXXX, RGB_HUI, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, F(12), XXXXXXX, XXXXXXX, F(0), RGB_SAD, RGB_HUD, RGB_SAI \ ), }; diff --git a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c index 7f5ae4a721b6..c6799ea532e0 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [CS_GO] = LAYOUT_tkl_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_FN0, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, F(0), _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -148,12 +148,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `------------------------------------------------------' `--------------' */ [SETTINGS] = LAYOUT_tkl_ansi( - KC_FN13, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_FN0, KC_FN3, KC_FN4, KC_FN5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, \ - MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN2, RGB_MOD, RGB_VAD, XXXXXXX, \ - AU_TOG, KC_FN6, KC_FN8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ - KC_FN10, KC_FN7, KC_FN9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN0, RGB_HUI, \ - XXXXXXX, XXXXXXX, XXXXXXX, KC_FN12, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_HUD, RGB_SAI \ + F(13), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, XXXXXXX, XXXXXXX, XXXXXXX, \ + F(0), F(3), F(4), F(5), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, \ + MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, F(2), RGB_MOD, RGB_VAD, XXXXXXX, \ + AU_TOG, F(6), F(8), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ + F(10), F(7), F(9), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, F(0), RGB_HUI, \ + XXXXXXX, XXXXXXX, XXXXXXX, F(12), XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_HUD, RGB_SAI \ ), }; diff --git a/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c index f35826880ba0..8988870dbbfd 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c @@ -82,12 +82,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `------------------------------------------------------------------------------' */ [SETTINGS] = LAYOUT_tkl_ansi( - KC_FN0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_FN0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, \ - MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN2, RGB_MOD, RGB_VAD, XXXXXXX, \ - AU_TOG, KC_FN1, KC_FN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ - KC_FN5, KC_FN2, KC_FN4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \ - XXXXXXX, XXXXXXX, XXXXXXX, KC_FN12, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_HUD, RGB_SAI \ + F(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, XXXXXXX, XXXXXXX, XXXXXXX, \ + F(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, \ + MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, F(2), RGB_MOD, RGB_VAD, XXXXXXX, \ + AU_TOG, F(1), F(3), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ + F(5), F(2), F(4), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \ + XXXXXXX, XXXXXXX, XXXXXXX, F(12), XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_HUD, RGB_SAI \ ), }; diff --git a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c index 5c9dfb522a2a..64f4acea809b 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c @@ -82,12 +82,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------' */ [SETTINGS] = LAYOUT_tkl_ansi( - KC_FN0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_FN0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, \ - MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN2, RGB_MOD, RGB_VAD, XXXXXXX, \ - AU_TOG, KC_F1, KC_FN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ - KC_FN5, KC_FN2, KC_FN4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \ - XXXXXXX, XXXXXXX, XXXXXXX, KC_FN12, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_HUD, RGB_SAI \ + F(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, XXXXXXX, XXXXXXX, XXXXXXX, \ + F(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, \ + MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, F(2), RGB_MOD, RGB_VAD, XXXXXXX, \ + AU_TOG, KC_F1, F(3), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ + F(5), F(2), F(4), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \ + XXXXXXX, XXXXXXX, XXXXXXX, F(12), XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_HUD, RGB_SAI \ ), }; diff --git a/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c index b86c99a41e1f..54ef1aadb613 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c @@ -83,11 +83,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [SETTINGS] = LAYOUT_tkl_iso( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_FN0, KC_FN3, KC_FN4, KC_FN5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, \ + F(0), F(3), F(4), F(5), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, \ MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_VAD, XXXXXXX, \ - AU_TOG, KC_FN3, KC_FN5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ - KC_FN7, XXXXXXX, KC_FN4, KC_FN6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN0, RGB_HUI, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN0, RGB_SAD, RGB_HUD, RGB_SAI \ + AU_TOG, F(3), F(5), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, \ + F(7), XXXXXXX, F(4), F(6), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, F(0), RGB_HUI, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, F(0), RGB_SAD, RGB_HUD, RGB_SAI \ ), }; diff --git a/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c index 479862fe7c4a..2a16bf4ccf65 100644 --- a/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c +++ b/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c @@ -86,11 +86,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------' */ [SETTINGS] = LAYOUT( - KC_FN0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, XXXXXXX, \ - MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN2, RGB_MOD, RGB_VAD, XXXXXXX, XXXXXXX, \ - AU_TOG, KC_F1, KC_FN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_FN5, KC_FN2, KC_FN4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, KC_FN12, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, RGB_HUD, RGB_SAI, XXXXXXX, XXXXXXX \ + F(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, XXXXXXX, \ + MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, F(2), RGB_MOD, RGB_VAD, XXXXXXX, XXXXXXX, \ + AU_TOG, KC_F1, F(3), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + F(5), F(2), F(4), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, F(12), XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, RGB_HUD, RGB_SAI, XXXXXXX, XXXXXXX \ ), }; diff --git a/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c b/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c index 303fa9bb4c64..ba3d95be2b6a 100644 --- a/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c @@ -83,11 +83,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------' */ [SETTINGS] = LAYOUT( - KC_FN0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, XXXXXXX, \ - MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_FN2, RGB_MOD, RGB_VAD, XXXXXXX, XXXXXXX, \ - AU_TOG, KC_FN1, KC_FN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_FN5, KC_FN2, KC_FN4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, KC_FN12, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, RGB_HUD, RGB_SAI, XXXXXXX, XXXXXXX \ + F(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, XXXXXXX, XXXXXXX, \ + MU_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, F(2), RGB_MOD, RGB_VAD, XXXXXXX, XXXXXXX, \ + AU_TOG, F(1), F(3), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + F(5), F(2), F(4), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, F(12), XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, RGB_HUD, RGB_SAI, XXXXXXX, XXXXXXX \ ), }; diff --git a/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c b/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c index 996bee5f7ad1..1470f95022f7 100644 --- a/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c @@ -58,8 +58,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_65_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, MU_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, - AU_TOG, KC_FN1, KC_FN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MOD, - KC_FN5, KC_FN2, KC_FN4, _______, _______, _______, _______, MU_TOG, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______, + AU_TOG, F(1), F(3), _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MOD, + F(5), F(2), F(4), _______, _______, _______, _______, MU_TOG, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI ) }; diff --git a/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c b/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c index c93abfd34c35..3a1701ce8629 100644 --- a/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c +++ b/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c @@ -58,8 +58,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_65_iso( 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_F13, KC_F14, MU_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, - AU_TOG, KC_FN1, KC_FN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MOD, - KC_FN5, _______, KC_FN2, KC_FN4, _______, _______, _______, _______, MU_TOG, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______, + AU_TOG, F(1), F(3), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MOD, + F(5), _______, F(2), F(4), _______, _______, _______, _______, MU_TOG, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI ), }; From 4c93c350a6f399e261a1d2ada2bfe97a838d7dcb Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 15 Aug 2021 15:19:01 +1000 Subject: [PATCH 264/328] AL1 refactor (#13679) --- keyboards/al1/al1.c | 1 + keyboards/al1/al1.h | 58 +++-- keyboards/al1/config.h | 112 ++-------- keyboards/al1/info.json | 221 +++++++++++++++++-- keyboards/al1/keymaps/default/keymap.c | 45 ++-- keyboards/al1/keymaps/default/readme.md | 1 - keyboards/al1/keymaps/splitbs/keymap.c | 59 ++--- keyboards/al1/matrix.c | 275 +++++++----------------- keyboards/al1/readme.md | 11 +- keyboards/al1/rules.mk | 22 +- 10 files changed, 391 insertions(+), 414 deletions(-) delete mode 100644 keyboards/al1/keymaps/default/readme.md diff --git a/keyboards/al1/al1.c b/keyboards/al1/al1.c index 460a7620cfa7..a7d3980ece8d 100644 --- a/keyboards/al1/al1.c +++ b/keyboards/al1/al1.c @@ -13,4 +13,5 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #include "al1.h" diff --git a/keyboards/al1/al1.h b/keyboards/al1/al1.h index c313a898d228..6b585cc18a3c 100644 --- a/keyboards/al1/al1.h +++ b/keyboards/al1/al1.h @@ -13,41 +13,39 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef AL1_H -#define AL1_H + +#pragma once #include "quantum.h" +#define XXX KC_NO + #define LAYOUT( \ - K500, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K415, K414,\ - K501, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K215, K413,\ - K502, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ - K503, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K412,\ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 \ -) \ -{ \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015}, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115}, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215}, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315}, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415}, \ - { K500, K501, K502, K503, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ + k50, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k4F, k4E, \ + k51, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k2F, k4D, \ + k52, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \ + k53, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k4C, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \ + { k50, k51, k52, k53, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ } #define LAYOUT_split_bs( \ - K500, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K512, K012, K013, K014, K015, K415, K414, \ - K501, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K215, K413,\ - K502, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ - K503, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K412,\ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 \ -) \ -{ \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015}, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115}, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215}, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315}, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415}, \ - { K500, K501, K502, K503, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K512, KC_NO, KC_NO, KC_NO} \ + k50, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k5C, k0C, k0D, k0E, k0F, k4F, k4E, \ + k51, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k2F, k4D, \ + k52, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \ + k53, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k4C, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \ + { k50, k51, k52, k53, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, k5C, XXX, XXX, XXX } \ } - -#endif diff --git a/keyboards/al1/config.h b/keyboards/al1/config.h index 6f6157c2d01d..b003a9cd6c25 100644 --- a/keyboards/al1/config.h +++ b/keyboards/al1/config.h @@ -15,62 +15,42 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6050 -#define DEVICE_VER 0x0104 -#define MANUFACTURER Alsoran -#define PRODUCT AL1 +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6050 +#define DEVICE_VER 0x0104 +#define MANUFACTURER Alsoran +#define PRODUCT AL1 /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 20 -/* - * 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) - * -*/ - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW - #define LED_NUM_LOCK_PIN D0 #define LED_CAPS_LOCK_PIN B7 #define LED_SCROLL_LOCK_PIN D1 #define LED_PIN_ON_STATE 0 #define BACKLIGHT_PIN B6 -#define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING /* 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 - -/* number of backlight levels */ - /* 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 userful for the Windows task manager shortcut (ctrl+shift+esc). + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). */ -// #define GRAVE_ESC_CTRL_OVERRIDE +//#define GRAVE_ESC_CTRL_OVERRIDE /* * Force NKRO @@ -93,54 +73,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. @@ -156,27 +88,7 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -/* - * MIDI options - */ - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -//#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 1 -#endif +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/al1/info.json b/keyboards/al1/info.json index f5ab643997a7..4cb5bba7fae0 100644 --- a/keyboards/al1/info.json +++ b/keyboards/al1/info.json @@ -1,15 +1,212 @@ { - "keyboard_name": "AL1", - "url": "", - "maintainer": "qmk", - "width": 20.5, - "height": 5.25, - "layouts": { - "LAYOUT": { - "layout": [{"label":"~", "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}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Num Lock", "x":16.5, "y":0}, {"label":"/", "x":17.5, "y":0}, {"label":"*", "x":18.5, "y":0}, {"label":"-", "x":19.5, "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":"Delete", "x":15.25, "y":1}, {"label":"7", "x":16.5, "y":1}, {"label":"8", "x":17.5, "y":1}, {"label":"9", "x":18.5, "y":1}, {"label":"+", "x":19.5, "y":1, "h":2}, {"label":"Caps Lock", "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":"4", "x":16.5, "y":2}, {"label":"5", "x":17.5, "y":2}, {"label":"6", "x":18.5, "y":2}, {"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":"↑", "x":15.25, "y":3.25}, {"label":"1", "x":16.5, "y":3}, {"label":"2", "x":17.5, "y":3}, {"label":"3", "x":18.5, "y":3}, {"label":"Enter", "x":19.5, "y":3, "h":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":7}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":11.75, "y":4}, {"label":"Menu", "x":12.75, "y":4, "w":1.25}, {"label":"←", "x":14.25, "y":4.25}, {"label":"↓", "x":15.25, "y":4.25}, {"label":"→", "x":16.25, "y":4.25}, {"label":"0", "x":17.5, "y":4}, {"label":".", "x":18.5, "y":4}] - }, - "LAYOUT_split_bs": { - "layout": [{"label":"~", "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}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Num Lock", "x":16.5, "y":0}, {"label":"/", "x":17.5, "y":0}, {"label":"*", "x":18.5, "y":0}, {"label":"-", "x":19.5, "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":"Delete", "x":15.25, "y":1}, {"label":"7", "x":16.5, "y":1}, {"label":"8", "x":17.5, "y":1}, {"label":"9", "x":18.5, "y":1}, {"label":"+", "x":19.5, "y":1, "h":2}, {"label":"Caps Lock", "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":"4", "x":16.5, "y":2}, {"label":"5", "x":17.5, "y":2}, {"label":"6", "x":18.5, "y":2}, {"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":"↑", "x":15.25, "y":3.25}, {"label":"1", "x":16.5, "y":3}, {"label":"2", "x":17.5, "y":3}, {"label":"3", "x":18.5, "y":3}, {"label":"Enter", "x":19.5, "y":3, "h":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":7}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":11.75, "y":4}, {"label":"Menu", "x":12.75, "y":4, "w":1.25}, {"label":"←", "x":14.25, "y":4.25}, {"label":"↓", "x":15.25, "y":4.25}, {"label":"→", "x":16.25, "y":4.25}, {"label":"0", "x":17.5, "y":4}, {"label":".", "x":18.5, "y":4}] + "keyboard_name": "AL1", + "url": "", + "maintainer": "qmk", + "width": 20.5, + "height": 5.25, + "layouts": { + "LAYOUT": { + "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": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 15.25, "y": 0}, + + {"x": 16.5, "y": 0}, + {"x": 17.5, "y": 0}, + {"x": 18.5, "y": 0}, + {"x": 19.5, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 15.25, "y": 1}, + + {"x": 16.5, "y": 1}, + {"x": 17.5, "y": 1}, + {"x": 18.5, "y": 1}, + {"x": 19.5, "y": 1, "h": 2}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 16.5, "y": 2}, + {"x": 17.5, "y": 2}, + {"x": 18.5, "y": 2}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 15.25, "y": 3.25}, + + {"x": 16.5, "y": 3}, + {"x": 17.5, "y": 3}, + {"x": 18.5, "y": 3}, + {"x": 19.5, "y": 3, "h": 2}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4}, + {"x": 2.25, "y": 4, "w": 1.25}, + {"x": 3.5, "y": 4, "w": 7}, + {"x": 10.5, "y": 4, "w": 1.25}, + {"x": 11.75, "y": 4}, + {"x": 12.75, "y": 4, "w": 1.25}, + + {"x": 14.25, "y": 4.25}, + {"x": 15.25, "y": 4.25}, + {"x": 16.25, "y": 4.25}, + + {"x": 17.5, "y": 4}, + {"x": 18.5, "y": 4} + ] + }, + "LAYOUT_split_bs": { + "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": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 15.25, "y": 0}, + + {"x": 16.5, "y": 0}, + {"x": 17.5, "y": 0}, + {"x": 18.5, "y": 0}, + {"x": 19.5, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 15.25, "y": 1}, + + {"x": 16.5, "y": 1}, + {"x": 17.5, "y": 1}, + {"x": 18.5, "y": 1}, + {"x": 19.5, "y": 1, "h": 2}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 16.5, "y": 2}, + {"x": 17.5, "y": 2}, + {"x": 18.5, "y": 2}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 15.25, "y": 3.25}, + + {"x": 16.5, "y": 3}, + {"x": 17.5, "y": 3}, + {"x": 18.5, "y": 3}, + {"x": 19.5, "y": 3, "h": 2}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4}, + {"x": 2.25, "y": 4, "w": 1.25}, + {"x": 3.5, "y": 4, "w": 7}, + {"x": 10.5, "y": 4, "w": 1.25}, + {"x": 11.75, "y": 4}, + {"x": 12.75, "y": 4, "w": 1.25}, + + {"x": 14.25, "y": 4.25}, + {"x": 15.25, "y": 4.25}, + {"x": 16.25, "y": 4.25}, + + {"x": 17.5, "y": 4}, + {"x": 18.5, "y": 4} + ] + } } - } } diff --git a/keyboards/al1/keymaps/default/keymap.c b/keyboards/al1/keymaps/default/keymap.c index d571c05abb18..a3a9d63d3728 100644 --- a/keyboards/al1/keymaps/default/keymap.c +++ b/keyboards/al1/keymaps/default/keymap.c @@ -13,36 +13,23 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(\ - KC_ESC, KC_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_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT ), - - [1] = LAYOUT(\ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\ - KC_TAB, KC_Q, KC_W, KC_E, RESET, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_TRNS, KC_RGUI, KC_RCTRL, BL_TOGG, BL_DEC, BL_INC, KC_P0, KC_PDOT ), + LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______ + ) }; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/al1/keymaps/default/readme.md b/keyboards/al1/keymaps/default/readme.md deleted file mode 100644 index b89f4f674516..000000000000 --- a/keyboards/al1/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for al1 diff --git a/keyboards/al1/keymaps/splitbs/keymap.c b/keyboards/al1/keymaps/splitbs/keymap.c index 51f35d0cfb71..d896b10dbe40 100644 --- a/keyboards/al1/keymaps/splitbs/keymap.c +++ b/keyboards/al1/keymaps/splitbs/keymap.c @@ -1,32 +1,35 @@ +/* Copyright 2018 MechMerlin + * + * 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_split_bs(\ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRAVE, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT ), - [1] = LAYOUT_split_bs(\ - 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_GRAVE, KC_DELETE, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_TAB, KC_Q, KC_W, KC_E, RESET, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_TRNS, KC_RGUI, KC_RCTRL, BL_TOGG, BL_DEC, BL_INC, KC_P0, KC_PDOT ), + LAYOUT_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + LAYOUT_split_bs( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______ + ) }; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/al1/matrix.c b/keyboards/al1/matrix.c index f6e95108737c..1407cbc089ae 100644 --- a/keyboards/al1/matrix.c +++ b/keyboards/al1/matrix.c @@ -1,201 +1,92 @@ -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" #include "matrix.h" -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif -static uint8_t debouncing = DEBOUNCE; - -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static uint8_t read_rows(void); -static void init_rows(void); -static void unselect_cols(void); -static void select_col(uint8_t col); - -inline uint8_t matrix_rows(void) { - return MATRIX_ROWS; -} - -inline uint8_t matrix_cols(void) { - return MATRIX_COLS; -} - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -void matrix_init(void) { - // initialize row and col - unselect_cols(); - init_rows(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - matrix_init_quantum(); -} - -uint8_t matrix_scan(void) { - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - select_col(col); - _delay_us(3); - uint8_t rows = read_rows(); - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1< Date: Mon, 16 Aug 2021 02:41:02 +0000 Subject: [PATCH 265/328] Gorthage Truck Refactor (#14006) * info.json: apply human-friendly formatting * info.json: make key labels more friendly to `qmk info -l` * correct LAYOUT_3u key sequence * correct LAYOUT_7u key sequence * correct LAYOUT_10u key sequence * refactor default keymap - use QMK short-form keycodes - update grid alignment - use four-space indent - touch up with `qmk cformat` * refactor 10u keymap - use QMK short-form keycodes - add encoder_update_user() function - update grid alignment - use four-space indent * refactor 7u keymap - use QMK short-form keycodes - add encoder_update_user() function - update grid alignment - use four-space indent * refactor gorthage_truck.h - update grid alignments - use XXX for KC_NO - insert omitted KC_NO instances * correct keyboard metadata in info.json - use GitHub username for maintainer - correct keyboard dimensions * add encoder_update_kb() function to gorthage_truck.c Gives QMK Configurator compile jobs encoder functionality. * update maintainer field in info.json As requested by jpuerto96 (s8erdude). --- keyboards/gorthage_truck/gorthage_truck.c | 12 + keyboards/gorthage_truck/gorthage_truck.h | 44 ++-- keyboards/gorthage_truck/info.json | 212 ++++++++++++++++-- keyboards/gorthage_truck/keymaps/10u/keymap.c | 22 +- keyboards/gorthage_truck/keymaps/7u/keymap.c | 22 +- .../gorthage_truck/keymaps/default/keymap.c | 13 +- 6 files changed, 269 insertions(+), 56 deletions(-) diff --git a/keyboards/gorthage_truck/gorthage_truck.c b/keyboards/gorthage_truck/gorthage_truck.c index c6f75d72706c..27456669168d 100644 --- a/keyboards/gorthage_truck/gorthage_truck.c +++ b/keyboards/gorthage_truck/gorthage_truck.c @@ -15,3 +15,15 @@ */ #include "gorthage_truck.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(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/gorthage_truck/gorthage_truck.h b/keyboards/gorthage_truck/gorthage_truck.h index 9d9ddb4f077c..ed0ff9d22881 100644 --- a/keyboards/gorthage_truck/gorthage_truck.h +++ b/keyboards/gorthage_truck/gorthage_truck.h @@ -18,6 +18,8 @@ #include "quantum.h" +#define XXX KC_NO + /* This is a shortcut to help you visually see your layout. * * The first section contains all of the arguments representing the physical @@ -30,46 +32,46 @@ k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k45, k46, k47, k48, \ k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \ k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \ - k30, k31, k32, k34, k70, k71, k73, k74, k75, k76, k77, k78 \ + k30, k31, k32, k34, k70, k71, k73, k74, k75, k76, k77, k78 \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07 }, \ - { k10, k11, k12, k13, k14, k15, k16, k17 }, \ - { k20, k21, k22, k23, k24, k25, k26, k27 }, \ - { k30, k31, k32, KC_NO, k34, KC_NO, KC_NO, KC_NO }, \ + { k00, k01, k02, k03, k04, k05, k06, k07, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, XXX }, \ + { k30, k31, k32, XXX, k34, XXX, XXX, XXX, XXX }, \ { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ - { k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \ + { k50, k51, k52, k53, k54, XXX, k56, k57, k58 }, \ { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ - { k70, k71, KC_NO, k73, k74, k75, k76, k77, k78} \ + { k70, k71, XXX, k73, k74, k75, k76, k77, k78 } \ } #define LAYOUT_7u( \ k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k45, k46, k47, k48, \ k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \ k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \ - k30, k31, k32, k37, k73, k74, k75, k76, k77, k78 \ + k30, k31, k32, k37, k73, k74, k75, k76, k77, k78 \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07 }, \ - { k10, k11, k12, k13, k14, k15, k16, k17 }, \ - { k20, k21, k22, k23, k24, k25, k26, k27 }, \ - { k30, k31, k32, KC_NO, KC_NO, KC_NO, KC_NO, k37 }, \ + { k00, k01, k02, k03, k04, k05, k06, k07, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, XXX }, \ + { k30, k31, k32, XXX, XXX, XXX, XXX, k37, XXX }, \ { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ - { k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \ + { k50, k51, k52, k53, k54, XXX, k56, k57, k58 }, \ { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ - { KC_NO, KC_NO, KC_NO, k73, k74, k75, k76, k77, k78} \ + { XXX, XXX, XXX, k73, k74, k75, k76, k77, k78 } \ } #define LAYOUT_10u( \ k00, k01, k02, k03, k04, k05, k06, k07, k40, k41, k42, k43, k44, k45, k46, k47, k48, \ k10, k11, k12, k13, k14, k15, k16, k17, k50, k51, k52, k53, k54, k56, k57, k58, \ k20, k21, k22, k23, k24, k25, k26, k27, k60, k61, k62, k63, k64, k65, k66, k67, k68, \ - k30, k36, k73, k74, k75, k76, k77, k78 \ + k30, k36, k73, k74, k75, k76, k77, k78 \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07 }, \ - { k10, k11, k12, k13, k14, k15, k16, k17 }, \ - { k20, k21, k22, k23, k24, k25, k26, k27 }, \ - { k30, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k36, KC_NO }, \ + { k00, k01, k02, k03, k04, k05, k06, k07, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, XXX }, \ + { k30, XXX, XXX, XXX, XXX, XXX, k36, XXX, XXX }, \ { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ - { k50, k51, k52, k53, k54, KC_NO, k56, k57, k58 }, \ + { k50, k51, k52, k53, k54, XXX, k56, k57, k58 }, \ { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ - { KC_NO, KC_NO, KC_NO, k73, k74, k75, k76, k77, k78} \ + { XXX, XXX, XXX, k73, k74, k75, k76, k77, k78 } \ } diff --git a/keyboards/gorthage_truck/info.json b/keyboards/gorthage_truck/info.json index 840832b6d817..05f20e806683 100644 --- a/keyboards/gorthage_truck/info.json +++ b/keyboards/gorthage_truck/info.json @@ -1,35 +1,209 @@ { "keyboard_name": "gorthage_truck", "url": "https://github.com/jpuerto96", - "maintainer": "s8erdude", - "width": 17, - "height": 4, + "maintainer": "jpuerto96 (s8erdude)", + "width": 18, + "height": 4.5, "layouts": { "LAYOUT_3u": { "layout": [ - {"label": "KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, - {"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1}, - {"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2}, - {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, {"label":"KC_MPLY", "x":13.5, "y":0.5}, - {"label":"KC_LCTL", "x":0, "y":3, "w":1.25}, {"label":"KC_LALT", "x":1.25, "y":3, "w":1.25}, {"label":"KC_LGUI", "x":2.5, "y":3}, {"label":"KC_SPC", "x":3.5, "y":3, "w":3}, {"label":"KC_ENT", "x":6.5, "y":3, "w":3}, {"label":"KC_RGUI", "x":9.5, "y":3, "w":1.25}, {"label":"KC_RALT", "x":10.75, "y":3, "w":1.25} + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"[{", "x":11, "y":0}, + {"label":"]}", "x":12, "y":0}, + {"label":"Play", "x":13.5, "y":0.5}, + {"label":"7", "x":15, "y":0}, + {"label":"8", "x":16, "y":0}, + {"label":"9", "x":17, "y":0}, + + {"label":"Caps Lock", "x":0, "y":1}, + {"label":"A", "x":1, "y":1}, + {"label":"S", "x":2, "y":1}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1}, + {"label":"G", "x":5, "y":1}, + {"label":"H", "x":6, "y":1}, + {"label":"J", "x":7, "y":1}, + {"label":"K", "x":8, "y":1}, + {"label":"L", "x":9, "y":1}, + {"label":";:", "x":10, "y":1}, + {"label":"'\"", "x":11, "y":1}, + {"label":"\\|", "x":12, "y":1}, + {"label":"4", "x":15, "y":1}, + {"label":"5", "x":16, "y":1}, + {"label":"6", "x":17, "y":1}, + + {"label":"-_", "x":0, "y":2}, + {"label":"Z", "x":1, "y":2}, + {"label":"X", "x":2, "y":2}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2}, + {"label":"B", "x":5, "y":2}, + {"label":"N", "x":6, "y":2}, + {"label":"M", "x":7, "y":2}, + {"label":",<", "x":8, "y":2}, + {"label":".>", "x":9, "y":2}, + {"label":"/?", "x":10, "y":2}, + {"label":"Shift", "x":11, "y":2}, + {"label":"Backspace", "x":12, "y":2}, + {"label":"\u2191", "x":13.5, "y":2.5}, + {"label":"1", "x":15, "y":2}, + {"label":"2", "x":16, "y":2}, + {"label":"3", "x":17, "y":2}, + + {"label":"Ctrl", "x":0, "y":3, "w":1.25}, + {"label":"Alt", "x":1.25, "y":3, "w":1.25}, + {"label":"GUI", "x":2.5, "y":3}, + {"label":"Space", "x":3.5, "y":3, "w":3}, + {"label":"Enter", "x":6.5, "y":3, "w":3}, + {"label":"GUI", "x":9.5, "y":3, "w":1.25}, + {"label":"Alt", "x":10.75, "y":3, "w":1.25}, + {"label":"\u2190", "x":12.5, "y":3.5}, + {"label":"\u2193", "x":13.5, "y":3.5}, + {"label":"\u2192", "x":14.5, "y":3.5}, + {"label":"0", "x":16, "y":3}, + {"label":".", "x":17, "y":3} ] - }, + }, "LAYOUT_7u": { "layout": [ - {"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, - {"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1}, - {"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2}, - {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, {"label":"KC_MPLY", "x":13.5, "y":0.5}, - {"label":"KC_LCTL", "x":0, "y":3, "w":1.25}, {"label":"KC_LALT", "x":1.25, "y":3, "w":1.25}, {"label":"KC_LGUI", "x":2.5, "y":3, "w":1.25}, {"label":"KC_SPC", "x":3.75, "y":3, "w":7}, {"label":"KC_RGUI", "x":10.75, "y":3, "w":1.25} + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"[{", "x":11, "y":0}, + {"label":"]}", "x":12, "y":0}, + {"label":"Play", "x":13.5, "y":0.5}, + {"label":"7", "x":15, "y":0}, + {"label":"8", "x":16, "y":0}, + {"label":"9", "x":17, "y":0}, + + {"label":"Caps Lock", "x":0, "y":1}, + {"label":"A", "x":1, "y":1}, + {"label":"S", "x":2, "y":1}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1}, + {"label":"G", "x":5, "y":1}, + {"label":"H", "x":6, "y":1}, + {"label":"J", "x":7, "y":1}, + {"label":"K", "x":8, "y":1}, + {"label":"L", "x":9, "y":1}, + {"label":";:", "x":10, "y":1}, + {"label":"'\"", "x":11, "y":1}, + {"label":"\\|", "x":12, "y":1}, + {"label":"4", "x":15, "y":1}, + {"label":"5", "x":16, "y":1}, + {"label":"6", "x":17, "y":1}, + + {"label":"-_", "x":0, "y":2}, + {"label":"Z", "x":1, "y":2}, + {"label":"X", "x":2, "y":2}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2}, + {"label":"B", "x":5, "y":2}, + {"label":"N", "x":6, "y":2}, + {"label":"M", "x":7, "y":2}, + {"label":",<", "x":8, "y":2}, + {"label":".>", "x":9, "y":2}, + {"label":"/?", "x":10, "y":2}, + {"label":"Shift", "x":11, "y":2}, + {"label":"Backspace", "x":12, "y":2}, + {"label":"\u2191", "x":13.5, "y":2.5}, + {"label":"1", "x":15, "y":2}, + {"label":"2", "x":16, "y":2}, + {"label":"3", "x":17, "y":2}, + + {"label":"Ctrl", "x":0, "y":3, "w":1.25}, + {"label":"Alt", "x":1.25, "y":3, "w":1.25}, + {"label":"GUI", "x":2.5, "y":3, "w":1.25}, + {"label":"Space", "x":3.75, "y":3, "w":7}, + {"label":"GUI", "x":10.75, "y":3, "w":1.25}, + {"label":"\u2190", "x":12.5, "y":3.5}, + {"label":"\u2193", "x":13.5, "y":3.5}, + {"label":"\u2192", "x":14.5, "y":3.5}, + {"label":"0", "x":16, "y":3}, + {"label":".", "x":17, "y":3} ] }, "LAYOUT_10u": { "layout": [ - {"label":"KC_TAB", "x":0, "y":0}, {"label":"KC_Q", "x":1, "y":0}, {"label":"KC_W", "x":2, "y":0}, {"label":"KC_E", "x":3, "y":0}, {"label":"KC_R", "x":4, "y":0}, {"label":"KC_T", "x":5, "y":0}, {"label":"KC_Y", "x":6, "y":0}, {"label":"KC_U", "x":7, "y":0}, {"label":"KC_I", "x":8, "y":0}, {"label":"KC_O", "x":9, "y":0}, {"label":"KC_P", "x":10, "y":0}, {"label":"KC_LBRC", "x":11, "y":0}, {"label":"KC_RBRC", "x":12, "y":0}, {"label":"KC_7", "x":15, "y":0}, {"label":"KC_8", "x":16, "y":0}, {"label":"KC_9", "x":17, "y":0}, - {"label":"KC_CAPS", "x":0, "y":1}, {"label":"KC_A", "x":1, "y":1}, {"label":"KC_S", "x":2, "y":1}, {"label":"KC_D", "x":3, "y":1}, {"label":"KC_F", "x":4, "y":1}, {"label":"KC_G", "x":5, "y":1}, {"label":"KC_H", "x":6, "y":1}, {"label":"KC_J", "x":7, "y":1}, {"label":"KC_K", "x":8, "y":1}, {"label":"KC_L", "x":9, "y":1}, {"label":"KC_SCLN", "x":10, "y":1}, {"label":"KC_QUOT", "x":11, "y":1}, {"label":"KC_BSLS", "x":12, "y":1}, {"label":"KC_4", "x":15, "y":1}, {"label":"KC_5", "x":16, "y":1}, {"label":"KC_6", "x":17, "y":1}, - {"label":"KC_MINS", "x":0, "y":2}, {"label":"KC_Z", "x":1, "y":2}, {"label":"KC_X", "x":2, "y":2}, {"label":"KC_C", "x":3, "y":2}, {"label":"KC_V", "x":4, "y":2}, {"label":"KC_B", "x":5, "y":2}, {"label":"KC_N", "x":6, "y":2}, {"label":"KC_M", "x":7, "y":2}, {"label":"KC_COMM", "x":8, "y":2}, {"label":"KC_DOT", "x":9, "y":2}, {"label":"KC_SLSH", "x":10, "y":2}, {"label":"KC_RSFT", "x":11, "y":2}, {"label":"KC_BSPC", "x":12, "y":2}, {"label":"KC_1", "x":15, "y":2}, {"label":"KC_2", "x":16, "y":2}, {"label":"KC_3", "x":17, "y":2}, - {"label":"KC_UP", "x":13.5, "y":2.5}, {"label":"KC_0", "x":16, "y":3}, {"label":"KC_DOT", "x":17, "y":3}, {"label":"KC_LEFT", "x":12.5, "y":3.5}, {"label":"KC_DOWN", "x":13.5, "y":3.5}, {"label":"KC_RGHT", "x":14.5, "y":3.5}, {"label":"KC_MPLY", "x":13.5, "y":0.5}, - {"label":"KC_LCTL", "x":0, "y":3}, {"label":"KC_SPC", "x":1, "y":3, "w":10}, {"label":"KC_RGUI", "x":11, "y":3} + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"[{", "x":11, "y":0}, + {"label":"]}", "x":12, "y":0}, + {"label":"Play", "x":13.5, "y":0.5}, + {"label":"7", "x":15, "y":0}, + {"label":"8", "x":16, "y":0}, + {"label":"9", "x":17, "y":0}, + + {"label":"Caps Lock", "x":0, "y":1}, + {"label":"A", "x":1, "y":1}, + {"label":"S", "x":2, "y":1}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1}, + {"label":"G", "x":5, "y":1}, + {"label":"H", "x":6, "y":1}, + {"label":"J", "x":7, "y":1}, + {"label":"K", "x":8, "y":1}, + {"label":"L", "x":9, "y":1}, + {"label":";:", "x":10, "y":1}, + {"label":"'\"", "x":11, "y":1}, + {"label":"\\|", "x":12, "y":1}, + {"label":"4", "x":15, "y":1}, + {"label":"5", "x":16, "y":1}, + {"label":"6", "x":17, "y":1}, + + {"label":"-_", "x":0, "y":2}, + {"label":"Z", "x":1, "y":2}, + {"label":"X", "x":2, "y":2}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2}, + {"label":"B", "x":5, "y":2}, + {"label":"N", "x":6, "y":2}, + {"label":"M", "x":7, "y":2}, + {"label":",<", "x":8, "y":2}, + {"label":".>", "x":9, "y":2}, + {"label":"/?", "x":10, "y":2}, + {"label":"Shift", "x":11, "y":2}, + {"label":"Backspace", "x":12, "y":2}, + {"label":"\u2191", "x":13.5, "y":2.5}, + {"label":"1", "x":15, "y":2}, + {"label":"2", "x":16, "y":2}, + {"label":"3", "x":17, "y":2}, + + {"label":"Ctrl", "x":0, "y":3}, + {"label":"Space", "x":1, "y":3, "w":10}, + {"label":"GUI", "x":11, "y":3}, + {"label":"\u2190", "x":12.5, "y":3.5}, + {"label":"\u2193", "x":13.5, "y":3.5}, + {"label":"\u2192", "x":14.5, "y":3.5}, + {"label":"0", "x":16, "y":3}, + {"label":".", "x":17, "y":3} ] } } diff --git a/keyboards/gorthage_truck/keymaps/10u/keymap.c b/keyboards/gorthage_truck/keymaps/10u/keymap.c index 89e628defa36..f289c3c8c859 100644 --- a/keyboards/gorthage_truck/keymaps/10u/keymap.c +++ b/keyboards/gorthage_truck/keymaps/10u/keymap.c @@ -23,8 +23,20 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT_10u( -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_MINUS, KC_MPLY, KC_1, KC_2, KC_3, -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_EQUAL, KC_4, KC_5, KC_6, -KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9, -KC_LGUI, KC_RSFT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0 -)}; + 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_MINS, KC_MPLY, KC_1, KC_2, KC_3, + 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_EQL, KC_4, KC_5, KC_6, + KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRV, KC_UP, KC_7, KC_8, KC_9, + KC_LGUI, KC_RSFT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOT, KC_0 + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/gorthage_truck/keymaps/7u/keymap.c b/keyboards/gorthage_truck/keymaps/7u/keymap.c index 224580c30b94..679e6eeb64f2 100644 --- a/keyboards/gorthage_truck/keymaps/7u/keymap.c +++ b/keyboards/gorthage_truck/keymaps/7u/keymap.c @@ -23,8 +23,20 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT_7u( -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_MINUS, KC_MPLY, KC_1, KC_2, KC_3, -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_EQUAL, KC_4, KC_5, KC_6, -KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9, -KC_LGUI, KC_LCTL, KC_LSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0 -)}; + 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_MINS, KC_MPLY, KC_1, KC_2, KC_3, + 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_EQL, KC_4, KC_5, KC_6, + KC_LCAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRV, KC_UP, KC_7, KC_8, KC_9, + KC_LGUI, KC_LCTL, KC_LSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOT, KC_0 + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/gorthage_truck/keymaps/default/keymap.c b/keyboards/gorthage_truck/keymaps/default/keymap.c index c1cb087b8612..e875883250fa 100644 --- a/keyboards/gorthage_truck/keymaps/default/keymap.c +++ b/keyboards/gorthage_truck/keymaps/default/keymap.c @@ -23,15 +23,16 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT_3u( -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_MINUS, KC_MPLY, KC_1, KC_2, KC_3, -KC_SLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_EQUAL, KC_4, KC_5, KC_6, -KC_NLCK, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRAVE, KC_UP, KC_7, KC_8, KC_9, -KC_CLCK, KC_LCTL, KC_LSFT, KC_SPC, KC_RSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DOT, KC_0 -)}; + 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_MINS, KC_MPLY, KC_1, KC_2, KC_3, + KC_SLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_EQL, KC_4, KC_5, KC_6, + KC_NLCK, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, KC_SLSH, KC_GRV, KC_UP, KC_7, KC_8, KC_9, + KC_CLCK, KC_LCTL, KC_LSFT, KC_SPC, KC_RSFT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOT, KC_0 + ) +}; bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ -if (clockwise) { + if (clockwise) { tap_code(KC_VOLU); } else { tap_code(KC_VOLD); From b512afc3471411ebdaef0f24614ef501b31ddb89 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 16 Aug 2021 06:44:03 +0000 Subject: [PATCH 266/328] Fix line endings in keyboards/absinthe/keymaps/via/rules.mk (#14028) --- keyboards/absinthe/keymaps/via/rules.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/absinthe/keymaps/via/rules.mk b/keyboards/absinthe/keymaps/via/rules.mk index ca0f13221f4a..eb5b445ddf1a 100644 --- a/keyboards/absinthe/keymaps/via/rules.mk +++ b/keyboards/absinthe/keymaps/via/rules.mk @@ -1,2 +1,2 @@ -VIA_ENABLE = yes -MOUSEKEY_ENABLE = yes \ No newline at end of file +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes From 0c6155ec42dd7ae00d2229962fe9dfc8adab7a4d Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 16 Aug 2021 10:17:25 +0000 Subject: [PATCH 267/328] Pimentoso TouhouPad Layout Macro refactor (#14010) * physically arrange layout macro, phase 1 Break the keymap up into rows. * physically arrange layout macro, phase 2 Moves the Escape and Enter keys to the top row. * refactor default keymap - use QMK short-form keycodes - grid align keycodes * physically arrange layout macro, phase 3 Moves the X key (Bomb) to the bottom row. * physically arrange layout macro, phase 4 Physically arrange the Escape and Enter keys. * physically arrange layout macro, phase 5 Physically arrange the arrow keys. * physically arrange layout macro, phase 6 Physically align the X (Bomb) key. * align escape characters in layout macro * info.json: apply human-friendly formatting --- keyboards/pimentoso/touhoupad/info.json | 16 +++++++++++++++- .../pimentoso/touhoupad/keymaps/default/keymap.c | 12 ++++++++++-- keyboards/pimentoso/touhoupad/touhoupad.h | 9 +++++++-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/keyboards/pimentoso/touhoupad/info.json b/keyboards/pimentoso/touhoupad/info.json index 71698cee9e6e..1299dd467313 100644 --- a/keyboards/pimentoso/touhoupad/info.json +++ b/keyboards/pimentoso/touhoupad/info.json @@ -6,7 +6,21 @@ "height": 4, "layouts": { "LAYOUT": { - "layout": [{"label":"esc", "x":5.25, "y":0}, {"label":"enter", "x":6.25, "y":0}, {"label":"slow", "x":0, "y":1}, {"label":"fire", "x":1, "y":1}, {"label":"rapid", "x":2, "y":1}, {"label":"up", "x":6.25, "y":1.75}, {"label":"left", "x":5.25, "y":2.75}, {"label":"down", "x":6.25, "y":2.75}, {"label":"right", "x":7.25, "y":2.75}, {"label":"bomb", "x":3.25, "y":3}] + "layout": [ + {"label":"esc", "x":5.25, "y":0}, + {"label":"enter", "x":6.25, "y":0}, + + {"label":"slow", "x":0, "y":1}, + {"label":"fire", "x":1, "y":1}, + {"label":"rapid", "x":2, "y":1}, + + {"label":"up", "x":6.25, "y":1.75}, + {"label":"left", "x":5.25, "y":2.75}, + {"label":"down", "x":6.25, "y":2.75}, + {"label":"right", "x":7.25, "y":2.75}, + + {"label":"bomb", "x":3.25, "y":3} + ] } } } diff --git a/keyboards/pimentoso/touhoupad/keymaps/default/keymap.c b/keyboards/pimentoso/touhoupad/keymaps/default/keymap.c index 0d1005511057..f47380e4dc6a 100644 --- a/keyboards/pimentoso/touhoupad/keymaps/default/keymap.c +++ b/keyboards/pimentoso/touhoupad/keymaps/default/keymap.c @@ -17,9 +17,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( /* Base */ - KC_LSFT, KC_Z, KC_C, KC_X, KC_LEFT, KC_DOWN, KC_RIGHT, KC_UP, KC_ENT, LT(1, KC_ESC) + LT(1,KC_ESC), KC_ENT, + KC_LSFT, KC_Z, KC_C, + KC_UP, + KC_LEFT, KC_DOWN, KC_RGHT, + KC_X ), LAYOUT( /* RGB controls */ - KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_VAD, RGB_MOD, RGB_VAI, KC_NO, KC_NO + KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + RGB_VAI, + RGB_TOG, RGB_VAD, RGB_MOD, + KC_NO ) }; diff --git a/keyboards/pimentoso/touhoupad/touhoupad.h b/keyboards/pimentoso/touhoupad/touhoupad.h index 5a5f233e3657..8c7bfc36e131 100644 --- a/keyboards/pimentoso/touhoupad/touhoupad.h +++ b/keyboards/pimentoso/touhoupad/touhoupad.h @@ -17,7 +17,12 @@ #include "quantum.h" -#define LAYOUT(k00, k01, k02, k03, k04, k05, k06, k07, k08, k09) \ -{ \ +#define LAYOUT( \ + k09, k08, \ + k00, k01, k02, \ + k07, \ + k04, k05, k06, \ + k03 \ +) { \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 } \ } From d9bb42e37b9d015b5331c4a1ddccaecdfb96d544 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 16 Aug 2021 20:11:09 +0000 Subject: [PATCH 268/328] Linworks Fave87 Layout Macro Refactor (#14008) * correct LAYOUT_tkl_ansi data Number row was positioned 0.25u too low. * correct LAYOUT_tkl_ansi macro - remove position K027 (right half of Split Backspace) - remove position K096 (right portion of Split Right Shift) * correct LAYOUT_tkl_iso macro - remove position K027 (right half of Split Backspace) - remove position K096 (right portion of Split Right Shift) * enable Community Layout support * add LAYOUT_tkl_ansi_split_bs_rshift and LAYOUT_tkl_iso_split_bs_rshift --- keyboards/linworks/fave87/fave87.h | 52 +- keyboards/linworks/fave87/info.json | 760 ++++++++++++++++++---------- keyboards/linworks/fave87/rules.mk | 2 + 3 files changed, 531 insertions(+), 283 deletions(-) diff --git a/keyboards/linworks/fave87/fave87.h b/keyboards/linworks/fave87/fave87.h index 400755774a31..7c3490f45795 100644 --- a/keyboards/linworks/fave87/fave87.h +++ b/keyboards/linworks/fave87/fave87.h @@ -41,6 +41,28 @@ } #define LAYOUT_tkl_ansi( \ + K000, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K037, K028, K038, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K057, K048, K058, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, \ + K080, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K088, \ + K100, K110, K101, K103, K105, K115, K106, K116, K117, K108, K118 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, KC_NO, K008 }, \ + { KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \ + { K020, K021, K022, K023, K024, K025, K026, KC_NO, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \ + { K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \ + { K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \ + { K060, K061, K062, K063, K064, K065, KC_NO, KC_NO, KC_NO }, \ + { K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \ + { K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \ + { KC_NO, K091, K092, K093, K094, K095, KC_NO, KC_NO, KC_NO }, \ + { K100, K101, KC_NO, K103, KC_NO, K105, K106, KC_NO, K108 }, \ + { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 } \ +} + +#define LAYOUT_tkl_ansi_split_bs_rshift( \ K000, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \ K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \ K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K057, K048, K058, \ @@ -50,19 +72,41 @@ ) { \ { K000, K001, K002, K003, K004, K005, K006, KC_NO, K008 }, \ { KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \ - { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K020, K021, K022, K023, K024, K025, K026, KC_NO, K028 }, \ { K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \ { K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \ { K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \ { K060, K061, K062, K063, K064, K065, KC_NO, KC_NO, KC_NO }, \ { K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \ { K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \ - { KC_NO, K091, K092, K093, K094, K095, K096, KC_NO, KC_NO }, \ + { KC_NO, K091, K092, K093, K094, K095, KC_NO, KC_NO, KC_NO }, \ { K100, K101, KC_NO, K103, KC_NO, K105, K106, KC_NO, K108 }, \ { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 } \ } #define LAYOUT_tkl_iso( \ + K000, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K037, K028, K038, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K057, K048, K058, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K088, \ + K100, K110, K101, K103, K105, K115, K106, K116, K117, K108, K118 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, KC_NO, K008 }, \ + { KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \ + { K020, K021, K022, K023, K024, K025, K026, KC_NO, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \ + { K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \ + { K050, K051, K052, K053, K054, K055, KC_NO, K057, K058 }, \ + { K060, K061, K062, K063, K064, K065, K066, KC_NO, KC_NO }, \ + { K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \ + { K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \ + { K090, K091, K092, K093, K094, K095, KC_NO, KC_NO, KC_NO }, \ + { K100, K101, KC_NO, K103, KC_NO, K105, K106, KC_NO, K108 }, \ + { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 } \ +} + +#define LAYOUT_tkl_iso_split_bs_rshift( \ K000, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \ K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \ K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K057, K048, K058, \ @@ -72,14 +116,14 @@ ) { \ { K000, K001, K002, K003, K004, K005, K006, KC_NO, K008 }, \ { KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \ - { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K020, K021, K022, K023, K024, K025, K026, KC_NO, K028 }, \ { K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \ { K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \ { K050, K051, K052, K053, K054, K055, KC_NO, K057, K058 }, \ { K060, K061, K062, K063, K064, K065, K066, KC_NO, KC_NO }, \ { K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \ { K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \ - { K090, K091, K092, K093, K094, K095, K096, KC_NO, KC_NO }, \ + { K090, K091, K092, K093, K094, K095, KC_NO, KC_NO, KC_NO }, \ { K100, K101, KC_NO, K103, KC_NO, K105, K106, KC_NO, K108 }, \ { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 } \ } diff --git a/keyboards/linworks/fave87/info.json b/keyboards/linworks/fave87/info.json index 0612ca91f4c0..92be78d55876 100644 --- a/keyboards/linworks/fave87/info.json +++ b/keyboards/linworks/fave87/info.json @@ -6,294 +6,496 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"F1", "x":2, "y":0}, - {"label":"F2", "x":3, "y":0}, - {"label":"F3", "x":4, "y":0}, - {"label":"F4", "x":5, "y":0}, - {"label":"F5", "x":6.5, "y":0}, - {"label":"F6", "x":7.5, "y":0}, - {"label":"F7", "x":8.5, "y":0}, - {"label":"F8", "x":9.5, "y":0}, - {"label":"F9", "x":11, "y":0}, - {"label":"F10", "x":12, "y":0}, - {"label":"F11", "x":13, "y":0}, - {"label":"F12", "x":14, "y":0}, - {"label":"PrtSc", "x":15.25, "y":0}, - {"label":"Scroll Lock", "x":16.25, "y":0}, - {"label":"Pause", "x":17.25, "y":0}, - - {"label":"~", "x":0, "y":1.25}, - {"label":"!", "x":1, "y":1.25}, - {"label":"@", "x":2, "y":1.25}, - {"label":"#", "x":3, "y":1.25}, - {"label":"$", "x":4, "y":1.25}, - {"label":"%", "x":5, "y":1.25}, - {"label":"^", "x":6, "y":1.25}, - {"label":"&", "x":7, "y":1.25}, - {"label":"*", "x":8, "y":1.25}, - {"label":"(", "x":9, "y":1.25}, - {"label":")", "x":10, "y":1.25}, - {"label":"_", "x":11, "y":1.25}, - {"label":"+", "x":12, "y":1.25}, - {"x":13, "y":1.25}, - {"label":"Bksp", "x":14, "y":1.25}, - {"label":"Insert", "x":15.25, "y":1.25}, - {"label":"Home", "x":16.25, "y":1.25}, - {"label":"PgUp", "x":17.25, "y":1.25}, - - {"label":"Tab", "x":0, "y":2.25, "w":1.5}, - {"label":"Q", "x":1.5, "y":2.25}, - {"label":"W", "x":2.5, "y":2.25}, - {"label":"E", "x":3.5, "y":2.25}, - {"label":"R", "x":4.5, "y":2.25}, - {"label":"T", "x":5.5, "y":2.25}, - {"label":"Y", "x":6.5, "y":2.25}, - {"label":"U", "x":7.5, "y":2.25}, - {"label":"I", "x":8.5, "y":2.25}, - {"label":"O", "x":9.5, "y":2.25}, - {"label":"P", "x":10.5, "y":2.25}, - {"label":"{", "x":11.5, "y":2.25}, - {"label":"}", "x":12.5, "y":2.25}, - {"label":"|", "x":13.5, "y":2.25, "w":1.5}, - {"label":"Delete", "x":15.25, "y":2.25}, - {"label":"End", "x":16.25, "y":2.25}, - {"label":"PgDn", "x":17.25, "y":2.25}, - - {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, - {"label":"A", "x":1.75, "y":3.25}, - {"label":"S", "x":2.75, "y":3.25}, - {"label":"D", "x":3.75, "y":3.25}, - {"label":"F", "x":4.75, "y":3.25}, - {"label":"G", "x":5.75, "y":3.25}, - {"label":"H", "x":6.75, "y":3.25}, - {"label":"J", "x":7.75, "y":3.25}, - {"label":"K", "x":8.75, "y":3.25}, - {"label":"L", "x":9.75, "y":3.25}, - {"label":":", "x":10.75, "y":3.25}, - {"label":"\"", "x":11.75, "y":3.25}, - {"x":12.75, "y":3.25}, - {"label":"Enter", "x":13.75, "y":3.25, "w":1.25}, - - {"label":"Shift", "x":0, "y":4.25, "w":1.25}, - {"x":1.25, "y":4.25}, - {"label":"Z", "x":2.25, "y":4.25}, - {"label":"X", "x":3.25, "y":4.25}, - {"label":"C", "x":4.25, "y":4.25}, - {"label":"V", "x":5.25, "y":4.25}, - {"label":"B", "x":6.25, "y":4.25}, - {"label":"N", "x":7.25, "y":4.25}, - {"label":"M", "x":8.25, "y":4.25}, - {"label":"<", "x":9.25, "y":4.25}, - {"label":">", "x":10.25, "y":4.25}, - {"label":"?", "x":11.25, "y":4.25}, - {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, - {"x":14, "y":4.25}, - {"label":"\u2191", "x":16.25, "y":4.25}, - - {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, - {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, - {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, - {"x":3.75, "y":5.25, "w":6.25}, - {"label":"Alt", "x":10, "y":5.25, "w":1.25}, - {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, - {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, - {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, - {"label":"\u2190", "x":15.25, "y":5.25}, - {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"label":"Bksp", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"\"", "x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"label":"Enter", "x":13.75, "y":3.25, "w":1.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] }, "LAYOUT_tkl_ansi": { "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"F1", "x":2, "y":0}, - {"label":"F2", "x":3, "y":0}, - {"label":"F3", "x":4, "y":0}, - {"label":"F4", "x":5, "y":0}, - {"label":"F5", "x":6.5, "y":0}, - {"label":"F6", "x":7.5, "y":0}, - {"label":"F7", "x":8.5, "y":0}, - {"label":"F8", "x":9.5, "y":0}, - {"label":"F9", "x":11, "y":0}, - {"label":"F10", "x":12, "y":0}, - {"label":"F11", "x":13, "y":0}, - {"label":"F12", "x":14, "y":0}, - {"label":"PrtSc", "x":15.25, "y":0}, - {"label":"Scroll Lock", "x":16.25, "y":0}, - {"label":"Pause", "x":17.25, "y":0}, - - {"label":"~", "x":0, "y":1.5}, - {"label":"!", "x":1, "y":1.5}, - {"label":"@", "x":2, "y":1.5}, - {"label":"#", "x":3, "y":1.5}, - {"label":"$", "x":4, "y":1.5}, - {"label":"%", "x":5, "y":1.5}, - {"label":"^", "x":6, "y":1.5}, - {"label":"&", "x":7, "y":1.5}, - {"label":"*", "x":8, "y":1.5}, - {"label":"(", "x":9, "y":1.5}, - {"label":")", "x":10, "y":1.5}, - {"label":"_", "x":11, "y":1.5}, - {"label":"+", "x":12, "y":1.5}, - {"label":"Bksp", "x":13, "y":1.5, "w":2}, - {"label":"Insert", "x":15.25, "y":1.5}, - {"label":"Home", "x":16.25, "y":1.5}, - {"label":"PgUp", "x":17.25, "y":1.5}, - - {"label":"Tab", "x":0, "y":2.25, "w":1.5}, - {"label":"Q", "x":1.5, "y":2.25}, - {"label":"W", "x":2.5, "y":2.25}, - {"label":"E", "x":3.5, "y":2.25}, - {"label":"R", "x":4.5, "y":2.25}, - {"label":"T", "x":5.5, "y":2.25}, - {"label":"Y", "x":6.5, "y":2.25}, - {"label":"U", "x":7.5, "y":2.25}, - {"label":"I", "x":8.5, "y":2.25}, - {"label":"O", "x":9.5, "y":2.25}, - {"label":"P", "x":10.5, "y":2.25}, - {"label":"{", "x":11.5, "y":2.25}, - {"label":"}", "x":12.5, "y":2.25}, - {"label":"|", "x":13.5, "y":2.25, "w":1.5}, - {"label":"Delete", "x":15.25, "y":2.25}, - {"label":"End", "x":16.25, "y":2.25}, - {"label":"PgDn", "x":17.25, "y":2.25}, - - {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, - {"label":"A", "x":1.75, "y":3.25}, - {"label":"S", "x":2.75, "y":3.25}, - {"label":"D", "x":3.75, "y":3.25}, - {"label":"F", "x":4.75, "y":3.25}, - {"label":"G", "x":5.75, "y":3.25}, - {"label":"H", "x":6.75, "y":3.25}, - {"label":"J", "x":7.75, "y":3.25}, - {"label":"K", "x":8.75, "y":3.25}, - {"label":"L", "x":9.75, "y":3.25}, - {"label":":", "x":10.75, "y":3.25}, - {"label":"\"", "x":11.75, "y":3.25}, - {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, - - {"label":"Shift", "x":0, "y":4.25, "w":2.25}, - {"label":"Z", "x":2.25, "y":4.25}, - {"label":"X", "x":3.25, "y":4.25}, - {"label":"C", "x":4.25, "y":4.25}, - {"label":"V", "x":5.25, "y":4.25}, - {"label":"B", "x":6.25, "y":4.25}, - {"label":"N", "x":7.25, "y":4.25}, - {"label":"M", "x":8.25, "y":4.25}, - {"label":"<", "x":9.25, "y":4.25}, - {"label":">", "x":10.25, "y":4.25}, - {"label":"?", "x":11.25, "y":4.25}, - {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, - {"label":"\u2191", "x":16.25, "y":4.25}, - - {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, - {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, - {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, - {"x":3.75, "y":5.25, "w":6.25}, - {"label":"Alt", "x":10, "y":5.25, "w":1.25}, - {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, - {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, - {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, - {"label":"\u2190", "x":15.25, "y":5.25}, - {"label":"\u2193", "x":16.25, "y":5.25}, - {"label":"\u2192", "x":17.25, "y":5.25}] + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] }, + + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25}, + {"label":"Bksp", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"Fn", "x":14, "y":4.25}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso": { "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"F1", "x":2, "y":0}, - {"label":"F2", "x":3, "y":0}, - {"label":"F3", "x":4, "y":0}, - {"label":"F4", "x":5, "y":0}, - {"label":"F5", "x":6.5, "y":0}, - {"label":"F6", "x":7.5, "y":0}, - {"label":"F7", "x":8.5, "y":0}, - {"label":"F8", "x":9.5, "y":0}, - {"label":"F9", "x":11, "y":0}, - {"label":"F10", "x":12, "y":0}, - {"label":"F11", "x":13, "y":0}, - {"label":"F12", "x":14, "y":0}, - {"label":"PrtSc", "x":15.25, "y":0}, - {"label":"Scroll Lock", "x":16.25, "y":0}, - {"label":"Pause", "x":17.25, "y":0}, - - {"label":"~", "x":0, "y":1.25}, - {"label":"!", "x":1, "y":1.25}, - {"label":"@", "x":2, "y":1.25}, - {"label":"#", "x":3, "y":1.25}, - {"label":"$", "x":4, "y":1.25}, - {"label":"%", "x":5, "y":1.25}, - {"label":"^", "x":6, "y":1.25}, - {"label":"&", "x":7, "y":1.25}, - {"label":"*", "x":8, "y":1.25}, - {"label":"(", "x":9, "y":1.25}, - {"label":")", "x":10, "y":1.25}, - {"label":"_", "x":11, "y":1.25}, - {"label":"+", "x":12, "y":1.25}, - {"label":"Bksp", "x":13, "y":1.25, "w":2}, - {"label":"Insert", "x":15.25, "y":1.25}, - {"label":"Home", "x":16.25, "y":1.25}, - {"label":"PgUp", "x":17.25, "y":1.25}, - - {"label":"Tab", "x":0, "y":2.25, "w":1.5}, - {"label":"Q", "x":1.5, "y":2.25}, - {"label":"W", "x":2.5, "y":2.25}, - {"label":"E", "x":3.5, "y":2.25}, - {"label":"R", "x":4.5, "y":2.25}, - {"label":"T", "x":5.5, "y":2.25}, - {"label":"Y", "x":6.5, "y":2.25}, - {"label":"U", "x":7.5, "y":2.25}, - {"label":"I", "x":8.5, "y":2.25}, - {"label":"O", "x":9.5, "y":2.25}, - {"label":"P", "x":10.5, "y":2.25}, - {"label":"{", "x":11.5, "y":2.25}, - {"label":"}", "x":12.5, "y":2.25}, - {"label":"Delete", "x":15.25, "y":2.25}, - {"label":"End", "x":16.25, "y":2.25}, - {"label":"PgDn", "x":17.25, "y":2.25}, - - {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, - {"label":"A", "x":1.75, "y":3.25}, - {"label":"S", "x":2.75, "y":3.25}, - {"label":"D", "x":3.75, "y":3.25}, - {"label":"F", "x":4.75, "y":3.25}, - {"label":"G", "x":5.75, "y":3.25}, - {"label":"H", "x":6.75, "y":3.25}, - {"label":"J", "x":7.75, "y":3.25}, - {"label":"K", "x":8.75, "y":3.25}, - {"label":"L", "x":9.75, "y":3.25}, - {"label":":", "x":10.75, "y":3.25}, - {"label":"\"", "x":11.75, "y":3.25}, - {"label":"#", "x":12.75, "y":3.25}, + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"\"", "x":11.75, "y":3.25}, + {"label":"#", "x":12.75, "y":3.25}, {"label":"Enter", "x": 13.75, "y":2.25, "w":1.25, "h":2}, - - {"label":"Shift", "x":0, "y":4.25, "w":1.25}, - {"x":1.25, "y":4.25}, - {"label":"Z", "x":2.25, "y":4.25}, - {"label":"X", "x":3.25, "y":4.25}, - {"label":"C", "x":4.25, "y":4.25}, - {"label":"V", "x":5.25, "y":4.25}, - {"label":"B", "x":6.25, "y":4.25}, - {"label":"N", "x":7.25, "y":4.25}, - {"label":"M", "x":8.25, "y":4.25}, - {"label":"<", "x":9.25, "y":4.25}, - {"label":">", "x":10.25, "y":4.25}, - {"label":"?", "x":11.25, "y":4.25}, - {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, - {"label":"\u2191", "x":16.25, "y":4.25}, - - {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, - {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, - {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, - {"x":3.75, "y":5.25, "w":6.25}, - {"label":"Alt", "x":10, "y":5.25, "w":1.25}, - {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, - {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, - {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, - {"label":"\u2190", "x":15.25, "y":5.25}, - {"label":"\u2193", "x":16.25, "y":5.25}, - {"label":"\u2192", "x":17.25, "y":5.25}] + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25}, + {"label":"Bksp", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"\"", "x":11.75, "y":3.25}, + {"label":"#", "x":12.75, "y":3.25}, + {"label":"Enter", "x": 13.75, "y":2.25, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"Fn", "x":14, "y":4.25}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] } } } diff --git a/keyboards/linworks/fave87/rules.mk b/keyboards/linworks/fave87/rules.mk index 5f671bed8a65..b2c48df882d8 100644 --- a/keyboards/linworks/fave87/rules.mk +++ b/keyboards/linworks/fave87/rules.mk @@ -18,3 +18,5 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +LAYOUTS = tkl_ansi tkl_iso From 08b2d08593caf61ad404f83f7336ef08fe0ebe08 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 16 Aug 2021 20:16:17 +0000 Subject: [PATCH 269/328] MisonoWorks Chocolate Bar Configurator fixes (#14009) * info.json: apply human-friendly formatting * info.json: correct key sequence Places the arrow keys in the proper place in sequence. * correct maintainer's GitHub link in readme User changed their GitHub username; previous URL was Error 404. --- keyboards/misonoworks/chocolatebar/info.json | 73 ++++++++++++++++++-- keyboards/misonoworks/chocolatebar/readme.md | 2 +- 2 files changed, 67 insertions(+), 8 deletions(-) diff --git a/keyboards/misonoworks/chocolatebar/info.json b/keyboards/misonoworks/chocolatebar/info.json index 717e77b94ffa..5da5a5cc2a44 100644 --- a/keyboards/misonoworks/chocolatebar/info.json +++ b/keyboards/misonoworks/chocolatebar/info.json @@ -1,12 +1,71 @@ { - "keyboard_name": "Chocolate Bar", - "url": "https://github.com/misonoworks/chocolate-bar", - "maintainer": "Robin Bayardo", - "width": 16, - "height": 4.25, + "keyboard_name": "Chocolate Bar", + "url": "https://github.com/misonoworks/chocolate-bar", + "maintainer": "Robin Bayardo", + "width": 16, + "height": 4.25, "layouts": { "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"7", "x":13, "y":0}, {"label":"8", "x":14, "y":0}, {"label":"9", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"A", "x":1.5, "y":1}, {"label":"S", "x":2.5, "y":1}, {"label":"D", "x":3.5, "y":1}, {"label":"F", "x":4.5, "y":1}, {"label":"G", "x":5.5, "y":1}, {"label":"H", "x":6.5, "y":1}, {"label":"J", "x":7.5, "y":1}, {"label":"K", "x":8.5, "y":1}, {"label":"L", "x":9.5, "y":1}, {"label":"Enter", "x":10.5, "y":1, "w":1.5}, {"label":"4", "x":13, "y":1}, {"label":"5", "x":14, "y":1}, {"label":"6", "x":15, "y":1}, {"label":"Shift", "x":0, "y":2, "w":2}, {"label":"Z", "x":2, "y":2}, {"label":"X", "x":3, "y":2}, {"label":"C", "x":4, "y":2}, {"label":"V", "x":5, "y":2}, {"label":"B", "x":6, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":", <", "x":9, "y":2}, {"label":"Shift", "x":10, "y":2, "w":1.5}, {"label":"1", "x":13, "y":2}, {"label":"2", "x":14, "y":2}, {"label":"3", "x":15, "y":2}, {"label":"Up", "x":11.75, "y":2.25}, {"label":"Ctrl", "x":0, "y":3, "w":1.5}, {"label":"Alt", "x":1.5, "y":3, "w":1.5}, {"label":"Meta", "x":3, "y":3}, {"x":4, "y":3, "w":2}, {"x":6, "y":3, "w":2}, {"label":"Super", "x":8, "y":3}, {"label":"Ctrl", "x":9, "y":3, "w":1.5}, {"label":"0", "x":14, "y":3}, {"label":"Calc", "x":15, "y":3}, {"label":"Left", "x":10.75, "y":3.25}, {"label":"Down", "x":11.75, "y":3.25}, {"label":"Right", "x":12.75, "y":3.25}] + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"Back Space", "x":11, "y":0}, + {"label":"7", "x":13, "y":0}, + {"label":"8", "x":14, "y":0}, + {"label":"9", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"A", "x":1.5, "y":1}, + {"label":"S", "x":2.5, "y":1}, + {"label":"D", "x":3.5, "y":1}, + {"label":"F", "x":4.5, "y":1}, + {"label":"G", "x":5.5, "y":1}, + {"label":"H", "x":6.5, "y":1}, + {"label":"J", "x":7.5, "y":1}, + {"label":"K", "x":8.5, "y":1}, + {"label":"L", "x":9.5, "y":1}, + {"label":"Enter", "x":10.5, "y":1, "w":1.5}, + {"label":"4", "x":13, "y":1}, + {"label":"5", "x":14, "y":1}, + {"label":"6", "x":15, "y":1}, + + {"label":"Shift", "x":0, "y":2, "w":2}, + {"label":"Z", "x":2, "y":2}, + {"label":"X", "x":3, "y":2}, + {"label":"C", "x":4, "y":2}, + {"label":"V", "x":5, "y":2}, + {"label":"B", "x":6, "y":2}, + {"label":"N", "x":7, "y":2}, + {"label":"M", "x":8, "y":2}, + {"label":", <", "x":9, "y":2}, + {"label":"Shift", "x":10, "y":2, "w":1.5}, + {"label":"Up", "x":11.75, "y":2.25}, + {"label":"1", "x":13, "y":2}, + {"label":"2", "x":14, "y":2}, + {"label":"3", "x":15, "y":2}, + + {"label":"Ctrl", "x":0, "y":3, "w":1.5}, + {"label":"Alt", "x":1.5, "y":3, "w":1.5}, + {"label":"Meta", "x":3, "y":3}, + {"x":4, "y":3, "w":2}, + {"x":6, "y":3, "w":2}, + {"label":"Super", "x":8, "y":3}, + {"label":"Ctrl", "x":9, "y":3, "w":1.5}, + {"label":"Left", "x":10.75, "y":3.25}, + {"label":"Down", "x":11.75, "y":3.25}, + {"label":"Right", "x":12.75, "y":3.25}, + {"label":"0", "x":14, "y":3}, + {"label":"Calc", "x":15, "y":3} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/misonoworks/chocolatebar/readme.md b/keyboards/misonoworks/chocolatebar/readme.md index 062e7c0b0eb5..b652c0714490 100644 --- a/keyboards/misonoworks/chocolatebar/readme.md +++ b/keyboards/misonoworks/chocolatebar/readme.md @@ -5,7 +5,7 @@ An 1800-Style 40% Choc Keyboard -* Keyboard Maintainer: [MisonoWorks](https://github.com/autumnisacutie/) +* Keyboard Maintainer: [MisonoWorks](https://github.com/misonoworks/) * Hardware Supported: Chocolate Bar PCB * Hardware Availability: [MKUltra.click](https://mkultra.click/) From cab1347387812723d0a9f4267a1785d00e20e3b8 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 16 Aug 2021 20:50:30 +0000 Subject: [PATCH 270/328] ryanbaekr rb86: rename LAYOUT_numpad_6x17 to LAYOUT (#14011) This keyboard isn't a numpad. --- keyboards/ryanbaekr/rb86/info.json | 5 ++++- keyboards/ryanbaekr/rb86/keymaps/default/keymap.c | 4 ++-- keyboards/ryanbaekr/rb86/keymaps/via/keymap.c | 8 ++++---- keyboards/ryanbaekr/rb86/rb86.h | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/keyboards/ryanbaekr/rb86/info.json b/keyboards/ryanbaekr/rb86/info.json index 9a8f0c904120..23666a499725 100644 --- a/keyboards/ryanbaekr/rb86/info.json +++ b/keyboards/ryanbaekr/rb86/info.json @@ -4,8 +4,11 @@ "maintainer": "qmk", "width": 17.25, "height": 6.25, + "layout_aliases": { + "LAYOUT_numpad_6x17": "LAYOUT" + }, "layouts": { - "LAYOUT_numpad_6x17": { + "LAYOUT": { "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":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":15.25, "y":4.25}, {"x":0, "y":5.25}, {"x":1, "y":5.25}, {"x":2, "y":5.25}, {"x":3, "y":5.25}, {"x":4, "y":5.25, "w":6.25}, {"x":10.25, "y":5.25, "w":1.25}, {"x":11.5, "y":5.25, "w":1.25}, {"x":12.75, "y":5.25, "w":1.25}, {"x":14.25, "y":5.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}] } } diff --git a/keyboards/ryanbaekr/rb86/keymaps/default/keymap.c b/keyboards/ryanbaekr/rb86/keymaps/default/keymap.c index bc06b7952fd6..41b1b88469ed 100644 --- a/keyboards/ryanbaekr/rb86/keymaps/default/keymap.c +++ b/keyboards/ryanbaekr/rb86/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_numpad_6x17( + [0] = LAYOUT( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_END, KC_PSCR, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, TG(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_F13, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_numpad_6x17( + [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/ryanbaekr/rb86/keymaps/via/keymap.c b/keyboards/ryanbaekr/rb86/keymaps/via/keymap.c index 1d22af857e1b..e28bfa5e6d6a 100644 --- a/keyboards/ryanbaekr/rb86/keymaps/via/keymap.c +++ b/keyboards/ryanbaekr/rb86/keymaps/via/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_numpad_6x17( + [0] = LAYOUT( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_END, KC_PSCR, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, TG(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_F13, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_numpad_6x17( + [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT_numpad_6x17( + [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_numpad_6x17( + [3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/ryanbaekr/rb86/rb86.h b/keyboards/ryanbaekr/rb86/rb86.h index 71a89525f7c0..29f5a82f8360 100644 --- a/keyboards/ryanbaekr/rb86/rb86.h +++ b/keyboards/ryanbaekr/rb86/rb86.h @@ -20,7 +20,7 @@ #define ____ KC_NO -#define LAYOUT_numpad_6x17( \ +#define LAYOUT( \ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k114, k115, k116, \ k200, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \ From 837571ef7f0b7f662aa37391a371a83769f7141e Mon Sep 17 00:00:00 2001 From: Charly Delay <0xcharly@users.noreply.github.com> Date: Wed, 18 Aug 2021 00:44:19 +0900 Subject: [PATCH 271/328] [Keyboard] bastardkb/skeletyl: fix LED configuration (#14030) --- keyboards/bastardkb/skeletyl/skeletyl.c | 90 ++++++++++++++++--------- keyboards/bastardkb/skeletyl/skeletyl.h | 35 +++++----- 2 files changed, 75 insertions(+), 50 deletions(-) diff --git a/keyboards/bastardkb/skeletyl/skeletyl.c b/keyboards/bastardkb/skeletyl/skeletyl.c index 057465b4a887..b72becbb2539 100644 --- a/keyboards/bastardkb/skeletyl/skeletyl.c +++ b/keyboards/bastardkb/skeletyl/skeletyl.c @@ -1,4 +1,4 @@ -/* +/* * Copyright 2021 Quentin LEBASTARD * * This program is free software: you can redistribute it and/or modify @@ -17,41 +17,65 @@ #include "skeletyl.h" +/** + * LEDs index. + * + * ╭────────────────────╮ ╭────────────────────╮ + * 2 3 8 9 12 30 27 26 21 20 + * ├────────────────────┤ ├────────────────────┤ + * 1 4 7 10 13 31 28 25 22 19 + * ├────────────────────┤ ├────────────────────┤ + * 0 5 6 11 14 32 29 24 23 18 + * ╰────────────────────╯ ╰────────────────────╯ + * 15 16 17 35 34 33 + * ╰────────────╯ ╰────────────╯ + */ +// clang-format off #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { - // left - { 0, 5, 6, 11, 12 }, - { 1, 4, 7, 10, 13 }, - { 2, 3, 8, 9, 14 }, - { 15, NO_LED, 16, 17, NO_LED }, - // right - { 18, 23, 24, 29, 30 }, - { 19, 22, 25, 28, 31 }, - { 20, 21, 26, 27, 32 }, - { 33, NO_LED, 34, 35, NO_LED } + /* Key Matrix to LED index. */ + // Left split. + { 2, 3, 8, 9, 12 }, // Top row + { 1, 4, 7, 10, 13 }, // Middle row + { 0, 5, 6, 11, 14 }, // Bottom row + { 17, NO_LED, 15, 16, NO_LED }, // Thumb cluster + // Right split. + { 20, 21, 26, 27, 30 }, // Top row + { 19, 22, 25, 28, 31 }, // Middle row + { 18, 23, 24, 29, 32 }, // Bottom row + { 35, NO_LED, 33, 34, NO_LED }, // Thumb cluster }, { - // left - { 0, 0 }, { 0, 21 }, { 0, 42 }, // col 1 - { 25, 42 }, { 25, 21 }, { 25, 0 }, // col 2 - { 50, 0 }, { 50, 21 }, { 50, 42 }, - { 74, 42 }, { 74, 21 }, { 74, 0 }, - { 99, 0 }, { 99, 21 }, { 99, 42 }, - { 50, 64 }, { 74, 64 }, { 99, 64 }, // left thumb cluster - // right - { 224, 0 }, { 224, 21 }, { 224, 42 }, // col 10 - { 198, 42 }, { 198, 21 }, { 198, 0 }, // col 9 - { 174, 0 }, { 174, 21 }, { 174, 42 }, - { 149, 42 }, { 149, 21 }, { 149, 0 }, - { 124, 0 }, { 124, 21 }, { 124, 42 }, - { 174, 64 }, { 149, 64 }, { 124, 64 } // right thumb cluster + /* LED index to physical position. */ + // Left split. + /* index=0 */ { 0, 42 }, { 0, 21 }, { 0, 0 }, // col 1 (left most) + /* index=3 */ { 18, 0 }, { 18, 21 }, { 18, 42 }, // col 2 + /* index=6 */ { 36, 42 }, { 36, 21 }, { 36, 0 }, + /* index=9 */ { 54, 0 }, { 54, 21 }, { 54, 42 }, + /* index=12 */ { 72, 0 }, { 72, 21 }, { 72, 42 }, + /* index=15 */ { 72, 64 }, { 90, 64 }, { 108, 64 }, // Thumb cluster + // Right split. + /* index=18 */ { 224, 42 }, { 224, 21 }, { 224, 0 }, // col 10 (right most) + /* index=21 */ { 206, 0 }, { 206, 21 }, { 206, 42 }, // col 9 + /* index=24 */ { 188, 42 }, { 188, 21 }, { 188, 0 }, + /* index=27 */ { 170, 0 }, { 170, 21 }, { 170, 42 }, + /* index=30 */ { 152, 0 }, { 152, 21 }, { 152, 42 }, + /* index=33 */ { 152, 64 }, { 134, 64 }, { 116, 64 }, // Thumb cluster }, { - // left - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, - // right - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2 + /* LED index to flag. */ + // Left split. + /* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1 + /* index=3 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2 + /* index=6 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=9 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=15 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster + // Right split. + /* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10 + /* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9 + /* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=33 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster } }; #endif +// clang-format on diff --git a/keyboards/bastardkb/skeletyl/skeletyl.h b/keyboards/bastardkb/skeletyl/skeletyl.h index 36399567ff81..3e90abb01d51 100644 --- a/keyboards/bastardkb/skeletyl/skeletyl.h +++ b/keyboards/bastardkb/skeletyl/skeletyl.h @@ -1,4 +1,4 @@ -/* +/* * Copyright 2021 Quentin LEBASTARD * * This program is free software: you can redistribute it and/or modify @@ -15,23 +15,24 @@ * along with this program. If not, see . */ - #pragma once #include "quantum.h" -#define LAYOUT_split_3x5_3( \ - k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ - k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ - k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ - k33, k34, k31, k71, k74, k73 \ -)\ -{\ - { k00, k01, k02, k03, k04 }, \ - { k10, k11, k12, k13, k14 }, \ - { k20, k21, k22, k23, k24 }, \ - { k31, KC_NO, k33, k34, KC_NO }, \ - { k40, k41, k42, k43, k44 }, \ - { k50, k51, k52, k53, k54 }, \ - { k60, k61, k62, k63, k64 }, \ - { k71, KC_NO, k73, k74, KC_NO }, \ +// clang-format off +#define LAYOUT_split_3x5_3( \ + k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ + k33, k34, k31, k71, k74, k73 \ +) \ +{ \ + { k00, k01, k02, k03, k04 }, \ + { k10, k11, k12, k13, k14 }, \ + { k20, k21, k22, k23, k24 }, \ + { k31, KC_NO, k33, k34, KC_NO }, \ + { k40, k41, k42, k43, k44 }, \ + { k50, k51, k52, k53, k54 }, \ + { k60, k61, k62, k63, k64 }, \ + { k71, KC_NO, k73, k74, KC_NO }, \ } +// clang-format on From a8f893ed2ca4b30945714e58245c4dd1c7c8481f Mon Sep 17 00:00:00 2001 From: yulei Date: Wed, 18 Aug 2021 00:06:26 +0800 Subject: [PATCH 272/328] [Keyboard] add n6 keyboard (#13768) Co-authored-by: Ryan --- keyboards/neson_design/n6/config.h | 67 ++++ keyboards/neson_design/n6/info.json | 84 +++++ .../neson_design/n6/keymaps/default/keymap.c | 34 ++ .../neson_design/n6/keymaps/via/keymap.c | 48 +++ .../neson_design/n6/keymaps/via/rules.mk | 2 + keyboards/neson_design/n6/n6.c | 319 ++++++++++++++++++ keyboards/neson_design/n6/n6.h | 54 +++ keyboards/neson_design/n6/readme.md | 21 ++ keyboards/neson_design/n6/rules.mk | 23 ++ 9 files changed, 652 insertions(+) create mode 100644 keyboards/neson_design/n6/config.h create mode 100644 keyboards/neson_design/n6/info.json create mode 100644 keyboards/neson_design/n6/keymaps/default/keymap.c create mode 100644 keyboards/neson_design/n6/keymaps/via/keymap.c create mode 100644 keyboards/neson_design/n6/keymaps/via/rules.mk create mode 100644 keyboards/neson_design/n6/n6.c create mode 100644 keyboards/neson_design/n6/n6.h create mode 100644 keyboards/neson_design/n6/readme.md create mode 100644 keyboards/neson_design/n6/rules.mk diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h new file mode 100644 index 000000000000..d3b49becb324 --- /dev/null +++ b/keyboards/neson_design/n6/config.h @@ -0,0 +1,67 @@ +/** + * config.h + * + Copyright 2021 astro + + 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4E65 //'Ne' +#define PRODUCT_ID 0x4E36 //'N6' +#define DEVICE_VER 0x0001 +#define MANUFACTURER Neson Design +#define PRODUCT N6 Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +#define MATRIX_ROW_PINS { F0, B1, F6, F4, F1} +#define MATRIX_COL_PINS { F7, B0, E6, C7, C6, B6, B5, B4, D7, D6, D4, D5, B2, D3, D2 } +#define UNUSED_PINS +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + + +//rgb light setting +//#define RGBLIGHT_LIMIT_VAL 128 +#define RGBLED_NUM 33 +#define RGB_DI_PIN B3 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#define DRIVER_1_LED_TOTAL 32 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_COUNT 1 +#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL) + +#define CAPS_PIN F5 diff --git a/keyboards/neson_design/n6/info.json b/keyboards/neson_design/n6/info.json new file mode 100644 index 000000000000..fc61ac776097 --- /dev/null +++ b/keyboards/neson_design/n6/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "n6", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "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":12, "y":0 }, + { "x":13, "y":0, "w": 2 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4, "w":1.25 }, + { "x":11.25, "y":4, "w":1.25 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + } + } + } diff --git a/keyboards/neson_design/n6/keymaps/default/keymap.c b/keyboards/neson_design/n6/keymaps/default/keymap.c new file mode 100644 index 000000000000..ecf17f3a6dc5 --- /dev/null +++ b/keyboards/neson_design/n6/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/** + Copyright 2021 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker_splitbs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_DEL, KC_BSPC, KC_PSCR, + 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_HOME, + 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_END, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_LEFT,KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_ansi_blocker_splitbs( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,KC_PSCR,_______, + RESET, RGB_TOG,RGB_MOD,_______, KC_F16, KC_F17,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______,_______, + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END, _______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, + _______,_______,_______, _______, _______,_______, _______,_______,_______), +}; diff --git a/keyboards/neson_design/n6/keymaps/via/keymap.c b/keyboards/neson_design/n6/keymaps/via/keymap.c new file mode 100644 index 000000000000..cad04a096c9b --- /dev/null +++ b/keyboards/neson_design/n6/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/** + Copyright 2021 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker_splitbs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_DEL, KC_BSPC, KC_PSCR, + 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_HOME, + 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_END, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_LEFT,KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_ansi_blocker_splitbs( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,KC_PSCR,_______, + RESET, RGB_TOG,RGB_MOD,_______, KC_F16, KC_F17,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, _______, + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, _______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, + _______,_______,_______, _______, _______,_______, _______,_______,_______), + + [2] = LAYOUT_65_ansi_blocker_splitbs( + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______, _______, _______,_______, TG(0),_______,_______), + + [3] = LAYOUT_65_ansi_blocker_splitbs( + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______, _______, _______,_______, TG(0),_______,_______), +}; diff --git a/keyboards/neson_design/n6/keymaps/via/rules.mk b/keyboards/neson_design/n6/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/neson_design/n6/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c new file mode 100644 index 000000000000..800aa0ae9a8a --- /dev/null +++ b/keyboards/neson_design/n6/n6.c @@ -0,0 +1,319 @@ +/** + * @file n6.c + * + Copyright 2021 astro + + 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 "n6.h" +#include "i2c_master.h" +#include "issi/is31fl3731.h" + +enum { + SELF_TESTING, + CAPS_ALERT, + NORMAL, +}; + +enum { + ST_STAGE_1, + ST_STAGE_2, + ST_STAGE_3, +}; + +// alert state update interval +#define ALERT_INTERVAL 600 +// self testing state update interval +#define ST_INTERVAL 100 +// self testing start index +#define ST_DEFAULT_INDEX 15 +// self testing stage delay +#define ST_STAGE_DELAY 10 +// self testing stage cycle count +#define ST_STAGE_COUNT 4 +// self testing stage end duration +#define ST_END_DURATION 10 + +#ifdef RGBLIGHT_ENABLE +extern rgblight_config_t rgblight_config; + +typedef struct { + uint8_t state; + uint8_t testing; + bool alert; + uint8_t index; + uint8_t delay; + uint8_t count; + bool dir; + uint8_t duration; + uint16_t ticks; +} rgb_state_t; + +static rgb_state_t rgb_state = { + .state = //NORMAL, + SELF_TESTING, + .testing = ST_STAGE_1, + .ticks = 0, + .alert = false, + .index = ST_DEFAULT_INDEX, + .delay = ST_STAGE_DELAY, + .count = ST_STAGE_COUNT, + .dir = true, + .duration = ST_END_DURATION, +}; + +static void update_ticks(void) +{ + rgb_state.ticks = timer_read(); +} + +static void self_testing(void) +{ + if (timer_elapsed(rgb_state.ticks) < ST_INTERVAL) return; + HSV hsv; + hsv.h = rgblight_config.hue; + hsv.s = rgblight_config.sat; + hsv.v = rgblight_config.val; + + RGB led = hsv_to_rgb(hsv); + switch(rgb_state.testing) { + case ST_STAGE_1: + if (rgb_state.index !=0 ) { + IS31FL3731_set_color_all(0, 0, 0); + } + + if (rgb_state.index >= 1) { + for (int i = rgb_state.index-1; i < 32-rgb_state.index+1; i++) { + IS31FL3731_set_color(i, led.r, led.g, led.b); + } + if (rgb_state.index==1) { + rgb_state.index=0; + } else { + rgb_state.index -= 2; + } + } else{ + if (rgb_state.delay > 0) { + rgb_state.delay--; + } else { + // move to stage 2 + rgb_state.index = 2; + rgb_state.testing = ST_STAGE_2; + } + } + break; + case ST_STAGE_2: { + // clear all + IS31FL3731_set_color_all(0, 0, 0); + // light left and right + IS31FL3731_set_color(0, led.r, led.g, led.b); + IS31FL3731_set_color(1, led.r, led.g, led.b); + IS31FL3731_set_color(30, led.r, led.g, led.b); + IS31FL3731_set_color(31, led.r, led.g, led.b); + if (rgb_state.dir) { + // left to right + for (int i = rgb_state.index; i < rgb_state.index+4; i++) { + IS31FL3731_set_color(i, led.r, led.g, led.b); + } + rgb_state.index += 4; + if (rgb_state.index == 30) { + rgb_state.dir = !rgb_state.dir; + rgb_state.count--; + } + } else { + // right to left + for (int i = rgb_state.index-4; i < rgb_state.index; i++) { + IS31FL3731_set_color(i, led.r, led.g, led.b); + } + rgb_state.index -= 4; + if (rgb_state.index == 2) { + rgb_state.dir = !rgb_state.dir; + rgb_state.count--; + } + } + + if (rgb_state.count == 0) { + // move to stage 3 + rgb_state.testing = ST_STAGE_3; + rgb_state.index = 0; + rgb_state.delay = ST_STAGE_DELAY; + rgb_state.duration = ST_END_DURATION; + } + } + break; + case ST_STAGE_3: + if (rgb_state.index != 16) { + IS31FL3731_set_color_all(0, 0, 0); + } + + // light left and right + + if (rgb_state.index == 16) { + if (rgb_state.duration) { + rgb_state.duration--; + } else { + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgb_state.state = CAPS_ALERT; + } else { + rgb_state.state = NORMAL; + rgblight_set(); + } + } + } else { + // left + for (int i = 0; i < rgb_state.index+1; i++) { + IS31FL3731_set_color(i, led.r, led.g, led.b); + } + // right + for (int i = 31; i > 31-rgb_state.index-1; i--) { + IS31FL3731_set_color(i, led.r, led.g, led.b); + } + rgb_state.index ++; + } + break; + } + + update_ticks(); +} + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ +// left CA + {0, C1_1, C3_2, C4_2}, + {0, C1_2, C2_2, C4_3}, + {0, C1_3, C2_3, C3_3}, + {0, C1_4, C2_4, C3_4}, + {0, C1_5, C2_5, C3_5}, + {0, C1_6, C2_6, C3_6}, + {0, C1_7, C2_7, C3_7}, + {0, C1_8, C2_8, C3_8}, + + {0, C9_1, C8_1, C7_1}, + {0, C9_2, C8_2, C7_2}, + {0, C9_3, C8_3, C7_3}, + {0, C9_4, C8_4, C7_4}, + {0, C9_5, C8_5, C7_5}, + {0, C9_6, C8_6, C7_6}, + {0, C9_7, C8_7, C6_6}, + {0, C9_8, C7_7, C6_7}, +// left CB + {0, C1_9, C3_10, C4_10}, + {0, C1_10, C2_10, C4_11}, + {0, C1_11, C2_11, C3_11}, + {0, C1_12, C2_12, C3_12}, + {0, C1_13, C2_13, C3_13}, + {0, C1_14, C2_14, C3_14}, + {0, C1_15, C2_15, C3_15}, + {0, C1_16, C2_16, C3_16}, + + {0, C9_9, C8_9, C7_9}, + {0, C9_10, C8_10, C7_10}, + {0, C9_11, C8_11, C7_11}, + {0, C9_12, C8_12, C7_12}, + {0, C9_13, C8_13, C7_13}, + {0, C9_14, C8_14, C7_14}, + {0, C9_15, C8_15, C6_14}, + {0, C9_16, C7_15, C6_15}, +}; +#endif +__attribute__((weak)) +void matrix_init_user(void) {} + +void matrix_init_kb(void) +{ + // clear caps led + setPinOutput(CAPS_PIN); + writePinLow(CAPS_PIN); +#ifdef RGBLIGHT_ENABLE + i2c_init(); + IS31FL3731_init(DRIVER_ADDR_1); + for (int index = 0; index < DRIVER_LED_TOTAL; index++) { + IS31FL3731_set_led_control_register(index, true, true, true); + } + IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); + update_ticks(); +#endif + matrix_init_user(); +} + +#ifdef RGBLIGHT_ENABLE +void housekeeping_task_kb(void) +{ + if (rgb_state.state == SELF_TESTING) { + self_testing(); + } else if (rgb_state.state == CAPS_ALERT) { + //gold 0xFF, 0xD9, 0x00 + LED_TYPE led = { + .r = 0xFF, + .g = 0xD9, + .b = 0x00, + }; + if (rgb_state.alert) { + IS31FL3731_set_color_all(led.r, led.g, led.b); + ws2812_setleds(&led, 1); + } else { + led.r = 0; + led.g = 0; + led.b = 0; + IS31FL3731_set_color_all(0, 0, 0); + ws2812_setleds(&led, 1); + } + + if (timer_elapsed(rgb_state.ticks) > ALERT_INTERVAL) { + rgb_state.alert = !rgb_state.alert; + update_ticks(); + } + } + + IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1,0); + + housekeeping_task_user(); +} + +void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) +{ + if (rgb_state.state != NORMAL) return; + + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + IS31FL3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); + } + ws2812_setleds(start_led+DRIVER_LED_TOTAL, 1); +} +#endif + +bool led_update_kb(led_t led_state) +{ + bool res = led_update_user(led_state); + if (res) { + writePin(CAPS_PIN, led_state.caps_lock); + +#ifdef RGBLIGHT_ENABLE + if (rgb_state.state != SELF_TESTING) { + if (led_state.caps_lock) { + rgb_state.state = CAPS_ALERT; + update_ticks(); + } else { + rgb_state.state = NORMAL; + rgblight_set(); + } + } +#endif + } + return res; +} \ No newline at end of file diff --git a/keyboards/neson_design/n6/n6.h b/keyboards/neson_design/n6/n6.h new file mode 100644 index 000000000000..0015f8570ab3 --- /dev/null +++ b/keyboards/neson_design/n6/n6.h @@ -0,0 +1,54 @@ +/** + * @file n6.h + * + Copyright 2021 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E }, \ + { K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2D, K2F }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F }, \ + { K40, K41, K43, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K46, K4A, K4B, K4D, K4E, K4F, K0F }, \ +} + +#define LAYOUT_65_ansi_blocker_splitbs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0E }, \ + { K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2D, K2F }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F }, \ + { K40, K41, K43, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K46, K4A, K4B, K4D, K4E, K4F, K0F }, \ +} diff --git a/keyboards/neson_design/n6/readme.md b/keyboards/neson_design/n6/readme.md new file mode 100644 index 000000000000..81ba05be4997 --- /dev/null +++ b/keyboards/neson_design/n6/readme.md @@ -0,0 +1,21 @@ +# Neson Design (formerly iNETT Studio) N6 + +A 65% keyboard from the Neson Design's N series. + +* Keyboard Maintainer: [astro](https://github.com/yulei) +* Hardware Supported: N6 keyboard +* Hardware Availability: Limited gb + +Make example for this keyboard (after setting up your build environment): + + make neson_design/n6:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard. +* **Physical reset button**: Briefly press the *RST* button on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available. \ No newline at end of file diff --git a/keyboards/neson_design/n6/rules.mk b/keyboards/neson_design/n6/rules.mk new file mode 100644 index 000000000000..a12a4034b799 --- /dev/null +++ b/keyboards/neson_design/n6/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +QUANTUM_LIB_SRC += i2c_master.c issi/is31fl3731.c +LAYOUTS = 65_ansi_blocker From ab10ce49325c390644e3885fe479b87fe5879fd7 Mon Sep 17 00:00:00 2001 From: s-show Date: Wed, 18 Aug 2021 01:13:09 +0900 Subject: [PATCH 273/328] update feature_tap_dance.md translation (#13496) * update feature_tap_dance.md translation * Update docs/ja/feature_tap_dance.md Co-authored-by: shela * update based on comment. Co-authored-by: shela --- docs/ja/feature_tap_dance.md | 170 ++++++++++++++++++----------------- 1 file changed, 88 insertions(+), 82 deletions(-) diff --git a/docs/ja/feature_tap_dance.md b/docs/ja/feature_tap_dance.md index 3d9d30ecf025..082d48f1c31f 100644 --- a/docs/ja/feature_tap_dance.md +++ b/docs/ja/feature_tap_dance.md @@ -1,8 +1,8 @@ # タップダンス: 1つのキーが3つ、5つまたは100の異なる動作をします ## イントロダクション :id=introduction @@ -22,7 +22,7 @@ `TAPPING_TERM` の時間は、あなたのタップダンスのキーのタップとタップの間の時間として許可された最大の時間で、ミリ秒単位で計測されます。例えば、もし、あなたがこの上にある `#define` ステートメントを使い、1回タップすると `Space` が送信され、2回タップすると `Enter` が送信されるタップダンスキーをセットアップした場合、175ミリ秒以内に2回キーをタップすれば `ENT` だけが送信されるでしょう。もし、1回タップしてから175ミリ秒以上待ってからもう一度タップすると、`SPC SPC` が送信されます。 -次に、いくつかのタップダンスのキーを定義するためには、`TD()` マクロを使うのが最も簡単です。これは数字を受け取り、この数字は後で `tap_dance-actions` 配列のインデックスとして使われます。 +次に、いくつかのタップダンスのキーを定義するためには、`TD()` マクロを使うのが最も簡単です。これは数字を受け取り、この数字は後で `tap_dance_actions` 配列のインデックスとして使われます。 その後、`tap_dance_actions` 配列を使って、タップダンスキーを押した時のアクションを定義します。現在は、5つの可能なオプションがあります: @@ -85,7 +85,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), }; -// キーコードの代わりにタップダンスキーを追加します +// キーマップにキーコードの代わりにタップダンスの項目を追加します const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ... TD(TD_ESC_CAPS) @@ -215,20 +215,22 @@ qk_tap_dance_action_t tap_dance_actions[] = { `keymap.c` ファイルの先頭、つまりキーマップの前に、以下のコードを追加します。 ```c +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP, + TD_DOUBLE_HOLD, + TD_DOUBLE_SINGLE_TAP, // Send two single taps + TD_TRIPLE_TAP, + TD_TRIPLE_HOLD +} td_state_t; + typedef struct { bool is_press_action; - uint8_t state; -} tap; - -enum { - SINGLE_TAP = 1, - SINGLE_HOLD, - DOUBLE_TAP, - DOUBLE_HOLD, - DOUBLE_SINGLE_TAP, // シングルタップを2回送信 - TRIPLE_TAP, - TRIPLE_HOLD -}; + td_state_t state; +} td_tap_t; // タップダンスの列挙型 enum { @@ -236,7 +238,7 @@ enum { SOME_OTHER_DANCE }; -uint8_t cur_dance(qk_tap_dance_state_t *state); +td_state_t cur_dance(qk_tap_dance_state_t *state); // xタップダンスのための関数。キーマップで利用できるようにするため、ここに置きます。 void x_finished(qk_tap_dance_state_t *state, void *user_data); @@ -273,63 +275,63 @@ void x_reset(qk_tap_dance_state_t *state, void *user_data); * 一般的な単語で2回続けて使われる文字でないこと。例えば 'pepper' 中の 'p'。もしタップダンス機能が * 文字 'p' に存在する場合、'pepper' という単語は入力するのが非常にいらだたしいものになるでしょう。 * - * 3つ目の点については、'DOUBLE_SINGLE_TAP' が存在しますが、これは完全にはテストされていません + * 3つ目の点については、'TD_DOUBLE_SINGLE_TAP' が存在しますが、これは完全にはテストされていません * */ -uint8_t cur_dance(qk_tap_dance_state_t *state) { +td_state_t cur_dance(qk_tap_dance_state_t *state) { if (state->count == 1) { - if (state->interrupted || !state->pressed) return SINGLE_TAP; + if (state->interrupted || !state->pressed) return TD_SINGLE_TAP; // キーは割り込まれていませんが、まだ押し続けられています。'HOLD' を送信することを意味します。 - else return SINGLE_HOLD; + else return TD_SINGLE_HOLD; } else if (state->count == 2) { - // DOUBLE_SINGLE_TAP は "pepper" と入力することと、'pp' と入力したときに実際に + // TD_DOUBLE_SINGLE_TAP は "pepper" と入力することと、'pp' と入力したときに実際に // ダブルタップしたい場合とを区別するためのものです。 // この戻り値の推奨されるユースケースは、'ダブルタップ' 動作やマクロではなく、 // そのキーの2つのキー入力を送信したい場合です。 - if (state->interrupted) return DOUBLE_SINGLE_TAP; - else if (state->pressed) return DOUBLE_HOLD; - else return DOUBLE_TAP; + if (state->interrupted) return TD_DOUBLE_SINGLE_TAP; + else if (state->pressed) return TD_DOUBLE_HOLD; + else return TD_DOUBLE_TAP; } // 誰も同じ文字を3回入力しようとしていないと仮定します(少なくとも高速には)。 // タップダンスキーが 'KC_W' で、"www." と高速に入力したい場合、ここに例外を追加して - // 'TRIPLE_SINGLE_TAP' を返し、'DOUBLE_SINGLE_TAP' のようにその列挙型を定義する必要があります。 + // 'TD_TRIPLE_SINGLE_TAP' を返し、'TD_DOUBLE_SINGLE_TAP' のようにその列挙型を定義する必要があります。 if (state->count == 3) { - if (state->interrupted || !state->pressed) return TRIPLE_TAP; - else return TRIPLE_HOLD; - } else return 8; // マジックナンバー。いつかこのメソッドはより多くの押下に対して機能するよう拡張されるでしょう + if (state->interrupted || !state->pressed) return TD_TRIPLE_TAP; + else return TD_TRIPLE_HOLD; + } else return TD_UNKNOWN; } -//'x' タップダンスの 'tap' のインスタンスを生成します。 -static tap xtap_state = { +//'x' タップダンスの 'td_tap_t' のインスタンスを生成します。 +static td_tap_t xtap_state = { .is_press_action = true, - .state = 0 + .state = TD_NONE }; void x_finished(qk_tap_dance_state_t *state, void *user_data) { xtap_state.state = cur_dance(state); switch (xtap_state.state) { - case SINGLE_TAP: register_code(KC_X); break; - case SINGLE_HOLD: register_code(KC_LCTRL); break; - case DOUBLE_TAP: register_code(KC_ESC); break; - case DOUBLE_HOLD: register_code(KC_LALT); break; + case TD_SINGLE_TAP: register_code(KC_X); break; + case TD_SINGLE_HOLD: register_code(KC_LCTRL); break; + case TD_DOUBLE_TAP: register_code(KC_ESC); break; + case TD_DOUBLE_HOLD: register_code(KC_LALT); break; // 最後の case は高速入力用です。キーが `f` であると仮定します: // 例えば、`buffer` という単語を入力するとき、`Esc` ではなく `ff` を送信するようにします。 // 高速入力時に `ff` と入力するには、次の文字は `TAPPING_TERM` 以内に入力する必要があります。 // `TAPPING_TERM` はデフォルトでは 200ms です。 - case DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); + case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); } } void x_reset(qk_tap_dance_state_t *state, void *user_data) { switch (xtap_state.state) { - case SINGLE_TAP: unregister_code(KC_X); break; - case SINGLE_HOLD: unregister_code(KC_LCTRL); break; - case DOUBLE_TAP: unregister_code(KC_ESC); break; - case DOUBLE_HOLD: unregister_code(KC_LALT); - case DOUBLE_SINGLE_TAP: unregister_code(KC_X); + case TD_SINGLE_TAP: unregister_code(KC_X); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTRL); break; + case TD_DOUBLE_TAP: unregister_code(KC_ESC); break; + case TD_DOUBLE_HOLD: unregister_code(KC_LALT); + case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X); } - xtap_state.state = 0; + xtap_state.state = TD_NONE; } qk_tap_dance_action_t tap_dance_actions[] = { @@ -357,9 +359,11 @@ enum td_keycodes { // 必要な数のタップダンス状態を含むタイプを定義します typedef enum { - SINGLE_TAP, - SINGLE_HOLD, - DOUBLE_SINGLE_TAP + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_SINGLE_TAP } td_state_t; // タップダンスの状態の型のグローバルインスタンスを作ります @@ -368,7 +372,7 @@ static td_state_t td_state; // タップダンス関数を宣言します: // 現在のタップダンスの状態を特定するための関数 -uint8_t cur_dance(qk_tap_dance_state_t *state); +td_state_t cur_dance(qk_tap_dance_state_t *state); // それぞれのタップダンスキーコードに適用する `finished` と `reset` 関数 void altlp_finished(qk_tap_dance_state_t *state, void *user_data); @@ -379,14 +383,14 @@ void altlp_reset(qk_tap_dance_state_t *state, void *user_data); ```c // 返却するタップダンス状態を特定します -uint8_t cur_dance(qk_tap_dance_state_t *state) { +td_state_t cur_dance(qk_tap_dance_state_t *state) { if (state->count == 1) { - if (state->interrupted || !state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; + if (state->interrupted || !state->pressed) return TD_SINGLE_TAP; + else return TD_SINGLE_HOLD; } - if (state->count == 2) return DOUBLE_SINGLE_TAP; - else return 3; // 上記で返却する最大の状態の値より大きい任意の数 + if (state->count == 2) return TD_DOUBLE_SINGLE_TAP; + else return TD_UNKNOWN; // 上記で返却する最大の状態の値より大きい任意の数 } // 定義する各タップダンスキーコードのとりうる状態を制御します: @@ -394,13 +398,13 @@ uint8_t cur_dance(qk_tap_dance_state_t *state) { void altlp_finished(qk_tap_dance_state_t *state, void *user_data) { td_state = cur_dance(state); switch (td_state) { - case SINGLE_TAP: + case TD_SINGLE_TAP: register_code16(KC_LPRN); break; - case SINGLE_HOLD: + case TD_SINGLE_HOLD: register_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_on(_MY_LAYER)` を使います break; - case DOUBLE_SINGLE_TAP: // タップ時間内に2つの括弧 `((` の入れ子を可能にします + case TD_DOUBLE_SINGLE_TAP: // タップ時間内に2つの括弧 `((` の入れ子を可能にします tap_code16(KC_LPRN); register_code16(KC_LPRN); } @@ -408,13 +412,13 @@ void altlp_finished(qk_tap_dance_state_t *state, void *user_data) { void altlp_reset(qk_tap_dance_state_t *state, void *user_data) { switch (td_state) { - case SINGLE_TAP: + case TD_SINGLE_TAP: unregister_code16(KC_LPRN); break; - case SINGLE_HOLD: + case TD_SINGLE_HOLD: unregister_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_off(_MY_LAYER)` を使います break; - case DOUBLE_SINGLE_TAP: + case TD_DOUBLE_SINGLE_TAP: unregister_code16(KC_LPRN); } } @@ -431,20 +435,22 @@ qk_tap_dance_action_t tap_dance_actions[] = { タップダンスは、MO(layer) と TG(layer) 機能を模倣することにも使用できます。この例では、1回タップすると `KC_QUOT` 、1回押してそのまま押し続けたら `MO(_MY_LAYER)` 、2回タップしたときは `TG(_MY_LAYER)` として機能するキーを設定します。 -最初のステップは、あなたの `keymap.c` ファイルの最初のあたりに以下のコードを追加します。 +最初のステップは、あなたの `keymap.c` ファイルの最初のあたりに以下のコードを追加することです。 ```c +// 必要な数のタップダンス状態のタイプを定義します +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP +} td_state_t; + typedef struct { bool is_press_action; - uint8_t state; -} tap; - -// 必要な数のタップダンス状態のタイプを定義します -enum { - SINGLE_TAP = 1, - SINGLE_HOLD, - DOUBLE_TAP -}; + td_state_t state; +} td_tap_t; enum { QUOT_LAYR, // カスタムタップダンスキー。他のタップダンスキーはこの列挙型に追加します @@ -453,7 +459,7 @@ enum { // タップダンスキーで使われる関数を宣言します // 全てのタップダンスに関連する関数 -uint8_t cur_dance(qk_tap_dance_state_t *state); +td_state_t cur_dance(qk_tap_dance_state_t *state); // 個別のタップダンスに関連する関数 void ql_finished(qk_tap_dance_state_t *state, void *user_data); @@ -464,31 +470,31 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data); ```c // 現在のタップダンスの状態を決定します -uint8_t cur_dance(qk_tap_dance_state_t *state) { +td_state_t cur_dance(qk_tap_dance_state_t *state) { if (state->count == 1) { - if (!state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; - } else if (state->count == 2) return DOUBLE_TAP; - else return 8; + if (!state->pressed) return TD_SINGLE_TAP; + else return TD_SINGLE_HOLD; + } else if (state->count == 2) return TD_DOUBLE_TAP; + else return TD_UNKNOWN; } // この例のタップダンスキーに関連付けられた "tap" 構造体を初期化します -static tap ql_tap_state = { +static td_tap_t ql_tap_state = { .is_press_action = true, - .state = 0 + .state = TD_NONE }; // タップダンスキーの動作をコントロールする関数 void ql_finished(qk_tap_dance_state_t *state, void *user_data) { ql_tap_state.state = cur_dance(state); switch (ql_tap_state.state) { - case SINGLE_TAP: + case TD_SINGLE_TAP: tap_code(KC_QUOT); break; - case SINGLE_HOLD: + case TD_SINGLE_HOLD: layer_on(_MY_LAYER); break; - case DOUBLE_TAP: + case TD_DOUBLE_TAP: // レイヤーが既にセットされているか確認します if (layer_state_is(_MY_LAYER)) { // レイヤーが既にセットされていたら、オフにします。 @@ -503,10 +509,10 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) { void ql_reset(qk_tap_dance_state_t *state, void *user_data) { // キーを押し続けていて今離したら、レイヤーをオフに切り替えます。 - if (ql_tap_state.state == SINGLE_HOLD) { + if (ql_tap_state.state == TD_SINGLE_HOLD) { layer_off(_MY_LAYER); } - ql_tap_state.state = 0; + ql_tap_state.state = TD_NONE; } // タップダンスキーを機能に関連付けます @@ -519,7 +525,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { `cur_dance()` と `ql_tap_state` の使い方は、上の例と似ています。 -`ql_finished` 関数における `case:SINGLE_TAP` は、上の例と似ています。`SINGLE_HOLD` の case では、`ql_reset()` と連動してタップダンスキーを押している間 `_MY_LAYER` に切り替わり、キーを離した時に `_MY_LAYER` から離れます。これは、`MO(_MY_LAYER)` に似ています。`DOUBLE_TAP` の case では、`_MY_LAYER` がアクティブレイヤーかどうかを確認することによって動きます。そして、その結果に基づいてレイヤーのオン・オフをトグルします。これは `TG(_MY_LAYER)` に似ています。 +`ql_finished` 関数における `case: TD_SINGLE_TAP` は、上の例と似ています。`TD_SINGLE_HOLD` の case では、`ql_reset()` と連動してタップダンスキーを押している間 `_MY_LAYER` に切り替わり、キーを離した時に `_MY_LAYER` から離れます。これは、`MO(_MY_LAYER)` に似ています。`TD_DOUBLE_TAP` の case では、`_MY_LAYER` がアクティブレイヤーかどうかを確認することによって動きます。そして、その結果に基づいてレイヤーのオン・オフをトグルします。これは `TG(_MY_LAYER)` に似ています。 `tap_dance_actions[]` は、上の例に似ています。 `ACTION_TAP_DANCE_FN_ADVANCED()` の代わりに `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` を使ったことに注意してください。 この理由は、私は、非タップダンスキーを使うにあたり `TAPPING_TERM` が短い(175ミリ秒以内)方が好きなのですが、タップダンスのアクションを確実に完了させるには短すぎるとわかったからです——そのため、ここでは時間を275ミリ秒に増やしています。 From 33587254a02e8c87f1c4c26338e77659ef477742 Mon Sep 17 00:00:00 2001 From: Matthias Liffers Date: Wed, 18 Aug 2021 08:33:28 +0800 Subject: [PATCH 274/328] [Keyboard] Fix pins, add VIA support for Stream Cheap 2x4 (#14001) Co-authored-by: Drashna Jaelre --- keyboards/handwired/stream_cheap/2x4/2x4.h | 4 +- keyboards/handwired/stream_cheap/2x4/config.h | 9 ++-- .../stream_cheap/2x4/keymaps/via/keymap.c | 43 +++++++++++++++++++ .../stream_cheap/2x4/keymaps/via/rules.mk | 1 + 4 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 keyboards/handwired/stream_cheap/2x4/keymaps/via/keymap.c create mode 100644 keyboards/handwired/stream_cheap/2x4/keymaps/via/rules.mk diff --git a/keyboards/handwired/stream_cheap/2x4/2x4.h b/keyboards/handwired/stream_cheap/2x4/2x4.h index 07856044f24b..37d37af728d8 100644 --- a/keyboards/handwired/stream_cheap/2x4/2x4.h +++ b/keyboards/handwired/stream_cheap/2x4/2x4.h @@ -3,8 +3,8 @@ #include "quantum.h" #define LAYOUT_ortho_2x4(\ - K00, K01, K02,K03, \ - K04, K05, K06,K07 \ + K00, K01, K02, K03, \ + K04, K05, K06, K07 \ ) \ { \ { K00,K01,K02,K03}, \ diff --git a/keyboards/handwired/stream_cheap/2x4/config.h b/keyboards/handwired/stream_cheap/2x4/config.h index 14b4d9e36845..eb6fcbce1109 100644 --- a/keyboards/handwired/stream_cheap/2x4/config.h +++ b/keyboards/handwired/stream_cheap/2x4/config.h @@ -3,19 +3,18 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0x7363 // Stream Cheap #define PRODUCT_ID 0x1214 #define DEVICE_VER 0x0001 -#define MANUFACTURER Kyle Hart -#define PRODUCT Stream Cheap 2x4 +#define MANUFACTURER Stream Cheap +#define PRODUCT 2x4 /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 /* define direct pins used */ -#define DIRECT_PINS { { B5,D7,C6,D1}, { B4,E6,D4,D0} } - +#define DIRECT_PINS { { D1,D0,D4,C6}, { D7,E6,B4,B5} } /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 diff --git a/keyboards/handwired/stream_cheap/2x4/keymaps/via/keymap.c b/keyboards/handwired/stream_cheap/2x4/keymaps/via/keymap.c new file mode 100644 index 000000000000..7f952a7bd219 --- /dev/null +++ b/keyboards/handwired/stream_cheap/2x4/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 Matthias Liffers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + NORMAL_LAYER, + SECOND_LAYER, + THIRD_LAYER, + FOURTH_LAYER +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [NORMAL_LAYER] = LAYOUT_ortho_2x4( + KC_A, KC_A, KC_A, TO(3), + KC_A, KC_A, KC_A, TO(1) + ), + [SECOND_LAYER] = LAYOUT_ortho_2x4( + KC_B, KC_B, KC_B, TO(0), + KC_B, KC_B, KC_B, TO(2) + ), + [THIRD_LAYER] = LAYOUT_ortho_2x4( + KC_C, KC_C, KC_C, TO(1), + KC_C, KC_C, KC_C, TO(3) + ), + [FOURTH_LAYER] = LAYOUT_ortho_2x4( + KC_D, KC_D, KC_D, TO(2), + KC_D, KC_D, KC_D, TO(0) + ) +}; diff --git a/keyboards/handwired/stream_cheap/2x4/keymaps/via/rules.mk b/keyboards/handwired/stream_cheap/2x4/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/handwired/stream_cheap/2x4/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes From b51a187d774ec1b8e976d4f968ccc4448026b065 Mon Sep 17 00:00:00 2001 From: AnthonyL Date: Wed, 18 Aug 2021 01:27:02 -0400 Subject: [PATCH 275/328] [Keyboard] Use Bootmagic Lite on Montex (#14036) Co-authored-by: Anthony Lowery --- keyboards/montex/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/montex/rules.mk b/keyboards/montex/rules.mk index 5a286ce0f1d0..e2f9c83102c3 100644 --- a/keyboards/montex/rules.mk +++ b/keyboards/montex/rules.mk @@ -7,7 +7,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug From b21e0930570f763476f5d89e300a8250e0ca94b1 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 18 Aug 2021 08:50:25 +0000 Subject: [PATCH 276/328] Setta21 Configurator Fix (#14055) * info.json: add line breaks for rows * info.json: correct key sequence * info.json: correct width dimension --- keyboards/setta21/info.json | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/keyboards/setta21/info.json b/keyboards/setta21/info.json index a1143fb03de9..d7d0e5295cc9 100644 --- a/keyboards/setta21/info.json +++ b/keyboards/setta21/info.json @@ -1,9 +1,9 @@ { - "keyboard_name": "setta21", - "url": "https://salicylic-acid3.hatenablog.com/", - "maintainer": "Salicylic_acid3", - "width": 18.25, - "height": 6.25, + "keyboard_name": "setta21", + "url": "https://salicylic-acid3.hatenablog.com/", + "maintainer": "Salicylic_acid3", + "width": 4, + "height": 6.25, "layouts": { "LAYOUT_numpad_6x4": { "layout": [ @@ -11,23 +11,28 @@ {"label":"F2", "x":1, "y":0}, {"label":"\uff1d", "x":2, "y":0}, {"label":"Del", "x":3, "y":0}, + {"label":"Num Lock", "x":0, "y":1.25}, {"label":"/", "x":1, "y":1.25}, {"label":"*", "x":2, "y":1.25}, {"label":"-", "x":3, "y":1.25}, + {"label":"7", "x":0, "y":2.25}, {"label":"8", "x":1, "y":2.25}, {"label":"9", "x":2, "y":2.25}, - {"label":"+", "x":3, "y":2.25, "h":2}, + {"label":"4", "x":0, "y":3.25}, {"label":"5", "x":1, "y":3.25}, {"label":"6", "x":2, "y":3.25}, + {"label":"+", "x":3, "y":2.25, "h":2}, + {"label":"1", "x":0, "y":4.25}, {"label":"2", "x":1, "y":4.25}, {"label":"3", "x":2, "y":4.25}, - {"label":"Enter", "x":3, "y":4.25, "h":2}, + {"label":"0", "x":0, "y":5.25, "w":2}, - {"label":".", "x":2, "y":5.25} + {"label":".", "x":2, "y":5.25}, + {"label":"Enter", "x":3, "y":4.25, "h":2} ] } } From 0daccebaf9c5d3b5540643aa452f989bc5a74449 Mon Sep 17 00:00:00 2001 From: Logan Butler <8854426+MatchstickWorks@users.noreply.github.com> Date: Wed, 18 Aug 2021 10:34:43 -0700 Subject: [PATCH 277/328] [Keyboard] Fixes to info.json and rules.mk for Southpad n(#14053) Making info.json work better with the QMK Configurator and updating rules to work properly with the correct bootloader. --- keyboards/matchstickworks/southpad/info.json | 49 +++++++++++--------- keyboards/matchstickworks/southpad/rules.mk | 2 +- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/keyboards/matchstickworks/southpad/info.json b/keyboards/matchstickworks/southpad/info.json index a2a509fce3be..70a01d0f2d4d 100644 --- a/keyboards/matchstickworks/southpad/info.json +++ b/keyboards/matchstickworks/southpad/info.json @@ -5,29 +5,34 @@ "width": 4, "height": 6, "layouts": { - "LAYOUT": { + "LAYOUT_numpad_6x4_southpaw": { "layout": [ - {"label":"K00 (B3,B0)", "x":0, "y":0}, - {"label":"K01 (B3,B1)", "x":1, "y":0}, - {"label":"K02 (B3,B2)", "x":2, "y":0}, - {"label":"K03 (B3,B4)", "x":3, "y":0}, - {"label":"K10 (B5,B0)", "x":0, "y":1}, - {"label":"K11 (B5,B1)", "x":1, "y":1}, - {"label":"K12 (B5,B2)", "x":2, "y":1}, - {"label":"K13 (B5,B4)", "x":3, "y":1}, - {"label":"K30 (B7,B0)", "x":0, "y":2, "h":2}, - {"label":"K21 (B6,B1)", "x":1, "y":2}, - {"label":"K22 (B6,B2)", "x":2, "y":2}, - {"label":"K23 (B6,B4)", "x":3, "y":2}, - {"label":"K31 (B7,B1)", "x":1, "y":3}, - {"label":"K32 (B7,B2)", "x":2, "y":3}, - {"label":"K33 (B7,B4)", "x":3, "y":3}, - {"label":"K50 (C6,B0)", "x":0, "y":4, "h":2}, - {"label":"K41 (C7,B1)", "x":1, "y":4}, - {"label":"K42 (C7,B2)", "x":2, "y":4}, - {"label":"K43 (C7,B4)", "x":3, "y":4}, - {"label":"K51 (C6,B1)", "x":1, "y":5}, - {"label":"K53 (C6,B4)", "x":2, "y":5, "w":2} + {"label":"Bksp", "x":0, "y":0}, + {"label":"=", "x":1, "y":0}, + {"label":"(", "x":2, "y":0}, + {"label":")", "x":3, "y":0}, + + {"label":"-", "x":0, "y":1}, + {"label":"*", "x":1, "y":1}, + {"label":"/", "x":2, "y":1}, + {"label":"Num Lock", "x":3, "y":1}, + + {"label":"+", "x":0, "y":2, "h":2}, + {"label":"9", "x":1, "y":2}, + {"label":"8", "x":2, "y":2}, + {"label":"7", "x":3, "y":2}, + + {"label":"6", "x":1, "y":3}, + {"label":"5", "x":2, "y":3}, + {"label":"4", "x":3, "y":3}, + + {"label":"Enter", "x":0, "y":4, "h":2}, + {"label":"3", "x":1, "y":4}, + {"label":"2", "x":2, "y":4}, + {"label":"1", "x":3, "y":4}, + + {"label":".", "x":1, "y":5}, + {"label":"0", "x":2, "y":5, "w":2} ] } } diff --git a/keyboards/matchstickworks/southpad/rules.mk b/keyboards/matchstickworks/southpad/rules.mk index 2641e3d339f7..dbea1a205d64 100644 --- a/keyboards/matchstickworks/southpad/rules.mk +++ b/keyboards/matchstickworks/southpad/rules.mk @@ -2,7 +2,7 @@ MCU = atmega32u2 # Bootloader selection -BOOTLOADER = bootloadHID +BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable From 62009074173a40605cea5ebe28dd084b855c1ef4 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 19 Aug 2021 00:33:26 +0000 Subject: [PATCH 278/328] cest73 TKM Configurator Fixes (#14066) * info.json: update human-friendly formatting * correct info.json layout data - adds missing objects for: - split Backspace - split Numpad Plus - split Numpad Enter - split Left Shift - ANSI Backslash - split Numpad 0 - deletes Mod1 object (not supported in source) - correct key object sequence --- keyboards/cest73/tkm/info.json | 216 +++++++++++++++++---------------- 1 file changed, 111 insertions(+), 105 deletions(-) diff --git a/keyboards/cest73/tkm/info.json b/keyboards/cest73/tkm/info.json index 1118be836e4f..87295a663f46 100644 --- a/keyboards/cest73/tkm/info.json +++ b/keyboards/cest73/tkm/info.json @@ -7,116 +7,122 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"Fn", "x":0, "y":0}, - {"label":"PrtSc", "x":1, "y":0}, - {"label":"Scroll Lock", "x":2, "y":0}, - {"label":"Pause", "x":3, "y":0}, - {"label":"Esc", "x":4.5, "y":0}, - {"label":"F1", "x":6, "y":0}, - {"label":"F2", "x":7, "y":0}, - {"label":"F3", "x":8, "y":0}, - {"label":"F4", "x":9, "y":0}, - {"label":"F5", "x":10.25, "y":0}, - {"label":"F6", "x":11.25, "y":0}, - {"label":"F7", "x":12.25, "y":0}, - {"label":"F8", "x":13.25, "y":0}, - {"label":"F9", "x":14.5, "y":0}, - {"label":"F10", "x":15.5, "y":0}, - {"label":"F11", "x":16.5, "y":0}, - {"label":"F12", "x":17.5, "y":0}, - {"label":"Home", "x":19, "y":0}, - {"label":"PgUp", "x":20, "y":0}, + {"label":"Fn", "x":0, "y":0}, + {"label":"PrtSc", "x":1, "y":0}, + {"label":"Scroll Lock", "x":2, "y":0}, + {"label":"Pause", "x":3, "y":0}, + {"label":"Esc", "x":4.5, "y":0}, + {"label":"F1", "x":6, "y":0}, + {"label":"F2", "x":7, "y":0}, + {"label":"F3", "x":8, "y":0}, + {"label":"F4", "x":9, "y":0}, + {"label":"F5", "x":10.25, "y":0}, + {"label":"F6", "x":11.25, "y":0}, + {"label":"F7", "x":12.25, "y":0}, + {"label":"F8", "x":13.25, "y":0}, + {"label":"F9", "x":14.5, "y":0}, + {"label":"F10", "x":15.5, "y":0}, + {"label":"F11", "x":16.5, "y":0}, + {"label":"F12", "x":17.5, "y":0}, + {"label":"Home", "x":19, "y":0}, + {"label":"PgUp", "x":20, "y":0}, - {"label":"-", "x":0, "y":1.5}, - {"label":"*", "x":1, "y":1.5}, - {"label":"/", "x":2, "y":1.5}, - {"label":"Num Lock", "x":3, "y":1.5}, - {"label":"~", "x":4.5, "y":1.5}, - {"label":"!", "x":5.5, "y":1.5}, - {"label":"\"", "x":6.5, "y":1.5}, - {"label":"\u00a3", "x":7.5, "y":1.5}, - {"label":"$", "x":8.5, "y":1.5}, - {"label":"%", "x":9.5, "y":1.5}, - {"label":"^", "x":10.5, "y":1.5}, - {"label":"&", "x":11.5, "y":1.5}, - {"label":"*", "x":12.5, "y":1.5}, - {"label":"(", "x":13.5, "y":1.5}, - {"label":")", "x":14.5, "y":1.5}, - {"label":"_", "x":15.5, "y":1.5}, - {"label":"+", "x":16.5, "y":1.5}, - {"label":"Backspace", "x":17.5, "y":1.5, "w":2}, - {"label":"Insert", "x":20, "y":1.5}, + {"label":"-", "x":0, "y":1.5}, + {"label":"*", "x":1, "y":1.5}, + {"label":"/", "x":2, "y":1.5}, + {"label":"Num Lock", "x":3, "y":1.5}, + {"label":"~", "x":4.5, "y":1.5}, + {"label":"!", "x":5.5, "y":1.5}, + {"label":"\"", "x":6.5, "y":1.5}, + {"label":"\u00a3", "x":7.5, "y":1.5}, + {"label":"$", "x":8.5, "y":1.5}, + {"label":"%", "x":9.5, "y":1.5}, + {"label":"^", "x":10.5, "y":1.5}, + {"label":"&", "x":11.5, "y":1.5}, + {"label":"*", "x":12.5, "y":1.5}, + {"label":"(", "x":13.5, "y":1.5}, + {"label":")", "x":14.5, "y":1.5}, + {"label":"_", "x":15.5, "y":1.5}, + {"label":"+", "x":16.5, "y":1.5}, + {"label":"Backspace", "x":17.5, "y":1.5}, + {"label":"Backspace", "x":18.5, "y":1.5}, + {"label":"Insert", "x":20, "y":1.5}, - {"label":"+", "x":0, "y":2.5, "h":2}, - {"label":"9", "x":1, "y":2.5}, - {"label":"8", "x":2, "y":2.5}, - {"label":"7", "x":3, "y":2.5}, - {"label":"Tab", "x":4.5, "y":2.5, "w":1.5}, - {"label":"Q", "x":6, "y":2.5}, - {"label":"W", "x":7, "y":2.5}, - {"label":"E", "x":8, "y":2.5}, - {"label":"R", "x":9, "y":2.5}, - {"label":"T", "x":10, "y":2.5}, - {"label":"Y", "x":11, "y":2.5}, - {"label":"U", "x":12, "y":2.5}, - {"label":"I", "x":13, "y":2.5}, - {"label":"O", "x":14, "y":2.5}, - {"label":"P", "x":15, "y":2.5}, - {"label":"{", "x":16, "y":2.5}, - {"label":"}", "x":17, "y":2.5}, - {"label":"Enter", "x":18.25, "y":2.5, "w":1.25, "h":2}, - {"label":"Delete", "x":20, "y":2.5}, + {"label":"+", "x":0, "y":2.5}, + {"label":"9", "x":1, "y":2.5}, + {"label":"8", "x":2, "y":2.5}, + {"label":"7", "x":3, "y":2.5}, + {"label":"Tab", "x":4.5, "y":2.5, "w":1.5}, + {"label":"Q", "x":6, "y":2.5}, + {"label":"W", "x":7, "y":2.5}, + {"label":"E", "x":8, "y":2.5}, + {"label":"R", "x":9, "y":2.5}, + {"label":"T", "x":10, "y":2.5}, + {"label":"Y", "x":11, "y":2.5}, + {"label":"U", "x":12, "y":2.5}, + {"label":"I", "x":13, "y":2.5}, + {"label":"O", "x":14, "y":2.5}, + {"label":"P", "x":15, "y":2.5}, + {"label":"{", "x":16, "y":2.5}, + {"label":"}", "x":17, "y":2.5}, + {"label":"Backslash", "x":18, "y":2.5, "w":1.5}, + {"label":"Delete", "x":20, "y":2.5}, - {"label":"6", "x":1, "y":3.5}, - {"label":"5", "x":2, "y":3.5}, - {"label":"4", "x":3, "y":3.5}, - {"label":"CAPS", "x":4.5, "y":3.5, "w":1.25}, - {"label":"A", "x":6.25, "y":3.5}, - {"label":"S", "x":7.25, "y":3.5}, - {"label":"D", "x":8.25, "y":3.5}, - {"label":"F", "x":9.25, "y":3.5}, - {"label":"G", "x":10.25, "y":3.5}, - {"label":"H", "x":11.25, "y":3.5}, - {"label":"J", "x":12.25, "y":3.5}, - {"label":"K", "x":13.25, "y":3.5}, - {"label":"L", "x":14.25, "y":3.5}, - {"label":":", "x":15.25, "y":3.5}, - {"label":"@", "x":16.25, "y":3.5}, - {"label":"|", "x":17.25, "y":3.5}, - {"label":"PgDn", "x":20, "y":3.5}, + {"label":"+", "x":0, "y":3.5}, + {"label":"6", "x":1, "y":3.5}, + {"label":"5", "x":2, "y":3.5}, + {"label":"4", "x":3, "y":3.5}, + {"label":"CAPS", "x":4.5, "y":3.5, "w":1.25}, + {"label":"A", "x":6.25, "y":3.5}, + {"label":"S", "x":7.25, "y":3.5}, + {"label":"D", "x":8.25, "y":3.5}, + {"label":"F", "x":9.25, "y":3.5}, + {"label":"G", "x":10.25, "y":3.5}, + {"label":"H", "x":11.25, "y":3.5}, + {"label":"J", "x":12.25, "y":3.5}, + {"label":"K", "x":13.25, "y":3.5}, + {"label":"L", "x":14.25, "y":3.5}, + {"label":":", "x":15.25, "y":3.5}, + {"label":"@", "x":16.25, "y":3.5}, + {"label":"|", "x":17.25, "y":3.5}, + {"label":"Enter", "x":18.25, "y":3.5, "w":1.25}, + {"label":"PgDn", "x":20, "y":3.5}, - {"label":"Enter", "x":0, "y":4.5, "h":2}, - {"label":"3", "x":1, "y":4.5}, - {"label":"2", "x":2, "y":4.5}, - {"label":"1", "x":3, "y":4.5}, - {"label":"Shift", "x":4.5, "y":4.5, "w":2.25}, - {"label":"Z", "x":6.75, "y":4.5}, - {"label":"X", "x":7.75, "y":4.5}, - {"label":"C", "x":8.75, "y":4.5}, - {"label":"V", "x":9.75, "y":4.5}, - {"label":"B", "x":10.75, "y":4.5}, - {"label":"N", "x":11.75, "y":4.5}, - {"label":"M", "x":12.75, "y":4.5}, - {"label":"<", "x":13.75, "y":4.5}, - {"label":">", "x":14.75, "y":4.5}, - {"label":"?", "x":15.75, "y":4.5}, - {"label":"Shift", "x":16.75, "y":4.5, "w":1.75}, - {"label":"End", "x":20, "y":4.5}, - {"label":"\u2191", "x":18.75, "y":4.75}, + {"label":"Enter", "x":0, "y":4.5}, + {"label":"3", "x":1, "y":4.5}, + {"label":"2", "x":2, "y":4.5}, + {"label":"1", "x":3, "y":4.5}, + {"label":"Shift", "x":4.5, "y":4.5, "w":1.25}, + {"label":"|", "x":5.75, "y":4.5}, + {"label":"Z", "x":6.75, "y":4.5}, + {"label":"X", "x":7.75, "y":4.5}, + {"label":"C", "x":8.75, "y":4.5}, + {"label":"V", "x":9.75, "y":4.5}, + {"label":"B", "x":10.75, "y":4.5}, + {"label":"N", "x":11.75, "y":4.5}, + {"label":"M", "x":12.75, "y":4.5}, + {"label":"<", "x":13.75, "y":4.5}, + {"label":">", "x":14.75, "y":4.5}, + {"label":"?", "x":15.75, "y":4.5}, + {"label":"Shift", "x":16.75, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":18.75, "y":4.75}, + {"label":"End", "x":20, "y":4.5}, - {"label":".", "x":1, "y":5.5}, - {"label":"0", "x":2, "y":5.5, "w":2}, - {"label":"Ctrl", "x":4.5, "y":5.5, "w":1.25}, - {"label":"Win", "x":5.75, "y":5.5}, - {"label":"Alt", "x":6.75, "y":5.5, "w":1.25}, - {"label":"Mod1", "x":8, "y":5.5, "w":1.5}, - {"label":"Space", "x":8, "y":5.5, "w":6.25}, - {"label":"AltGr", "x":14.25, "y":5.5}, - {"label":"Menu", "x":15.25, "y":5.5}, - {"label":"Ctrl", "x":16.25, "y":5.5, "w":1.25}, - {"label":"\u2190", "x":17.75, "y":5.75}, - {"label":"\u2193", "x":18.75, "y":5.75}, - {"label":"\u2192", "x":19.75, "y":5.75}] + {"label":"Enter", "x":0, "y":5.5}, + {"label":".", "x":1, "y":5.5}, + {"label":",", "x":2, "y":5.5}, + {"label":"0", "x":3, "y":5.5}, + {"label":"Ctrl", "x":4.5, "y":5.5, "w":1.25}, + {"label":"Win", "x":5.75, "y":5.5}, + {"label":"Alt", "x":6.75, "y":5.5, "w":1.25}, + {"label":"Space", "x":8, "y":5.5, "w":6.25}, + {"label":"AltGr", "x":14.25, "y":5.5}, + {"label":"Menu", "x":15.25, "y":5.5}, + {"label":"Ctrl", "x":16.25, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":17.75, "y":5.75}, + {"label":"\u2193", "x":18.75, "y":5.75}, + {"label":"\u2192", "x":19.75, "y":5.75} + ] } } } From ac1309cd7529937c64cd2d1bdd7cdd20280f2701 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 19 Aug 2021 00:37:53 +0000 Subject: [PATCH 279/328] Feels Feels65 Refactor (#14032) * rename layout macros The existing layout macro names were not accurate to QMK's standard for the names that were given. - rename LAYOUT_65_ansi_blocker to LAYOUT_65_ansi_blocker_split_bs - rename LAYOUT_65_iso_blocker to LAYOUT_65_iso_blocker_split_bs * correct info.json data * add LAYOUT_65_iso_blocker * add LAYOUT_65_ansi_blocker * add Community Layout support * update grid alignment on layout macros * add LAYOUT_all * refactor default and via keymaps - use LAYOUT_all macro - use _______ for KC_TRNS - via keymap fixes - swap KC_BSPC for KC_DEL on Layer 1 (matches default keymap) - remove KC_PGUP from Layers 2 and 3 (makes both layers fully transparent) --- keyboards/feels/feels65/feels65.h | 85 +++- keyboards/feels/feels65/info.json | 411 +++++++++++++++++- .../feels/feels65/keymaps/default/keymap.c | 20 +- keyboards/feels/feels65/keymaps/via/keymap.c | 46 +- keyboards/feels/feels65/rules.mk | 2 + 5 files changed, 488 insertions(+), 76 deletions(-) diff --git a/keyboards/feels/feels65/feels65.h b/keyboards/feels/feels65/feels65.h index be11e22ccd96..21f5ab71889e 100644 --- a/keyboards/feels/feels65/feels65.h +++ b/keyboards/feels/feels65/feels65.h @@ -19,32 +19,77 @@ #define XXX KC_NO +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ + k40, k42, k43, k46, k4A, k4B, k4D, k4E, k4F \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + {k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + {k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \ + {k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F } \ +} + #define LAYOUT_65_iso_blocker( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ - k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ - k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ - k40, k42, k43, k46, k4A, k4B, k4D, k4E, k4F \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0F, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ + k40, k42, k43, k46, k4A, k4B, k4D, k4E, k4F \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX, k0F }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, XXX, k1F }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \ + { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F } \ +} + +#define LAYOUT_65_iso_blocker_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ + k40, k42, k43, k46, k4A, k4B, k4D, k4E, k4F \ ) \ { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ - { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, XXX, k1F }, \ - { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \ - { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, XXX, k1F }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \ + { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F } \ } #define LAYOUT_65_ansi_blocker( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ - k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \ - k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2E, k2F, \ - k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ - k40, k42, k43, k46, k4A, k4B, k4D, k4E, k4F \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0F, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2E, k2F, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ + k40, k42, k43, k46, k4A, k4B, k4D, k4E, k4F \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX, k0F }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E, k2F }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \ + { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F } \ +} + +#define LAYOUT_65_ansi_blocker_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2E, k2F, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ + k40, k42, k43, k46, k4A, k4B, k4D, k4E, k4F \ ) \ { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ - { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ - { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E, k2F }, \ - { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \ - { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E, k2F }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \ + { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F } \ } diff --git a/keyboards/feels/feels65/info.json b/keyboards/feels/feels65/info.json index 29692c4c0799..02cc735a25c9 100644 --- a/keyboards/feels/feels65/info.json +++ b/keyboards/feels/feels65/info.json @@ -1,26 +1,391 @@ { - "keyboard_name": "Feels65", - "url": "https://github.com/swiftrax", - "maintainer": "Swiftrax", - "width": 16, - "height": 6, - "layouts": { - "LAYOUT_65_iso_blocker": { - "layout": [ - {"label":"~", "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}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "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}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":1}, - {"label":"Caps Lock", "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}, {"x":12.75, "y":2}, {"x":15, "y":2}, - {"x":0, "y":3, "w":1.25}, {"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":"\u2191", "x":14, "y":3}, {"x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} - ] - }, - "LAYOUT_65_ansi_blocker": { - "layout": [ - {"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}, {"x":15, "y":1}, - {"label":"~", "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}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, - {"label":"Caps Lock", "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}, {"x":12.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"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":"\u2191", "x":14, "y":3}, {"x":15, "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":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4} - ] + "keyboard_name": "Feels65", + "url": "https://github.com/swiftrax", + "maintainer": "Swiftrax", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":2, "w":1.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } } - } } diff --git a/keyboards/feels/feels65/keymaps/default/keymap.c b/keyboards/feels/feels65/keymaps/default/keymap.c index 480173ee1738..d767872ffff7 100644 --- a/keyboards/feels/feels65/keymaps/default/keymap.c +++ b/keyboards/feels/feels65/keymaps/default/keymap.c @@ -17,18 +17,18 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_blocker( + [0] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_65_ansi_blocker( + [1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_INS, - KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, - RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + RESET, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ), -}; \ No newline at end of file +}; diff --git a/keyboards/feels/feels65/keymaps/via/keymap.c b/keyboards/feels/feels65/keymaps/via/keymap.c index 144cf061a64c..a8b859e9e260 100644 --- a/keyboards/feels/feels65/keymaps/via/keymap.c +++ b/keyboards/feels/feels65/keymaps/via/keymap.c @@ -17,32 +17,32 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_blocker( + [0] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_65_ansi_blocker( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC, KC_INS, - KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, - RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_INS, + _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + RESET, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ), - [2] = LAYOUT_65_ansi_blocker( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_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, KC_TRNS + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_65_ansi_blocker( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_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, KC_TRNS + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/feels/feels65/rules.mk b/keyboards/feels/feels65/rules.mk index cb34a6b40565..914e3429e984 100644 --- a/keyboards/feels/feels65/rules.mk +++ b/keyboards/feels/feels65/rules.mk @@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output + +LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_iso_blocker 65_iso_blocker_split_bs From 068ab2800cd4eccc30b312f25d2959e23f31e9fb Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 19 Aug 2021 00:42:17 +0000 Subject: [PATCH 280/328] Keebio Quefrency Configurator rework (#14060) * add info.json for Quefrency rev1 * add info.json for Quefrency rev2 * add info.json for Quefrency rev3 * add info.json for Quefrency rev4 * remove "global" Quefrency info.json * remove layout macro aliases from keyboard headers These were moved into the info.json files. --- keyboards/keebio/quefrency/rev1/info.json | 472 ++++++++++ .../keebio/quefrency/{ => rev2}/info.json | 85 +- keyboards/keebio/quefrency/rev2/rev2.h | 2 - keyboards/keebio/quefrency/rev3/info.json | 839 ++++++++++++++++++ keyboards/keebio/quefrency/rev3/rev3.h | 2 - keyboards/keebio/quefrency/rev4/info.json | 839 ++++++++++++++++++ keyboards/keebio/quefrency/rev4/rev4.h | 2 - 7 files changed, 2194 insertions(+), 47 deletions(-) create mode 100644 keyboards/keebio/quefrency/rev1/info.json rename keyboards/keebio/quefrency/{ => rev2}/info.json (93%) create mode 100644 keyboards/keebio/quefrency/rev3/info.json create mode 100644 keyboards/keebio/quefrency/rev4/info.json diff --git a/keyboards/keebio/quefrency/rev1/info.json b/keyboards/keebio/quefrency/rev1/info.json new file mode 100644 index 000000000000..cf3fa1087405 --- /dev/null +++ b/keyboards/keebio/quefrency/rev1/info.json @@ -0,0 +1,472 @@ +{ + "keyboard_name": "Quefrency rev1", + "url": "https://keeb.io", + "maintainer": "nooges", + "width": 19.25, + "height": 5, + "layouts": { + "LAYOUT": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "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": 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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Left", "x": 13, "y": 4 }, + { "label": "Down", "x": 14, "y": 4 }, + { "label": "Right", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "y": 0 }, + { "label": "Home", "x": 16, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + { "label": "End", "x": 16, "y": 1 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "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": 2.25 }, + { "label": "Page Up", "x": 16, "y": 2 }, + + { "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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + { "label": "Page Down", "x": 16, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Win", "x": 13, "y": 4 }, + { "label": "Left", "x": 14, "y": 4 }, + { "label": "Down", "x": 15, "y": 4 }, + { "label": "Right", "x": 16, "y": 4 } + ] + }, + "LAYOUT_60_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Left", "x": 15.25, "y": 4 }, + { "label": "Down", "x": 16.25, "y": 4 }, + { "label": "Right", "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_65_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + }, + "LAYOUT_all": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "NUHS", "x": 16, "y": 2 }, + { "label": "Enter", "x": 17, "y": 2, "w": 1.25 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "NUBS", "x": 3.5, "y": 3 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4 }, + { "label": "Space", "x": 8.25, "y": 4, "w": 1.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/keebio/quefrency/info.json b/keyboards/keebio/quefrency/rev2/info.json similarity index 93% rename from keyboards/keebio/quefrency/info.json rename to keyboards/keebio/quefrency/rev2/info.json index c187d30b3674..38bd7966d9db 100644 --- a/keyboards/keebio/quefrency/info.json +++ b/keyboards/keebio/quefrency/rev2/info.json @@ -1,9 +1,12 @@ { - "keyboard_name": "Quefrency", + "keyboard_name": "Quefrency rev2", "url": "https://keeb.io", "maintainer": "nooges", - "width": 17, + "width": 19.25, "height": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_60" + }, "layouts": { "LAYOUT_60": { "layout": [ @@ -207,8 +210,8 @@ { "label": "I", "x": 11.75, "y": 1 }, { "label": "O", "x": 12.75, "y": 1 }, { "label": "P", "x": 13.75, "y": 1 }, - { "label": "{", "x": 14.75, "y": 1 }, - { "label": "}", "x": 15.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, { "label": "F3", "x": 0, "y": 2 }, @@ -225,8 +228,8 @@ { "label": "J", "x": 11, "y": 2 }, { "label": "K", "x": 12, "y": 2 }, { "label": "L", "x": 13, "y": 2 }, - { "label": ":", "x": 14, "y": 2 }, - { "label": "\"", "x": 15, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, { "label": "F4", "x": 0, "y": 3 }, @@ -245,14 +248,14 @@ { "label": ".", "x": 13.5, "y": 3 }, { "label": "/", "x": 14.5, "y": 3 }, { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, - { "label": "Fn", "x": 17.25, "y": 3 }, + { "label": "Up", "x": 17.25, "y": 3 }, { "label": "F5", "x": 0, "y": 4 }, { "label": "F10", "x": 1, "y": 4 }, { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, @@ -284,7 +287,7 @@ { "label": "0", "x": 13.25, "y": 0 }, { "label": "-", "x": 14.25, "y": 0 }, { "label": "=", "x": 15.25, "y": 0 }, - { "label": "=", "x": 16.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, { "label": "Bksp", "x": 17.25, "y": 0 }, { "label": "Home", "x": 18.25, "y": 0 }, @@ -303,9 +306,9 @@ { "label": "I", "x": 11.75, "y": 1 }, { "label": "O", "x": 12.75, "y": 1 }, { "label": "P", "x": 13.75, "y": 1 }, - { "label": "{", "x": 14.75, "y": 1 }, - { "label": "}", "x": 15.75, "y": 1 }, - { "label": "|", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, { "label": "PgUp", "x": 18.25, "y": 1 }, { "label": "F3", "x": 0, "y": 2 }, @@ -322,8 +325,8 @@ { "label": "J", "x": 11, "y": 2 }, { "label": "K", "x": 12, "y": 2 }, { "label": "L", "x": 13, "y": 2 }, - { "label": ":", "x": 14, "y": 2 }, - { "label": "\"", "x": 15, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, { "label": "PgDn", "x": 18.25, "y": 2 }, @@ -350,8 +353,8 @@ { "label": "F10", "x": 1, "y": 4 }, { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, @@ -367,7 +370,7 @@ }, "LAYOUT_60_iso": { "layout": [ - { "label": "`", "x": 0, "y": 0 }, + { "label": "Esc", "x": 0, "y": 0 }, { "label": "1", "x": 1, "y": 0 }, { "label": "2", "x": 2, "y": 0 }, { "label": "3", "x": 3, "y": 0 }, @@ -448,7 +451,7 @@ }, "LAYOUT_65_iso": { "layout": [ - { "label": "`", "x": 0, "y": 0 }, + { "label": "Esc", "x": 0, "y": 0 }, { "label": "1", "x": 1, "y": 0 }, { "label": "2", "x": 2, "y": 0 }, { "label": "3", "x": 3, "y": 0 }, @@ -569,8 +572,8 @@ { "label": "I", "x": 11.75, "y": 1 }, { "label": "O", "x": 12.75, "y": 1 }, { "label": "P", "x": 13.75, "y": 1 }, - { "label": "{", "x": 14.75, "y": 1 }, - { "label": "}", "x": 15.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, { "label": "F3", "x": 0, "y": 2 }, { "label": "F8", "x": 1, "y": 2 }, @@ -586,8 +589,8 @@ { "label": "J", "x": 11, "y": 2 }, { "label": "K", "x": 12, "y": 2 }, { "label": "L", "x": 13, "y": 2 }, - { "label": ":", "x": 14, "y": 2 }, - { "label": "\"", "x": 15, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, { "label": "NUHS", "x": 16, "y": 2 }, { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, @@ -608,14 +611,14 @@ { "label": ".", "x": 13.5, "y": 3 }, { "label": "/", "x": 14.5, "y": 3 }, { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, - { "label": "Fn", "x": 17.25, "y": 3 }, + { "label": "Up", "x": 17.25, "y": 3 }, { "label": "F5", "x": 0, "y": 4 }, { "label": "F10", "x": 1, "y": 4 }, { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, @@ -647,7 +650,7 @@ { "label": "0", "x": 13.25, "y": 0 }, { "label": "-", "x": 14.25, "y": 0 }, { "label": "=", "x": 15.25, "y": 0 }, - { "label": "=", "x": 16.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, { "label": "Bksp", "x": 17.25, "y": 0 }, { "label": "Home", "x": 18.25, "y": 0 }, @@ -666,8 +669,8 @@ { "label": "I", "x": 11.75, "y": 1 }, { "label": "O", "x": 12.75, "y": 1 }, { "label": "P", "x": 13.75, "y": 1 }, - { "label": "{", "x": 14.75, "y": 1 }, - { "label": "}", "x": 15.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, { "label": "PgUp", "x": 18.25, "y": 1 }, { "label": "F3", "x": 0, "y": 2 }, @@ -684,8 +687,8 @@ { "label": "J", "x": 11, "y": 2 }, { "label": "K", "x": 12, "y": 2 }, { "label": "L", "x": 13, "y": 2 }, - { "label": ":", "x": 14, "y": 2 }, - { "label": "\"", "x": 15, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, { "label": "NUHS", "x": 16, "y": 2 }, { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, { "label": "PgDn", "x": 18.25, "y": 2 }, @@ -714,8 +717,8 @@ { "label": "F10", "x": 1, "y": 4 }, { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, @@ -748,7 +751,7 @@ { "label": "0", "x": 13.25, "y": 0 }, { "label": "-", "x": 14.25, "y": 0 }, { "label": "=", "x": 15.25, "y": 0 }, - { "label": "=", "x": 16.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, { "label": "Bksp", "x": 17.25, "y": 0 }, { "label": "Home", "x": 18.25, "y": 0 }, @@ -767,9 +770,9 @@ { "label": "I", "x": 11.75, "y": 1 }, { "label": "O", "x": 12.75, "y": 1 }, { "label": "P", "x": 13.75, "y": 1 }, - { "label": "{", "x": 14.75, "y": 1 }, - { "label": "}", "x": 15.75, "y": 1 }, - { "label": "|", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, { "label": "PgUp", "x": 18.25, "y": 1 }, { "label": "F3", "x": 0, "y": 2 }, @@ -786,8 +789,8 @@ { "label": "J", "x": 11, "y": 2 }, { "label": "K", "x": 12, "y": 2 }, { "label": "L", "x": 13, "y": 2 }, - { "label": ":", "x": 14, "y": 2 }, - { "label": "\"", "x": 15, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, { "label": "NUHS", "x": 16, "y": 2 }, { "label": "Enter", "x": 17, "y": 2, "w": 1.25 }, { "label": "PgDn", "x": 18.25, "y": 2 }, @@ -816,8 +819,8 @@ { "label": "F10", "x": 1, "y": 4 }, { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, { "label": "Space", "x": 7.25, "y": 4 }, { "label": "Space", "x": 8.25, "y": 4, "w": 1.25 }, diff --git a/keyboards/keebio/quefrency/rev2/rev2.h b/keyboards/keebio/quefrency/rev2/rev2.h index b9c2ef6b448f..2f57ac489fd4 100644 --- a/keyboards/keebio/quefrency/rev2/rev2.h +++ b/keyboards/keebio/quefrency/rev2/rev2.h @@ -31,8 +31,6 @@ { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ } -#define LAYOUT LAYOUT_60 // For backwards compatibility with Rev. 1 - #define LAYOUT_65( \ LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ diff --git a/keyboards/keebio/quefrency/rev3/info.json b/keyboards/keebio/quefrency/rev3/info.json new file mode 100644 index 000000000000..c14a083d8b4b --- /dev/null +++ b/keyboards/keebio/quefrency/rev3/info.json @@ -0,0 +1,839 @@ +{ + "keyboard_name": "Quefrency rev3", + "url": "https://keeb.io", + "maintainer": "nooges", + "width": 19.25, + "height": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_60" + }, + "layouts": { + "LAYOUT_60": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "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": 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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Left", "x": 13, "y": 4 }, + { "label": "Down", "x": 14, "y": 4 }, + { "label": "Right", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "y": 0 }, + { "label": "Home", "x": 16, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + { "label": "End", "x": 16, "y": 1 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "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": 2.25 }, + { "label": "Page Up", "x": 16, "y": 2 }, + + { "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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + { "label": "Page Down", "x": 16, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Win", "x": 13, "y": 4 }, + { "label": "Left", "x": 14, "y": 4 }, + { "label": "Down", "x": 15, "y": 4 }, + { "label": "Right", "x": 16, "y": 4 } + ] + }, + "LAYOUT_60_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Left", "x": 15.25, "y": 4 }, + { "label": "Down", "x": 16.25, "y": 4 }, + { "label": "Right", "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_65_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + }, + "LAYOUT_60_iso": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "x": 10.75, "y": 2 }, + { "label": ";", "x": 11.75, "y": 2 }, + { "label": "'", "x": 12.75, "y": 2 }, + { "label": "NUHS", "x": 13.75, "y": 2 }, + { "label": "Enter", "x": 14.75, "y": 1, "w": 1.25, "h": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, + { "label": "NUBS", "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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Left", "x": 13, "y": 4 }, + { "label": "Down", "x": 14, "y": 4 }, + { "label": "Right", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_iso": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "y": 0 }, + { "label": "Home", "x": 16, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "End", "x": 16, "y": 1 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "x": 10.75, "y": 2 }, + { "label": ";", "x": 11.75, "y": 2 }, + { "label": "'", "x": 12.75, "y": 2 }, + { "label": "NUHS", "x": 13.75, "y": 2 }, + { "label": "Enter", "x": 14.75, "y": 1, "w": 1.25, "h": 2 }, + { "label": "Page Up", "x": 16, "y": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, + { "label": "NUBS", "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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + { "label": "Page Down", "x": 16, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Win", "x": 13, "y": 4 }, + { "label": "Left", "x": 14, "y": 4 }, + { "label": "Down", "x": 15, "y": 4 }, + { "label": "Right", "x": 16, "y": 4 } + ] + }, + "LAYOUT_60_iso_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "NUHS", "x": 16, "y": 2 }, + { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "NUBS", "x": 3.5, "y": 3 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Left", "x": 15.25, "y": 4 }, + { "label": "Down", "x": 16.25, "y": 4 }, + { "label": "Right", "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_65_iso_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "NUHS", "x": 16, "y": 2 }, + { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "NUBS", "x": 3.5, "y": 3 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + }, + "LAYOUT_all": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "NUHS", "x": 16, "y": 2 }, + { "label": "Enter", "x": 17, "y": 2, "w": 1.25 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "NUBS", "x": 3.5, "y": 3 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4 }, + { "label": "Space", "x": 8.25, "y": 4, "w": 1.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/keebio/quefrency/rev3/rev3.h b/keyboards/keebio/quefrency/rev3/rev3.h index 3e7749265172..12f76d5c8535 100644 --- a/keyboards/keebio/quefrency/rev3/rev3.h +++ b/keyboards/keebio/quefrency/rev3/rev3.h @@ -39,8 +39,6 @@ along with this program. If not, see . { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ } -#define LAYOUT LAYOUT_60 // For backwards compatibility with Rev. 1 - #define LAYOUT_65( \ LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ diff --git a/keyboards/keebio/quefrency/rev4/info.json b/keyboards/keebio/quefrency/rev4/info.json new file mode 100644 index 000000000000..c0319ed872c1 --- /dev/null +++ b/keyboards/keebio/quefrency/rev4/info.json @@ -0,0 +1,839 @@ +{ + "keyboard_name": "Quefrency rev4", + "url": "https://keeb.io", + "maintainer": "nooges", + "width": 19.25, + "height": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_60" + }, + "layouts": { + "LAYOUT_60": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "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": 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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Left", "x": 13, "y": 4 }, + { "label": "Down", "x": 14, "y": 4 }, + { "label": "Right", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "y": 0 }, + { "label": "Home", "x": 16, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + { "label": "End", "x": 16, "y": 1 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "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": 2.25 }, + { "label": "Page Up", "x": 16, "y": 2 }, + + { "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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + { "label": "Page Down", "x": 16, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Win", "x": 13, "y": 4 }, + { "label": "Left", "x": 14, "y": 4 }, + { "label": "Down", "x": 15, "y": 4 }, + { "label": "Right", "x": 16, "y": 4 } + ] + }, + "LAYOUT_60_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Left", "x": 15.25, "y": 4 }, + { "label": "Down", "x": 16.25, "y": 4 }, + { "label": "Right", "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_65_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + }, + "LAYOUT_60_iso": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "x": 10.75, "y": 2 }, + { "label": ";", "x": 11.75, "y": 2 }, + { "label": "'", "x": 12.75, "y": 2 }, + { "label": "NUHS", "x": 13.75, "y": 2 }, + { "label": "Enter", "x": 14.75, "y": 1, "w": 1.25, "h": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, + { "label": "NUBS", "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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Left", "x": 13, "y": 4 }, + { "label": "Down", "x": 14, "y": 4 }, + { "label": "Right", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_iso": { + "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": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "y": 0 }, + { "label": "Home", "x": 16, "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": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "End", "x": 16, "y": 1 }, + + { "label": "Caps Lock", "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": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "x": 10.75, "y": 2 }, + { "label": ";", "x": 11.75, "y": 2 }, + { "label": "'", "x": 12.75, "y": 2 }, + { "label": "NUHS", "x": 13.75, "y": 2 }, + { "label": "Enter", "x": 14.75, "y": 1, "w": 1.25, "h": 2 }, + { "label": "Page Up", "x": 16, "y": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, + { "label": "NUBS", "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": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + { "label": "Page Down", "x": 16, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Win", "x": 13, "y": 4 }, + { "label": "Left", "x": 14, "y": 4 }, + { "label": "Down", "x": 15, "y": 4 }, + { "label": "Right", "x": 16, "y": 4 } + ] + }, + "LAYOUT_60_iso_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "NUHS", "x": 16, "y": 2 }, + { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "NUBS", "x": 3.5, "y": 3 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Left", "x": 15.25, "y": 4 }, + { "label": "Down", "x": 16.25, "y": 4 }, + { "label": "Right", "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_65_iso_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "NUHS", "x": 16, "y": 2 }, + { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "NUBS", "x": 3.5, "y": 3 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + }, + "LAYOUT_all": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "NUHS", "x": 16, "y": 2 }, + { "label": "Enter", "x": 17, "y": 2, "w": 1.25 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "NUBS", "x": 3.5, "y": 3 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4 }, + { "label": "Space", "x": 8.25, "y": 4, "w": 1.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/keebio/quefrency/rev4/rev4.h b/keyboards/keebio/quefrency/rev4/rev4.h index 3e7749265172..12f76d5c8535 100644 --- a/keyboards/keebio/quefrency/rev4/rev4.h +++ b/keyboards/keebio/quefrency/rev4/rev4.h @@ -39,8 +39,6 @@ along with this program. If not, see . { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ } -#define LAYOUT LAYOUT_60 // For backwards compatibility with Rev. 1 - #define LAYOUT_65( \ LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ From 468661280ba2a57e8c834d5ef1df98bc6cb8354a Mon Sep 17 00:00:00 2001 From: AquaCylinder <56627792+AquaCylinder@users.noreply.github.com> Date: Thu, 19 Aug 2021 17:41:05 +0200 Subject: [PATCH 281/328] emi20 update (#14013) * Update keymap & readme -Keymap.c: Key combinations removed for resetting and added a new way to reset. Also removed unused timer code. -config.h & rules.mk: Removed on kemap level (these were there for the key combo's) -Readme.md: Changed the preview image and changed the description to reset the keyboard. Also added what connector type is used. * Update readme.md Better wording on how to get the keyboard in bootloader mode * Update keymap.c Switched + and - around, same with / and *. --- keyboards/emi20/keymaps/default/config.h | 19 ------ keyboards/emi20/keymaps/default/keymap.c | 82 +++++++++--------------- keyboards/emi20/keymaps/default/rules.mk | 1 - keyboards/emi20/readme.md | 5 +- 4 files changed, 35 insertions(+), 72 deletions(-) delete mode 100644 keyboards/emi20/keymaps/default/config.h delete mode 100644 keyboards/emi20/keymaps/default/rules.mk diff --git a/keyboards/emi20/keymaps/default/config.h b/keyboards/emi20/keymaps/default/config.h deleted file mode 100644 index 02638312af38..000000000000 --- a/keyboards/emi20/keymaps/default/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2021 Aquacylinder - * - * 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 COMBO_COUNT 1 diff --git a/keyboards/emi20/keymaps/default/keymap.c b/keyboards/emi20/keymaps/default/keymap.c index 4c33ee85ea1b..b0400108fa9e 100644 --- a/keyboards/emi20/keymaps/default/keymap.c +++ b/keyboards/emi20/keymaps/default/keymap.c @@ -1,58 +1,51 @@ -/* Copyright 2021 Aquacylinder - * - * 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 . - */ +/* Copyright 2021 Aquacylinder + * + * 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 -bool is_ERESET_active = false; -uint16_t ERESET_timer = 0; + enum custom_keycodes { MACRO1 = SAFE_RANGE, //MACRO1 can be anything you want see the qmk documentation MACRO2, //MACRO2 Same thing, you can add as many as you like }; -//Reset combo key naming -enum combo_events { - ENLCK_reset, -}; - -//Reset combo key setting the keys -const uint16_t PROGMEM reset_combo[] = {KC_NLCK, KC_MPLY, COMBO_END}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Macro's are mentioned here allong with the keycodes LAYOUT_ortho_5x4( //Base layer (0) TG(1), KC_VOLD, KC_VOLU, KC_BSPC, - KC_P7, KC_P8, KC_P9, KC_PSLS, - KC_P4, KC_P5, KC_P6, KC_PAST, - KC_P1, KC_P2, KC_P3, KC_PMNS, - KC_P0, KC_PDOT, KC_PENT, KC_PPLS), + KC_P7, KC_P8, KC_P9, KC_PAST, + KC_P4, KC_P5, KC_P6, KC_PSLS, + KC_P1, KC_P2, KC_P3, KC_PPLS, + KC_P0, KC_PDOT, KC_PENT, KC_PMNS), LAYOUT_ortho_5x4( //Layer 1 - KC_TRNS, KC_VOLD, KC_VOLU, KC_CALC, - KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, - KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, + KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, - KC_NLCK, KC_LEFT, KC_DOWN, KC_RGHT), - //Copy any layer and edit it for more layers, be sure to add a key to go to that layer -}; + MO(2), KC_LEFT, KC_DOWN, KC_RGHT), -//Reset combo key setting -combo_t key_combos[COMBO_COUNT] = { - [ENLCK_reset] = COMBO_ACTION(reset_combo), + LAYOUT_ortho_5x4( //Layer 2 + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, RESET, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NLCK, KC_NO, KC_NO), + //Copy any layer and edit it for more layers, be sure to add a key to go to that layer }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -66,7 +59,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING("for being you <3"); } break; - + case MACRO2: if (record->event.pressed) { // when keycode MACRO2 is pressed @@ -79,14 +72,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -//Reset key combo and a example to make our own, more complex, macro's -void process_combo_event(uint16_t combo_index, bool pressed) { - switch(combo_index) { - case ENLCK_reset: - if (pressed) { - reset_keyboard(); - } - break; - } -} diff --git a/keyboards/emi20/keymaps/default/rules.mk b/keyboards/emi20/keymaps/default/rules.mk deleted file mode 100644 index ff681299e4e9..000000000000 --- a/keyboards/emi20/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -COMBO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/emi20/readme.md b/keyboards/emi20/readme.md index 8395036350ea..54c27aa6a344 100644 --- a/keyboards/emi20/readme.md +++ b/keyboards/emi20/readme.md @@ -1,17 +1,18 @@ # Emi20 -![Emi20](https://i.imgur.com/Tt9ogmWl.jpg) +![Emi20](https://i.imgur.com/Mc84fLGl.jpg) A compact 4x5 ortholinear keyboard made by Project Aqua and sold by Evil-cables. * Keyboard Maintainer: [AquaCylinder](https://github.com/AquaCylinder) * Hardware Supported: PCB, Atmega32u4 +* Connector: USB mini B Make example for this keyboard (after setting up your build environment): make emi20:default -To reset the board into bootloader mode, press the physical reset button on the back of the PCB or use the keycombo (on layer 1) with the bottom left key and the second key from the top right diagonally. +To reset the board into bootloader mode, press the physical reset button on the back of the PCB or press the bottom most left key to momentarily switch to layer 2 (on layer 1) and then press the key from the top right down one. The default keymap.c file has comments to help you on your journey, See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From d6eee3e0f2d14d53445fe334dd2b4f4b30c21f47 Mon Sep 17 00:00:00 2001 From: rate Date: Fri, 20 Aug 2021 00:41:49 +0900 Subject: [PATCH 282/328] Added VIA keymap for pistachio_mp (#14015) * Added VIA keymap for pistachio_mp * Fixed typos --- keyboards/pistachio_mp/config.h | 4 +- keyboards/pistachio_mp/keymaps/via/keymap.c | 76 +++++++++++++++++++ keyboards/pistachio_mp/keymaps/via/readme.md | 1 + keyboards/pistachio_mp/keymaps/via/rules.mk | 1 + .../pistachio_pro/keymaps/default/readme.md | 2 +- .../pistachio_pro/keymaps/rate/readme.md | 2 +- keyboards/pistachio_pro/keymaps/via/readme.md | 2 +- 7 files changed, 83 insertions(+), 5 deletions(-) create mode 100644 keyboards/pistachio_mp/keymaps/via/keymap.c create mode 100644 keyboards/pistachio_mp/keymaps/via/readme.md create mode 100644 keyboards/pistachio_mp/keymaps/via/rules.mk diff --git a/keyboards/pistachio_mp/config.h b/keyboards/pistachio_mp/config.h index f23530a12c2a..4da866bb7d29 100644 --- a/keyboards/pistachio_mp/config.h +++ b/keyboards/pistachio_mp/config.h @@ -20,8 +20,8 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xD0C3 +#define VENDOR_ID 0x5255 +#define PRODUCT_ID 0xE212 #define DEVICE_VER 0x0001 #define MANUFACTURER rate #define PRODUCT pistachio_mp diff --git a/keyboards/pistachio_mp/keymaps/via/keymap.c b/keyboards/pistachio_mp/keymaps/via/keymap.c new file mode 100644 index 000000000000..e3592ffa6d65 --- /dev/null +++ b/keyboards/pistachio_mp/keymaps/via/keymap.c @@ -0,0 +1,76 @@ +/* Copyright 2020 rate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE = 0, + _FN, + _RESERVE_0, + _RESERVE_1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_MPLY, + LT(_FN, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ), + /* Fn */ + [_FN] = LAYOUT( + KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + RGB_HUI, RGB_SAI, RGB_VAI, + RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO + ), + /* Reserve */ + [_RESERVE_0] = LAYOUT( + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + /* Reserve */ + [_RESERVE_1] = LAYOUT( + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif diff --git a/keyboards/pistachio_mp/keymaps/via/readme.md b/keyboards/pistachio_mp/keymaps/via/readme.md new file mode 100644 index 000000000000..b768049ccc07 --- /dev/null +++ b/keyboards/pistachio_mp/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for pistachio_mp diff --git a/keyboards/pistachio_mp/keymaps/via/rules.mk b/keyboards/pistachio_mp/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/pistachio_mp/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/pistachio_pro/keymaps/default/readme.md b/keyboards/pistachio_pro/keymaps/default/readme.md index 2bc50be9dd06..bf313ec19d1c 100644 --- a/keyboards/pistachio_pro/keymaps/default/readme.md +++ b/keyboards/pistachio_pro/keymaps/default/readme.md @@ -1 +1 @@ -# The default keymap for pistachio_mp +# The default keymap for pistachio_pro diff --git a/keyboards/pistachio_pro/keymaps/rate/readme.md b/keyboards/pistachio_pro/keymaps/rate/readme.md index b355dced2319..c7049b67ce2e 100644 --- a/keyboards/pistachio_pro/keymaps/rate/readme.md +++ b/keyboards/pistachio_pro/keymaps/rate/readme.md @@ -1 +1 @@ -# The rate's keymap for pistachio_mp +# The rate's keymap for pistachio_pro diff --git a/keyboards/pistachio_pro/keymaps/via/readme.md b/keyboards/pistachio_pro/keymaps/via/readme.md index b768049ccc07..e2f4b9f6b281 100644 --- a/keyboards/pistachio_pro/keymaps/via/readme.md +++ b/keyboards/pistachio_pro/keymaps/via/readme.md @@ -1 +1 @@ -# The via keymap for pistachio_mp +# The via keymap for pistachio_pro From 49be4860f72af98d3788d5559023cc3fc9f4e08e Mon Sep 17 00:00:00 2001 From: Tran Kim Tung Date: Thu, 19 Aug 2021 23:51:23 +0800 Subject: [PATCH 283/328] [Keyboard] adds new keyboard version: dztech/dz60rgb_wkl/v2_1 (#14021) * [Keyboard] adds new keyboard version: dztech/dz60rgb_wkl/v2_1 * Update keyboards/dztech/dz60rgb_wkl/readme.md Remove external flash manual link Co-authored-by: Ryan * dz60rgb_wkl/v2_1: remove NO_USB_STARTUP_CHECK Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/dztech/dz60rgb_wkl/readme.md | 5 +- keyboards/dztech/dz60rgb_wkl/v2_1/config.h | 79 ++++++++++++++++++++++ keyboards/dztech/dz60rgb_wkl/v2_1/rules.mk | 28 ++++++++ 3 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 keyboards/dztech/dz60rgb_wkl/v2_1/config.h create mode 100644 keyboards/dztech/dz60rgb_wkl/v2_1/rules.mk diff --git a/keyboards/dztech/dz60rgb_wkl/readme.md b/keyboards/dztech/dz60rgb_wkl/readme.md index a80236437a08..23ec5fa94247 100644 --- a/keyboards/dztech/dz60rgb_wkl/readme.md +++ b/keyboards/dztech/dz60rgb_wkl/readme.md @@ -8,14 +8,17 @@ A hotswap 60% RGB keyboard. * Hardware Supported: DZtech DZ60RGB-WKL V1 and V2 * Hardware Availability: [KBDfans](https://kbdfans.com/) -There are two versions of the DZ60RGB-WKL. Please use the appropriate firmware for your board. +There are three versions of the DZ60RGB-WKL. Please use the appropriate firmware for your board. * V1: STM32F303 (Arm), takes .bin files * V2: ATmega32U4 (AVR), takes .hex files +* V2.1: ATmega32U4 (AVR), takes .bin files + Started shipping in June 2021 as a slightly modified version of v2. Make example for this keyboard (after setting up your build environment): make dztech/dz60rgb_wkl/v1:default # Arm (STM32F303) make dztech/dz60rgb_wkl/v2:default # AVR (ATmega32U4) + make dztech/dz60rgb_wkl/v2_1:default # AVR (ATmega32U4) 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). diff --git a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h new file mode 100644 index 000000000000..c4d9e6c9aff2 --- /dev/null +++ b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h @@ -0,0 +1,79 @@ +/* Copyright 2021 trankimtung + * + * 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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x445A +#define PRODUCT_ID 0x1321 +#define DEVICE_VER 0x0003 +#define MANUFACTURER DZTECH +#define PRODUCT DZ60RGB_WKL + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * 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 { F5, F4, F1, B3, B2 } +#define MATRIX_COL_PINS { C7, F7, F6, F0, B0, B1, B4, D7, D6, D4, D5, D3, D2, B7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 3 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#ifdef RGB_MATRIX_ENABLE +# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define DISABLE_RGB_MATRIX_BAND_SAT +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define DISABLE_RGB_MATRIX_SPLASH +# define DISABLE_RGB_MATRIX_MULTISPLASH +# define DISABLE_RGB_MATRIX_SOLID_SPLASH +# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +# define DISABLE_RGB_MATRIX_DIGITAL_RAIN +# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_2 0b1010000 // this is here for compliancy reasons. +# define DRIVER_COUNT 2 +# define DRIVER_1_LED_TOTAL 62 +# define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2_1/rules.mk b/keyboards/dztech/dz60rgb_wkl/v2_1/rules.mk new file mode 100644 index 000000000000..94194f77ff80 --- /dev/null +++ b/keyboards/dztech/dz60rgb_wkl/v2_1/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = lufa-ms +BOOTLOADER_SIZE = 6144 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3733 +LTO_ENABLE = yes + +LAYOUTS = 60_tsangan_hhkb From 9ac0023a6a08123654ddf8cfe5028dda5fa5afa6 Mon Sep 17 00:00:00 2001 From: yiancar Date: Thu, 19 Aug 2021 16:53:20 +0100 Subject: [PATCH 284/328] Add MNK50 (#14031) * Add MNK50 * Update keyboards/mnk50/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/mnk50/rules.mk Co-authored-by: Ryan * Update keyboards/mnk50/readme.md hihi thanks! Co-authored-by: Ryan * Update keyboards/mnk50/keymaps/default/readme.md Co-authored-by: Ryan Co-authored-by: yiancar Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/mnk50/config.h | 76 +++++++++++++++++++++++ keyboards/mnk50/info.json | 12 ++++ keyboards/mnk50/keymaps/default/keymap.c | 30 +++++++++ keyboards/mnk50/keymaps/default/readme.md | 5 ++ keyboards/mnk50/keymaps/via/keymap.c | 42 +++++++++++++ keyboards/mnk50/keymaps/via/readme.md | 5 ++ keyboards/mnk50/keymaps/via/rules.mk | 1 + keyboards/mnk50/mnk50.c | 16 +++++ keyboards/mnk50/mnk50.h | 32 ++++++++++ keyboards/mnk50/readme.md | 32 ++++++++++ keyboards/mnk50/rules.mk | 27 ++++++++ 11 files changed, 278 insertions(+) create mode 100755 keyboards/mnk50/config.h create mode 100755 keyboards/mnk50/info.json create mode 100644 keyboards/mnk50/keymaps/default/keymap.c create mode 100755 keyboards/mnk50/keymaps/default/readme.md create mode 100644 keyboards/mnk50/keymaps/via/keymap.c create mode 100755 keyboards/mnk50/keymaps/via/readme.md create mode 100755 keyboards/mnk50/keymaps/via/rules.mk create mode 100755 keyboards/mnk50/mnk50.c create mode 100644 keyboards/mnk50/mnk50.h create mode 100755 keyboards/mnk50/readme.md create mode 100755 keyboards/mnk50/rules.mk diff --git a/keyboards/mnk50/config.h b/keyboards/mnk50/config.h new file mode 100755 index 000000000000..9e49bd5c966d --- /dev/null +++ b/keyboards/mnk50/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2021 Yiancar-Designs + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published byß +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x8968 +#define PRODUCT_ID 0x4D35 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Yiancar-Designs +#define PRODUCT MNK50 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 14 + +#define MATRIX_ROW_PINS { B12, B13, A10, A6 } +#define MATRIX_COL_PINS { B14, B15, A8, A9, A13, A14, A15, B3, B4, B5, B6, B7, B8, B9 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Ensure we jump to bootloader if the RESET keycode was pressed */ +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful 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 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/mnk50/info.json b/keyboards/mnk50/info.json new file mode 100755 index 000000000000..d92c75ed3f4d --- /dev/null +++ b/keyboards/mnk50/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "MNK50", + "url": "https://yiancar-designs.com", + "maintainer": "Yiancar-Designs", + "width": 14, + "height": 4, + "layouts": { + "LAYOUT_all": { + "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":12, "y":0}, {"x":13, "y":0}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1}, {"x":12.25, "y":1, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2, "w":1.25}, {"x":13, "y":2}, {"x":1.25, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3}, {"x":4.5, "y":3, "w":2.25}, {"x":6.75, "y":3, "w":2.75}, {"x":9.5, "y":3}, {"x":10.5, "y":3, "w":1.25}, {"x":11.75, "y":3}] + } + } +} diff --git a/keyboards/mnk50/keymaps/default/keymap.c b/keyboards/mnk50/keymaps/default/keymap.c new file mode 100644 index 000000000000..9c35dc689bfc --- /dev/null +++ b/keyboards/mnk50/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_GESC, 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_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LCTL), + +[1] = LAYOUT_all( /* FN */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN) +}; diff --git a/keyboards/mnk50/keymaps/default/readme.md b/keyboards/mnk50/keymaps/default/readme.md new file mode 100755 index 000000000000..b78cf94011c5 --- /dev/null +++ b/keyboards/mnk50/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# The default keymap for MNK50 + +![Layer 0](https://i.imgur.com/8R4AXY5.png) + +![Layer 1](https://i.imgur.com/U8tLYCY.png) diff --git a/keyboards/mnk50/keymaps/via/keymap.c b/keyboards/mnk50/keymaps/via/keymap.c new file mode 100644 index 000000000000..7e8f4f138c43 --- /dev/null +++ b/keyboards/mnk50/keymaps/via/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2021 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_GESC, 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_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LCTL), + +[1] = LAYOUT_all( /* FN */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN), + +[2] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[3] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/mnk50/keymaps/via/readme.md b/keyboards/mnk50/keymaps/via/readme.md new file mode 100755 index 000000000000..9c61657a721a --- /dev/null +++ b/keyboards/mnk50/keymaps/via/readme.md @@ -0,0 +1,5 @@ +# The default keymap for MNK50s. VIA support enabled. + +![Layer 0](https://i.imgur.com/8R4AXY5.png) + +![Layer 1](https://i.imgur.com/U8tLYCY.png) \ No newline at end of file diff --git a/keyboards/mnk50/keymaps/via/rules.mk b/keyboards/mnk50/keymaps/via/rules.mk new file mode 100755 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/mnk50/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mnk50/mnk50.c b/keyboards/mnk50/mnk50.c new file mode 100755 index 000000000000..0e833dc7b3d9 --- /dev/null +++ b/keyboards/mnk50/mnk50.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "mnk50.h" diff --git a/keyboards/mnk50/mnk50.h b/keyboards/mnk50/mnk50.h new file mode 100644 index 000000000000..23b892907a3c --- /dev/null +++ b/keyboards/mnk50/mnk50.h @@ -0,0 +1,32 @@ +/* Copyright 2021 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define XXX KC_NO + +#include "quantum.h" + +#define LAYOUT_all( \ + 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, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K31, K32, K33, K35, K36, K37, K39, K3A, K3B \ +) { \ + { 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, XXX, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \ + { XXX, K31, K32, K33, XXX, K35, K36, K37, XXX, K39, K3A, K3B, XXX, XXX } \ +} diff --git a/keyboards/mnk50/readme.md b/keyboards/mnk50/readme.md new file mode 100755 index 000000000000..f8484e9d36d6 --- /dev/null +++ b/keyboards/mnk50/readme.md @@ -0,0 +1,32 @@ +# MNK40 + +This is a 40% keyboard. It supports VIA. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A 40% keyboard with STM32F072CB +* Hardware Availability: https://www.monokei.co + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make mnk50:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or CLI (`make mnk50::flash`) diff --git a/keyboards/mnk50/rules.mk b/keyboards/mnk50/rules.mk new file mode 100755 index 000000000000..6a7c2ca63be9 --- /dev/null +++ b/keyboards/mnk50/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Do not put the microcontroller into power saving mode +# when we get USB suspend event. We want it to keep updating +# backlight effects. +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 972f8ba69ae34420009082b0e89ee6c018f3de69 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 20 Aug 2021 02:11:20 +1000 Subject: [PATCH 285/328] Fix AT90USB64/128 bootloaders (#14064) --- util/bootloader_at90usb128_1.0.1.hex | 2 +- util/bootloader_at90usb64_1.0.0.hex | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/util/bootloader_at90usb128_1.0.1.hex b/util/bootloader_at90usb128_1.0.1.hex index 90491a82a6d0..5ecbed2880f2 100644 --- a/util/bootloader_at90usb128_1.0.1.hex +++ b/util/bootloader_at90usb128_1.0.1.hex @@ -269,7 +269,7 @@ :10F11A002A2F0C946CF00E9451F780E090E0A0E056 :10F12A00B0E08C019D010E94BEF780509F4FAF4F07 :10F13A00BF4F8F3F0FED900701E0A007B80788F394 -:10F14A00E4E00C9462F712010020FE010020EB03B8 +:10F14A00E4E00C9462F712010002FF010020EB03D5 :10F15A00FB2F0000010203010902120001010080D5 :10F16A00320904000000000000000C0341005400B2 :10F17A004D0045004C001E03410054003900300088 diff --git a/util/bootloader_at90usb64_1.0.0.hex b/util/bootloader_at90usb64_1.0.0.hex index 69dd45bbd690..5b443d719568 100644 --- a/util/bootloader_at90usb64_1.0.0.hex +++ b/util/bootloader_at90usb64_1.0.0.hex @@ -1,7 +1,7 @@ :020000020000FC :04F000000C94B97E35 :04F028000C94C77D00 -:10F08B0012010020FE010020EB03F92F000000000D +:10F08B0012010002FF010020EB03F92F000000002A :10F09B000001090212000101008032090400000086 :04F0AB000000000061 :10F0B0000000827E0800717E747E767E787E7A7E85 From 072459871ba45c90cf6e9a66bc975f63eb41e413 Mon Sep 17 00:00:00 2001 From: Juno Nguyen Date: Fri, 20 Aug 2021 00:12:19 +0800 Subject: [PATCH 286/328] [Keymap] community/ortho_4x12/junonum update (#14062) * Update new community universal keymaps * Revert bottom row to default for better use of WIN_MODS and MAC_MODS * Revert to use public domain songs * Update Dpad layer in junonum to tailor for StarCraft group control * Remove junonum512 * Update junonum readme * Define custom songs in the keymap * Move DP_OFF location * Update DPAD modifiers * Update F-row placement in junonum dpad layer * Update CapsLock location and rectify KC_APP --- layouts/community/ortho_4x12/junonum/config.h | 5 ++++- layouts/community/ortho_4x12/junonum/keymap.c | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/layouts/community/ortho_4x12/junonum/config.h b/layouts/community/ortho_4x12/junonum/config.h index 4b4d010a6a26..c16d74892dbb 100644 --- a/layouts/community/ortho_4x12/junonum/config.h +++ b/layouts/community/ortho_4x12/junonum/config.h @@ -34,4 +34,7 @@ #define ENCODER_RESOLUTION 4 // Reduce power consumption for iOS compatibility -#define USB_MAX_POWER_CONSUMPTION 100 \ No newline at end of file +#define USB_MAX_POWER_CONSUMPTION 100 + +// Short tap threshold +#define TAPPING_TERM 250 diff --git a/layouts/community/ortho_4x12/junonum/keymap.c b/layouts/community/ortho_4x12/junonum/keymap.c index 82ff4d63a7b3..463ad600af71 100644 --- a/layouts/community/ortho_4x12/junonum/keymap.c +++ b/layouts/community/ortho_4x12/junonum/keymap.c @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = LAYOUT_ortho_4x12( KC_GRV, _______, _______, KC_LBRC, KC_RBRC, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, KC_LCBR, KC_RCBR, _______, _______, KC_4, KC_5, KC_6, KC_MINUS, KC_BSLS, - _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_EQUAL, _______, + _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_EQUAL, KC_ENT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY ), @@ -86,8 +86,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN1] = LAYOUT_ortho_4x12( - KC_MENU, DP_ON, KC_PGDN, KC_UP, KC_PGUP, KC_INS, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______, - KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_DEL , + KC_APP, DP_ON, KC_PGDN, KC_UP, KC_PGUP, KC_INS, KC_CAPS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_DEL , _______, _______, _______, _______, _______, KC_END, KC_END, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, DP_ON, _______, _______, _______ ), From 4fc01ddefe600ea2b873efa593312419e0f9c50f Mon Sep 17 00:00:00 2001 From: Zereef <55533120+Zereef@users.noreply.github.com> Date: Thu, 19 Aug 2021 17:28:59 +0100 Subject: [PATCH 287/328] [Keyboard] Ymdk_np21 via port (#12693) --- keyboards/ymdk_np21/keymaps/via/keymap.c | 52 ++++++++++++++++++++++++ keyboards/ymdk_np21/keymaps/via/rules.mk | 2 + 2 files changed, 54 insertions(+) create mode 100644 keyboards/ymdk_np21/keymaps/via/keymap.c create mode 100644 keyboards/ymdk_np21/keymaps/via/rules.mk diff --git a/keyboards/ymdk_np21/keymaps/via/keymap.c b/keyboards/ymdk_np21/keymaps/via/keymap.c new file mode 100644 index 000000000000..b361414023e0 --- /dev/null +++ b/keyboards/ymdk_np21/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 Zereef + * + * 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_ortho_6x4( + KC_ESC, KC_TAB, KC_BSPC, MO(1), + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_DOT, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, BL_ON, _______, BL_INC, + _______, BL_TOGG, _______, BL_INC, + _______, BL_OFF, _______, BL_DEC, + BL_BRTG, _______, _______, BL_DEC + ), + [2] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ymdk_np21/keymaps/via/rules.mk b/keyboards/ymdk_np21/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/ymdk_np21/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes From a43952f35d591d1ac6d2754d2aaf418e2e144670 Mon Sep 17 00:00:00 2001 From: Felix Jen Date: Thu, 19 Aug 2021 09:31:12 -0700 Subject: [PATCH 288/328] [Keyboard] Add Ready100 Keyboard (#13158) Co-authored-by: Drashna Jaelre --- keyboards/fjlabs/ready100/config.h | 110 ++++++++++++++++++ keyboards/fjlabs/ready100/info.json | 82 +++++++++++++ .../fjlabs/ready100/keymaps/default/keymap.c | 40 +++++++ .../fjlabs/ready100/keymaps/via/keymap.c | 58 +++++++++ .../fjlabs/ready100/keymaps/via/rules.mk | 1 + keyboards/fjlabs/ready100/readme.md | 19 +++ keyboards/fjlabs/ready100/ready100.c | 14 +++ keyboards/fjlabs/ready100/ready100.h | 32 +++++ keyboards/fjlabs/ready100/rules.mk | 26 +++++ 9 files changed, 382 insertions(+) create mode 100644 keyboards/fjlabs/ready100/config.h create mode 100644 keyboards/fjlabs/ready100/info.json create mode 100644 keyboards/fjlabs/ready100/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/ready100/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/ready100/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/ready100/readme.md create mode 100644 keyboards/fjlabs/ready100/ready100.c create mode 100644 keyboards/fjlabs/ready100/ready100.h create mode 100644 keyboards/fjlabs/ready100/rules.mk diff --git a/keyboards/fjlabs/ready100/config.h b/keyboards/fjlabs/ready100/config.h new file mode 100644 index 000000000000..a0e8d561487d --- /dev/null +++ b/keyboards/fjlabs/ready100/config.h @@ -0,0 +1,110 @@ +/* +Copyright 2021 + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7074 // FJLabs +#define PRODUCT_ID 0x1003 // Ready100 +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER FJLabs +#define PRODUCT Ready100 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * 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) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, B3, B2, B1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* 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 + +/* Define RGB Underglow */ +#define RGB_DI_PIN F7 +#define RGBLED_NUM 64 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_LIMIT_VAL 108 +#define RGB_VAL_STEP 12 +/* #define RGBLIGHT_LAYER_BLINK*/ + +/* Define less important options */ + +/* + * 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 +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/fjlabs/ready100/info.json b/keyboards/fjlabs/ready100/info.json new file mode 100644 index 000000000000..8981b607e9bd --- /dev/null +++ b/keyboards/fjlabs/ready100/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "Ready100", + "url": "https://www.ready100.com", + "maintainer": "FJLabs", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_65_ansi": { + "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": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2}, + {"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": 12, "y": 3}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/fjlabs/ready100/keymaps/default/keymap.c b/keyboards/fjlabs/ready100/keymaps/default/keymap.c new file mode 100644 index 000000000000..2c98d2489bda --- /dev/null +++ b/keyboards/fjlabs/ready100/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2021 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_64key( + 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_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, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_LAYER1] = LAYOUT_64key( + 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_PAUSE, RESET, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS + ) + +}; \ No newline at end of file diff --git a/keyboards/fjlabs/ready100/keymaps/via/keymap.c b/keyboards/fjlabs/ready100/keymaps/via/keymap.c new file mode 100644 index 000000000000..82871224cdfd --- /dev/null +++ b/keyboards/fjlabs/ready100/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2021 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_64key( + 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_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, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_LAYER1] = LAYOUT_64key( + 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_PAUSE, RESET, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS + ), + + [_LAYER2] = LAYOUT_64key( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER3] = LAYOUT_64key( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/ready100/keymaps/via/rules.mk b/keyboards/fjlabs/ready100/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/fjlabs/ready100/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/fjlabs/ready100/readme.md b/keyboards/fjlabs/ready100/readme.md new file mode 100644 index 000000000000..c38a21b50009 --- /dev/null +++ b/keyboards/fjlabs/ready100/readme.md @@ -0,0 +1,19 @@ +# Ready100 + +The following is the QMK Firmware for the [Ready100](https://www.ready100.com) 64-key PCB, a universal tray mount 60% hotswap PCB with per key RGB LED's. + +The PCB will feature: +* Kailh Hotswap sockets +* QMK & VIA compatibility +* Per-Key RGB LED's + +--- + +* Keyboard Maintainer: FJLabs +* Hardware Supported: Ready100 + +Make example for this keyboard (after setting up your build environment): + + make fjlabs/ready100:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). You can enter the bootloader by pressing the reset button on the back of the PCB. diff --git a/keyboards/fjlabs/ready100/ready100.c b/keyboards/fjlabs/ready100/ready100.c new file mode 100644 index 000000000000..6791a75697e5 --- /dev/null +++ b/keyboards/fjlabs/ready100/ready100.c @@ -0,0 +1,14 @@ +/* +Copyright 2021 +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 "ready100.h" diff --git a/keyboards/fjlabs/ready100/ready100.h b/keyboards/fjlabs/ready100/ready100.h new file mode 100644 index 000000000000..e8bc3dfc637b --- /dev/null +++ b/keyboards/fjlabs/ready100/ready100.h @@ -0,0 +1,32 @@ +/* +Copyright 2021 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +/* Ready100 Keymap Definitions */ +#define LAYOUT_64key( \ + 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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ +) { \ + { 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, KC_NO, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/fjlabs/ready100/rules.mk b/keyboards/fjlabs/ready100/rules.mk new file mode 100644 index 000000000000..949e7a9eb2e1 --- /dev/null +++ b/keyboards/fjlabs/ready100/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +KEYBOARD_LOCK_ENABLE = yes From c1484761889cee72e6695dea1bce0c70795f1ca1 Mon Sep 17 00:00:00 2001 From: BifbofII Date: Thu, 19 Aug 2021 19:41:14 +0300 Subject: [PATCH 289/328] [Keymap] Add personal layout for 60% ISO boards (#13232) --- layouts/community/60_iso/bifbofii/keymap.c | 201 ++++++++++++++++++++ layouts/community/60_iso/bifbofii/readme.md | 108 +++++++++++ layouts/community/60_iso/bifbofii/rules.mk | 1 + 3 files changed, 310 insertions(+) create mode 100755 layouts/community/60_iso/bifbofii/keymap.c create mode 100755 layouts/community/60_iso/bifbofii/readme.md create mode 100644 layouts/community/60_iso/bifbofii/rules.mk diff --git a/layouts/community/60_iso/bifbofii/keymap.c b/layouts/community/60_iso/bifbofii/keymap.c new file mode 100755 index 000000000000..d22004c201e1 --- /dev/null +++ b/layouts/community/60_iso/bifbofii/keymap.c @@ -0,0 +1,201 @@ +/* Copyright 2021 Christoph Jabs (BifbofII) + * + * 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 + +/* ====== Unicode ====== */ +/* Character names */ +enum unicode_names { SAE, BAE, SUE, BUE, SOE, BOE, SS, EUR, CPR }; + +/* Unicode map */ +const uint32_t PROGMEM unicode_map[] = { + [SAE] = 0x00E4, // ä + [BAE] = 0x00C4, // Ä + [SUE] = 0x00FC, // ü + [BUE] = 0x00DC, // Ü + [SOE] = 0x00F6, // ü + [BOE] = 0x00D6, // Ü + [SS] = 0x00DF, // ß + [EUR] = 0x20AC, // € + [CPR] = 0x00A9 // © +}; + +/* ====== Layers ====== */ +enum layer_names { + QWERTY = 0, + GAMING, + FUNCTIONS_1, + FUNCTIONS_2, + UNICODE, + SPECIALS, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------------. + * | ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Enter | + * |-----------------------------------------------------------------------------------+ + + * | Esc/Unic| A | S | D | F | G | H | J | K | L | ; | ' | \ | | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | Super | Alt | Space/Fnc | Alt | Super | Ctrl | Spec | + * `-----------------------------------------------------------------------------------------' + */ + [QWERTY] = LAYOUT_60_iso( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + LT(UNICODE, 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_BSLS, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(FUNCTIONS_1, KC_SPC), KC_RALT, KC_RGUI, KC_RCTL, MO(SPECIALS) + ), + + /* Arrows and media keys + * ,-----------------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del | + * |-----------------------------------------------------------------------------------------+ + * | | | | | |Mute | Prev| V- | V+ | Next| Play| | | Enter | + * |-----------------------------------------------------------------------------------+ + + * | Caps | | < | | | > |Left |Down | Up |Right| | | | | + * |-----------------------------------------------------------------------------------------+ + * | Shift | | | | | |Home |Page-|Page+| End | | Fnc2 | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | Super | Alt | Trans | Alt | Super | Ctrl | | + * `-----------------------------------------------------------------------------------------' + */ + [FUNCTIONS_1] = LAYOUT_60_iso( + _______, 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__MUTE, KC_MPRV, KC__VOLDOWN, KC_VOLU, KC_MNXT, KC_MEDIA_PLAY_PAUSE, _______, _______, + KC_CAPS, _______, KC_WBAK, _______, _______, KC_WFWD, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_ENT, + KC_LSFT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, MO(FUNCTIONS_2), + KC_LCTL, KC_LGUI, KC_LALT, _______, KC_RALT, KC_RGUI, KC_RCTL, _______ + ), + + /* More Function keys + * ,-----------------------------------------------------------------------------------------. + * | | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | Del | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | | | | | | | Enter | + * |-----------------------------------------------------------------------------------+ + + * | Caps | | | | | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | Shift | | | | | | | | | | | Trans | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | Super | Alt | Trans | Alt | Super | Ctrl | | + * `-----------------------------------------------------------------------------------------' + */ + [FUNCTIONS_2] = LAYOUT_60_iso( + _______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LCTL, KC_LGUI, KC_LALT, _______, KC_RALT, KC_RGUI, KC_RCTL, _______ + ), + + /* German Umlaute + * ,-----------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | Bkspc | + * |-----------------------------------------------------------------------------------------+ + * | | | | € | | | | Ü | | Ö | | | | Enter | + * |-----------------------------------------------------------------------------------+ + + * | Trans | Ä | ß | | | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | Trans | | | © | | | | | | | | Trans | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | Super | Alt | Space | Alt | Super | Ctrl | | + * `-----------------------------------------------------------------------------------------' + */ + [UNICODE] = LAYOUT_60_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, + _______, _______, _______, X(EUR), _______, _______, _______, XP(SUE, BUE), _______, XP(SOE, BOE), _______, _______, _______, + KC_TRNS, XP(SAE, BAE), X(SS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, + KC_LSFT, _______, _______, _______, X(CPR), _______, _______, _______, _______, _______, _______, _______, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, _______ + ), + + /* Specials (Reset, etc) + * ,-----------------------------------------------------------------------------------------. + * | | | | | | | | | | | | RGB-|RGB+ | | + * |-----------------------------------------------------------------------------------------+ + * | | | Win | | | | | | | OSX | | | | RGB | + * |-----------------------------------------------------------------------------------+ tog + + * | | | | | |Gamin| | | | Lnx | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | |RESET| | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | Trans| + * `-----------------------------------------------------------------------------------------' + */ + [SPECIALS] = LAYOUT_60_iso( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, XXXXXXX, + XXXXXXX, XXXXXXX, UC_M_WC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UC_M_OS, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(GAMING), XXXXXXX, XXXXXXX, XXXXXXX, UC_M_LN, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS + ), + + /* Gaming + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Enter | + * |-----------------------------------------------------------------------------------+ + + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | \ | | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | Super | Alt | Space | Alt | Super | Ctrl | Spec | + * `-----------------------------------------------------------------------------------------' + */ + [GAMING] = LAYOUT_60_iso( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(SPECIALS) + ), +}; + +/* ====== LED Underglow ====== */ +#ifdef RGBLIGHT_ENABLE +void keyboard_post_init_user(void) { + rgblight_mode_noeeprom(1); + rgblight_sethsv_noeeprom(HSV_WHITE); +} + +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { + rgblight_mode_noeeprom(1); + rgblight_sethsv_noeeprom(HSV_RED); + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_mode_noeeprom(1); + if (layer_state_cmp(state, GAMING)) { + rgblight_sethsv_noeeprom(HSV_BLUE); + } else if (layer_state_cmp(state, SPECIALS)) { + rgblight_sethsv_noeeprom(HSV_PURPLE); + } else { + rgblight_sethsv_noeeprom(HSV_WHITE); + } + return state; +} +#endif diff --git a/layouts/community/60_iso/bifbofii/readme.md b/layouts/community/60_iso/bifbofii/readme.md new file mode 100755 index 000000000000..7a8a03419630 --- /dev/null +++ b/layouts/community/60_iso/bifbofii/readme.md @@ -0,0 +1,108 @@ +# BifbofII 60% ISO Layout + +![BifbofII 60% ISO](https://i.imgur.com/jz4s3iR.jpeg) + +This layout is for the DZ60 and other keyboards with ISO keycaps in a US layout. + +The first layer is a standard US QWERTY Layout. +By holding down the spacebar, a set of function keys as arrow keys become available. +By holding right shift and space, a second layer of function keys becomes available. +ESC is mapped to the Caps Lock key. +If the Caps Lock key is held, a selection of unicode Characters, such as Umlauts become available. +By pressing Special and G you can toggle a layer for gaming that has normal keymappings. + +## QWERTY Layer + +``` +,-----------------------------------------------------------------------------------------. +| ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | +|-----------------------------------------------------------------------------------------+ +| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Enter | +|-----------------------------------------------------------------------------------+ + +| Esc/Unic| A | S | D | F | G | H | J | K | L | ; | ' | \ | | +|-----------------------------------------------------------------------------------------+ +| Shift | Z | X | C | V | B | N | M | , | . | / | RShift | +|-----------------------------------------------------------------------------------------+ +| Ctrl | Super | Alt | Space/Fnc | Alt | Super | Ctrl | Spec | +`-----------------------------------------------------------------------------------------' +``` + +## Function Layer 1 + +``` +,-----------------------------------------------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del | +|-----------------------------------------------------------------------------------------+ +| | | | | |Mute | Prev| V- | V+ | Next| Play| | | Enter | +|-----------------------------------------------------------------------------------+ + +| Caps | | < | | | > |Left |Down | Up |Right| | | | | +|-----------------------------------------------------------------------------------------+ +| Shift | | | | | |Home |Page-|Page+| End | | Fnc2 | +|-----------------------------------------------------------------------------------------+ +| Ctrl | Super | Alt | Trans | Alt | Super | Ctrl | | +`-----------------------------------------------------------------------------------------' +``` + +## Function Layer 2 + +``` +,-----------------------------------------------------------------------------------------. +| | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | Del | +|-----------------------------------------------------------------------------------------+ +| | | | | | | | | | | | | | Enter | +|-----------------------------------------------------------------------------------+ + +| Caps | | | | | | | | | | | | | | +|-----------------------------------------------------------------------------------------+ +| Shift | | | | | | | | | | | Trans | +|-----------------------------------------------------------------------------------------+ +| Ctrl | Super | Alt | Trans | Alt | Super | Ctrl | | +`-----------------------------------------------------------------------------------------' +``` + +## Unicode Layer + +``` +,-----------------------------------------------------------------------------------------. +| | | | | | | | | | | | | | Bkspc | +|-----------------------------------------------------------------------------------------+ +| | | | € | | | | Ü | | Ö | | | | Enter | +|-----------------------------------------------------------------------------------+ + +| Trans | Ä | ß | | | | | | | | | | | | +|-----------------------------------------------------------------------------------------+ +| Trans | | | © | | | | | | | | Trans | +|-----------------------------------------------------------------------------------------+ +| Ctrl | Super | Alt | Space | Alt | Super | Ctrl | | +`-----------------------------------------------------------------------------------------' +``` + +## Specials Layer + +``` +,-----------------------------------------------------------------------------------------. +| | | | | | | | | | | | RGB-|RGB+ | | +|-----------------------------------------------------------------------------------------+ +| | | Win | | | | | | | OSX | | | | RGB | +|-----------------------------------------------------------------------------------+ tog + +| | | | | |Gamin| | | | Lnx | | | | | +|-----------------------------------------------------------------------------------------+ +| | | | | |RESET| | | | | | | +|-----------------------------------------------------------------------------------------+ +| | | | | | | | Trans| +`-----------------------------------------------------------------------------------------' +``` + +## Gaming Layer + +``` +,-----------------------------------------------------------------------------------------. +| Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | +|-----------------------------------------------------------------------------------------+ +| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Enter | +|-----------------------------------------------------------------------------------+ + +| Caps | A | S | D | F | G | H | J | K | L | ; | ' | \ | | +|-----------------------------------------------------------------------------------------+ +| Shift | Z | X | C | V | B | N | M | , | . | / | RShift | +|-----------------------------------------------------------------------------------------+ +| Ctrl | Cmd | Alt | Space | Alt | Super | Ctrl | Spec | +`-----------------------------------------------------------------------------------------' +``` diff --git a/layouts/community/60_iso/bifbofii/rules.mk b/layouts/community/60_iso/bifbofii/rules.mk new file mode 100644 index 000000000000..502b2def7623 --- /dev/null +++ b/layouts/community/60_iso/bifbofii/rules.mk @@ -0,0 +1 @@ +UNICODEMAP_ENABLE = yes From 48a8682438d5708636c3260adfb6a75ac89ed05a Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 19 Aug 2021 17:13:31 +0000 Subject: [PATCH 290/328] Linworks Whale75 Layout Macro refactor and Configurator fixes (#14059) * info.json: human-friendly formatting * info.json: remove "w":1 instances * info.json: correct positions of Left, Down and Right Arrow keys * info.json: add LAYOUT_all data * move Home key to end of home row According to photographs of the keyboard, the fourth key down on the right side is physically on the home row. This commit moves the key argument and keycodes to the home row. * whale75.h: use QMK 3-character notation for matrix * whale75.h: add matrix diagram * add keyboard-level encoder functionality * info.json: correct key sequence on ISO layouts --- keyboards/linworks/whale75/info.json | 804 ++++++++++-------- .../linworks/whale75/keymaps/default/keymap.c | 8 +- .../linworks/whale75/keymaps/via/keymap.c | 16 +- keyboards/linworks/whale75/whale75.c | 26 + keyboards/linworks/whale75/whale75.h | 143 ++-- 5 files changed, 569 insertions(+), 428 deletions(-) diff --git a/keyboards/linworks/whale75/info.json b/keyboards/linworks/whale75/info.json index 7518afb9db98..89fd24b39047 100644 --- a/keyboards/linworks/whale75/info.json +++ b/keyboards/linworks/whale75/info.json @@ -1,364 +1,456 @@ { - "keyboard_name": "Lx3 Whale 75", - "maintainer": "ebastler", - "width": 16.25, - "height": 6.5, - "layouts": { - "LAYOUT_ansi": { - "layout": [ - { "x": 0, "y": 0 }, - { "x": 2, "y": 0 }, - { "x": 3, "y": 0 }, - { "x": 4, "y": 0 }, - { "x": 5, "y": 0 }, - { "x": 6.5, "y": 0 }, - { "x": 7.5, "y": 0 }, - { "x": 8.5, "y": 0 }, - { "x": 9.5, "y": 0 }, - { "x": 11, "y": 0 }, - { "x": 12, "y": 0 }, - { "x": 13, "y": 0 }, - { "x": 14, "y": 0 }, - { "x": 15.25, "y": 0 }, + "keyboard_name": "Lx3 Whale 75", + "maintainer": "ebastler", + "width": 16.25, + "height": 6.5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, - { "x": 0, "y": 1.25 }, - { "x": 1, "y": 1.25 }, - { "x": 2, "y": 1.25 }, - { "x": 3, "y": 1.25 }, - { "x": 4, "y": 1.25 }, - { "x": 5, "y": 1.25 }, - { "x": 6, "y": 1.25 }, - { "x": 7, "y": 1.25 }, - { "x": 8, "y": 1.25 }, - { "x": 9, "y": 1.25 }, - { "x": 10, "y": 1.25 }, - { "x": 11, "y": 1.25 }, - { "x": 12, "y": 1.25 }, - { "x": 13, "y": 1.25, "w":2}, - { "x": 15.25, "y": 1.25 }, + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, - { "x": 0, "y": 2.25, "w": 1.5 }, - { "x": 1.5, "y": 2.25 }, - { "x": 2.5, "y": 2.25 }, - { "x": 3.5, "y": 2.25 }, - { "x": 4.5, "y": 2.25 }, - { "x": 5.5, "y": 2.25 }, - { "x": 6.5, "y": 2.25 }, - { "x": 7.5, "y": 2.25 }, - { "x": 8.5, "y": 2.25 }, - { "x": 9.5, "y": 2.25 }, - { "x": 10.5, "y": 2.25 }, - { "x": 11.5, "y": 2.25 }, - { "x": 12.5, "y": 2.25 }, - { "x": 13.5, "y": 2.25, "w":1.5 }, - { "x": 15.25, "y": 2.25 }, + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, - { "x": 0, "y": 3.25, "w": 1.75 }, - { "x": 1.75, "y": 3.25 }, - { "x": 2.75, "y": 3.25 }, - { "x": 3.75, "y": 3.25 }, - { "x": 4.75, "y": 3.25 }, - { "x": 5.75, "y": 3.25 }, - { "x": 6.75, "y": 3.25 }, - { "x": 7.75, "y": 3.25 }, - { "x": 8.75, "y": 3.25 }, - { "x": 9.75, "y": 3.25 }, - { "x": 10.75, "y": 3.25 }, - { "x": 11.75, "y": 3.25 }, - { "x": 12.75, "y": 3.25, "w":2.25 }, - { "x": 15.25, "y": 3.25 }, + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":3.25, "w":1.25}, + {"x":15.25, "y":3.25}, - { "x": 0, "y": 4.25, "w": 2.25 }, - { "x": 2.25, "y": 4.25 }, - { "x": 3.25, "y": 4.25 }, - { "x": 4.25, "y": 4.25 }, - { "x": 5.25, "y": 4.25 }, - { "x": 6.25, "y": 4.25 }, - { "x": 7.25, "y": 4.25 }, - { "x": 8.25, "y": 4.25 }, - { "x": 9.25, "y": 4.25 }, - { "x": 10.25, "y": 4.25 }, - { "x": 11.25, "y": 4.25 }, - { "x": 12.25, "y": 4.25, "w":1.75 }, - { "x": 14.25, "y": 4.5 }, + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14.25, "y":4.5}, - { "x": 0, "y": 5.25, "w": 1.25}, - { "x": 1.25, "y": 5.25, "w": 1.25}, - { "x": 2.5, "y": 5.25, "w": 1.25}, - { "x": 3.75, "y": 5.25, "w": 6.25}, - { "x": 10, "y": 5.25, "w": 1.5}, - { "x": 11.5, "y": 5.25, "w": 1.5}, - { "x": 13.25, "y": 5.25, "w": 1}, - { "x": 14.25, "y": 5.25, "w": 1}, - { "x": 15.25, "y": 5.25, "w": 1} - ] - }, - "LAYOUT_ansi_wkl": { - "layout": [ - { "x": 0, "y": 0 }, - { "x": 2, "y": 0 }, - { "x": 3, "y": 0 }, - { "x": 4, "y": 0 }, - { "x": 5, "y": 0 }, - { "x": 6.5, "y": 0 }, - { "x": 7.5, "y": 0 }, - { "x": 8.5, "y": 0 }, - { "x": 9.5, "y": 0 }, - { "x": 11, "y": 0 }, - { "x": 12, "y": 0 }, - { "x": 13, "y": 0 }, - { "x": 14, "y": 0 }, - { "x": 15.25, "y": 0 }, - - { "x": 0, "y": 1.25 }, - { "x": 1, "y": 1.25 }, - { "x": 2, "y": 1.25 }, - { "x": 3, "y": 1.25 }, - { "x": 4, "y": 1.25 }, - { "x": 5, "y": 1.25 }, - { "x": 6, "y": 1.25 }, - { "x": 7, "y": 1.25 }, - { "x": 8, "y": 1.25 }, - { "x": 9, "y": 1.25 }, - { "x": 10, "y": 1.25 }, - { "x": 11, "y": 1.25 }, - { "x": 12, "y": 1.25 }, - { "x": 13, "y": 1.25, "w":2}, - { "x": 15.25, "y": 1.25 }, - - { "x": 0, "y": 2.25, "w": 1.5 }, - { "x": 1.5, "y": 2.25 }, - { "x": 2.5, "y": 2.25 }, - { "x": 3.5, "y": 2.25 }, - { "x": 4.5, "y": 2.25 }, - { "x": 5.5, "y": 2.25 }, - { "x": 6.5, "y": 2.25 }, - { "x": 7.5, "y": 2.25 }, - { "x": 8.5, "y": 2.25 }, - { "x": 9.5, "y": 2.25 }, - { "x": 10.5, "y": 2.25 }, - { "x": 11.5, "y": 2.25 }, - { "x": 12.5, "y": 2.25 }, - { "x": 13.5, "y": 2.25, "w":1.5 }, - { "x": 15.25, "y": 2.25 }, - - { "x": 0, "y": 3.25, "w": 1.75 }, - { "x": 1.75, "y": 3.25 }, - { "x": 2.75, "y": 3.25 }, - { "x": 3.75, "y": 3.25 }, - { "x": 4.75, "y": 3.25 }, - { "x": 5.75, "y": 3.25 }, - { "x": 6.75, "y": 3.25 }, - { "x": 7.75, "y": 3.25 }, - { "x": 8.75, "y": 3.25 }, - { "x": 9.75, "y": 3.25 }, - { "x": 10.75, "y": 3.25 }, - { "x": 11.75, "y": 3.25 }, - { "x": 12.75, "y": 3.25, "w":2.25 }, - { "x": 15.25, "y": 3.25 }, - - { "x": 0, "y": 4.25, "w": 2.25 }, - { "x": 2.25, "y": 4.25 }, - { "x": 3.25, "y": 4.25 }, - { "x": 4.25, "y": 4.25 }, - { "x": 5.25, "y": 4.25 }, - { "x": 6.25, "y": 4.25 }, - { "x": 7.25, "y": 4.25 }, - { "x": 8.25, "y": 4.25 }, - { "x": 9.25, "y": 4.25 }, - { "x": 10.25, "y": 4.25 }, - { "x": 11.25, "y": 4.25 }, - { "x": 12.25, "y": 4.25, "w":1.75 }, - { "x": 14.25, "y": 4.5 }, - - { "x": 0, "y": 5.25, "w": 1.5}, - { "x": 1.5, "y": 5.25, "w": 1.5}, - { "x": 3, "y": 5.25, "w": 7}, - { "x": 10, "y": 5.25, "w": 1.5}, - { "x": 11.5, "y": 5.25, "w": 1.5}, - { "x": 13.25, "y": 5.25, "w": 1}, - { "x": 14.25, "y": 5.25, "w": 1}, - { "x": 15.25, "y": 5.25, "w": 1} - ] - }, - "LAYOUT_iso": { - "layout": [ - { "x": 0, "y": 0 }, - { "x": 2, "y": 0 }, - { "x": 3, "y": 0 }, - { "x": 4, "y": 0 }, - { "x": 5, "y": 0 }, - { "x": 6.5, "y": 0 }, - { "x": 7.5, "y": 0 }, - { "x": 8.5, "y": 0 }, - { "x": 9.5, "y": 0 }, - { "x": 11, "y": 0 }, - { "x": 12, "y": 0 }, - { "x": 13, "y": 0 }, - { "x": 14, "y": 0 }, - { "x": 15.25, "y": 0 }, - - { "x": 0, "y": 1.25 }, - { "x": 1, "y": 1.25 }, - { "x": 2, "y": 1.25 }, - { "x": 3, "y": 1.25 }, - { "x": 4, "y": 1.25 }, - { "x": 5, "y": 1.25 }, - { "x": 6, "y": 1.25 }, - { "x": 7, "y": 1.25 }, - { "x": 8, "y": 1.25 }, - { "x": 9, "y": 1.25 }, - { "x": 10, "y": 1.25 }, - { "x": 11, "y": 1.25 }, - { "x": 12, "y": 1.25 }, - { "x": 13, "y": 1.25, "w":2}, - { "x": 15.25, "y": 1.25 }, - - { "x": 0, "y": 2.25, "w": 1.5 }, - { "x": 1.5, "y": 2.25 }, - { "x": 2.5, "y": 2.25 }, - { "x": 3.5, "y": 2.25 }, - { "x": 4.5, "y": 2.25 }, - { "x": 5.5, "y": 2.25 }, - { "x": 6.5, "y": 2.25 }, - { "x": 7.5, "y": 2.25 }, - { "x": 8.5, "y": 2.25 }, - { "x": 9.5, "y": 2.25 }, - { "x": 10.5, "y": 2.25 }, - { "x": 11.5, "y": 2.25 }, - { "x": 12.5, "y": 2.25 }, - { "x": 13.75, "y":2.25, "w":1.25, "h":2 }, - { "x": 15.25, "y": 2.25 }, - - { "x": 0, "y": 3.25, "w": 1.75 }, - { "x": 1.75, "y": 3.25 }, - { "x": 2.75, "y": 3.25 }, - { "x": 3.75, "y": 3.25 }, - { "x": 4.75, "y": 3.25 }, - { "x": 5.75, "y": 3.25 }, - { "x": 6.75, "y": 3.25 }, - { "x": 7.75, "y": 3.25 }, - { "x": 8.75, "y": 3.25 }, - { "x": 9.75, "y": 3.25 }, - { "x": 10.75, "y": 3.25 }, - { "x": 11.75, "y": 3.25 }, - { "x": 12.75, "y": 3.25 }, - { "x": 15.25, "y": 3.25 }, - - { "x": 0, "y": 4.25, "w": 1.25 }, - { "x": 1.25, "y": 4.25 }, - { "x": 2.25, "y": 4.25 }, - { "x": 3.25, "y": 4.25 }, - { "x": 4.25, "y": 4.25 }, - { "x": 5.25, "y": 4.25 }, - { "x": 6.25, "y": 4.25 }, - { "x": 7.25, "y": 4.25 }, - { "x": 8.25, "y": 4.25 }, - { "x": 9.25, "y": 4.25 }, - { "x": 10.25, "y": 4.25 }, - { "x": 11.25, "y": 4.25 }, - { "x": 12.25, "y": 4.25, "w":1.75 }, - { "x": 14.25, "y": 4.5 }, - - { "x": 0, "y": 5.25, "w": 1.25}, - { "x": 1.25, "y": 5.25, "w": 1.25}, - { "x": 2.5, "y": 5.25, "w": 1.25}, - { "x": 3.75, "y": 5.25, "w": 6.25}, - { "x": 10, "y": 5.25, "w": 1.5}, - { "x": 11.5, "y": 5.25, "w": 1.5}, - { "x": 13.25, "y": 5.25, "w": 1}, - { "x": 14.25, "y": 5.25, "w": 1}, - { "x": 15.25, "y": 5.25, "w": 1} - ] - }, - "LAYOUT_iso_wkl": { - "layout": [ - { "x": 0, "y": 0 }, - { "x": 2, "y": 0 }, - { "x": 3, "y": 0 }, - { "x": 4, "y": 0 }, - { "x": 5, "y": 0 }, - { "x": 6.5, "y": 0 }, - { "x": 7.5, "y": 0 }, - { "x": 8.5, "y": 0 }, - { "x": 9.5, "y": 0 }, - { "x": 11, "y": 0 }, - { "x": 12, "y": 0 }, - { "x": 13, "y": 0 }, - { "x": 14, "y": 0 }, - { "x": 15.25, "y": 0 }, - - { "x": 0, "y": 1.25 }, - { "x": 1, "y": 1.25 }, - { "x": 2, "y": 1.25 }, - { "x": 3, "y": 1.25 }, - { "x": 4, "y": 1.25 }, - { "x": 5, "y": 1.25 }, - { "x": 6, "y": 1.25 }, - { "x": 7, "y": 1.25 }, - { "x": 8, "y": 1.25 }, - { "x": 9, "y": 1.25 }, - { "x": 10, "y": 1.25 }, - { "x": 11, "y": 1.25 }, - { "x": 12, "y": 1.25 }, - { "x": 13, "y": 1.25, "w":2}, - { "x": 15.25, "y": 1.25 }, - - { "x": 0, "y": 2.25, "w": 1.5 }, - { "x": 1.5, "y": 2.25 }, - { "x": 2.5, "y": 2.25 }, - { "x": 3.5, "y": 2.25 }, - { "x": 4.5, "y": 2.25 }, - { "x": 5.5, "y": 2.25 }, - { "x": 6.5, "y": 2.25 }, - { "x": 7.5, "y": 2.25 }, - { "x": 8.5, "y": 2.25 }, - { "x": 9.5, "y": 2.25 }, - { "x": 10.5, "y": 2.25 }, - { "x": 11.5, "y": 2.25 }, - { "x": 12.5, "y": 2.25 }, - { "x": 13.75, "y":2.25, "w":1.25, "h":2 }, - { "x": 15.25, "y": 2.25 }, - - { "x": 0, "y": 3.25, "w": 1.75 }, - { "x": 1.75, "y": 3.25 }, - { "x": 2.75, "y": 3.25 }, - { "x": 3.75, "y": 3.25 }, - { "x": 4.75, "y": 3.25 }, - { "x": 5.75, "y": 3.25 }, - { "x": 6.75, "y": 3.25 }, - { "x": 7.75, "y": 3.25 }, - { "x": 8.75, "y": 3.25 }, - { "x": 9.75, "y": 3.25 }, - { "x": 10.75, "y": 3.25 }, - { "x": 11.75, "y": 3.25 }, - { "x": 12.75, "y": 3.25 }, - { "x": 15.25, "y": 3.25 }, - - { "x": 0, "y": 4.25, "w": 1.25 }, - { "x": 1.25, "y": 4.25 }, - { "x": 2.25, "y": 4.25 }, - { "x": 3.25, "y": 4.25 }, - { "x": 4.25, "y": 4.25 }, - { "x": 5.25, "y": 4.25 }, - { "x": 6.25, "y": 4.25 }, - { "x": 7.25, "y": 4.25 }, - { "x": 8.25, "y": 4.25 }, - { "x": 9.25, "y": 4.25 }, - { "x": 10.25, "y": 4.25 }, - { "x": 11.25, "y": 4.25 }, - { "x": 12.25, "y": 4.25, "w":1.75 }, - { "x": 14.25, "y": 4.5 }, - - { "x": 0, "y": 5.25, "w": 1.5}, - { "x": 1.5, "y": 5.25, "w": 1.5}, - { "x": 3, "y": 5.25, "w": 7}, - { "x": 10, "y": 5.25, "w": 1.5}, - { "x": 11.5, "y": 5.25, "w": 1.5}, - { "x": 13.25, "y": 5.25, "w": 1}, - { "x": 14.25, "y": 5.25, "w": 1}, - { "x": 15.25, "y": 5.25, "w": 1} - ] + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.5}, + {"x":11.5, "y":5.25, "w":1.5}, + {"x":13.25, "y":5.5}, + {"x":14.25, "y":5.5}, + {"x":15.25, "y":5.5} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + {"x":15.25, "y":3.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14.25, "y":4.5}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.5}, + {"x":11.5, "y":5.25, "w":1.5}, + {"x":13.25, "y":5.5}, + {"x":14.25, "y":5.5}, + {"x":15.25, "y":5.5} + ] + }, + "LAYOUT_ansi_wkl": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + {"x":15.25, "y":3.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14.25, "y":4.5}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25, "w":1.5}, + {"x":3, "y":5.25, "w":7}, + {"x":10, "y":5.25, "w":1.5}, + {"x":11.5, "y":5.25, "w":1.5}, + {"x":13.25, "y":5.5}, + {"x":14.25, "y":5.5}, + {"x":15.25, "y":5.5} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + {"x":15.25, "y":3.25}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14.25, "y":4.5}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.5}, + {"x":11.5, "y":5.25, "w":1.5}, + {"x":13.25, "y":5.5}, + {"x":14.25, "y":5.5}, + {"x":15.25, "y":5.5} + ] + }, + "LAYOUT_iso_wkl": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + {"x":15.25, "y":3.25}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14.25, "y":4.5}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25, "w":1.5}, + {"x":3, "y":5.25, "w":7}, + {"x":10, "y":5.25, "w":1.5}, + {"x":11.5, "y":5.25, "w":1.5}, + {"x":13.25, "y":5.5}, + {"x":14.25, "y":5.5}, + {"x":15.25, "y":5.5} + ] + } } - } } diff --git a/keyboards/linworks/whale75/keymaps/default/keymap.c b/keyboards/linworks/whale75/keymaps/default/keymap.c index a2298865ef22..8aa21048ebb0 100644 --- a/keyboards/linworks/whale75/keymaps/default/keymap.c +++ b/keyboards/linworks/whale75/keymaps/default/keymap.c @@ -21,8 +21,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_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_TRNS, KC_BSPC, KC_INS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_HOME, + 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_HOME, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_TOG, RGB_VAD, RGB_VAI, BL_DEC, BL_INC, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_SPI, RGB_SPI, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keyboards/linworks/whale75/keymaps/via/keymap.c b/keyboards/linworks/whale75/keymaps/via/keymap.c index 3412e8397ffc..eab5f110d124 100644 --- a/keyboards/linworks/whale75/keymaps/via/keymap.c +++ b/keyboards/linworks/whale75/keymaps/via/keymap.c @@ -21,8 +21,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_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_TRNS, KC_BSPC, KC_INS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_HOME, + 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_HOME, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), @@ -30,16 +30,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_TOG, RGB_VAD, RGB_VAI, BL_DEC, BL_INC, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_RMOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( /* keymap for layer 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -47,8 +47,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/whale75/whale75.c b/keyboards/linworks/whale75/whale75.c index 4bce30adf3e4..ef86e0268a7b 100644 --- a/keyboards/linworks/whale75/whale75.c +++ b/keyboards/linworks/whale75/whale75.c @@ -14,3 +14,29 @@ * along with this program. If not, see . */ #include "whale75.h" + +#if defined(ENCODER_ENABLE) +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + /* The switch case allows for different encoder mappings on different layers, "default" map gets applied for all unspecified layers */ + switch(get_highest_layer(layer_state)){ + case 1: + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + break; + default: + if (clockwise){ + tap_code(KC_VOLU); + } else{ + tap_code(KC_VOLD); + } + break; + } + } + return true; +} +#endif diff --git a/keyboards/linworks/whale75/whale75.h b/keyboards/linworks/whale75/whale75.h index f5ba205ecc72..44b77a1dd08b 100644 --- a/keyboards/linworks/whale75/whale75.h +++ b/keyboards/linworks/whale75/whale75.h @@ -18,82 +18,105 @@ #include "quantum.h" +#define XXX KC_NO + +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ + * │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0F │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │1F │ │1E │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤ └─┬─────┤ + * │20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │ │2F │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┤ ┌──┴┐3E │ ISO + * LShift │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │ │4F │ │3D │ │ Enter + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ └───┘ └───┴────┘ + * │40 │ │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4D │ ┌───┐ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘ │4E │ + * │50 │51 │52 │56 │5A │5B │ ┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴─────┴─────┘ │5D │5E │5F │ + * └───┴───┴───┘ + * ┌─────┬─────┬───────────────────────────┬─────┬─────┐ + * WKL │50 │52 │56 │5A │5B │ + * └─────┴─────┴───────────────────────────┴─────┴─────┘ + */ + #define LAYOUT_all( \ - K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K501, K502, K506, K510, K511, K513, K514, K515 \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K4F, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5D, K5E, K5F \ ) { \ - { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, KC_NO }, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, KC_NO, K513, K514, K515 } \ + { K00, XXX, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, XXX, K5D, K5E, K5F } \ } #define LAYOUT_ansi( \ - K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, \ - K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K501, K502, K506, K510, K511, K513, K514, K515 \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K4F, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5D, K5E, K5F \ ) { \ - { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314, KC_NO }, \ - { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, KC_NO, K513, K514, K515 } \ + { K00, XXX, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX, K3E, XXX }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, XXX, K5D, K5E, K5F } \ } #define LAYOUT_ansi_wkl( \ - K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, \ - K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K502, K506, K510, K511, K513, K514, K515 \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K4F, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, \ + K50, K52, K56, K5A, K5B, K5D, K5E, K5F \ ) { \ - { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314, KC_NO }, \ - { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, KC_NO, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, KC_NO, K513, K514, K515 } \ + { K00, XXX, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX, K3E, XXX }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, XXX, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, XXX, K5D, K5E, K5F } \ } #define LAYOUT_iso( \ - K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K501, K502, K506, K510, K511, K513, K514, K515 \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K4F, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5D, K5E, K5F \ ) { \ - { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, KC_NO }, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, KC_NO, K513, K514, K515 } \ + { K00, XXX, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, XXX, K5D, K5E, K5F } \ } #define LAYOUT_iso_wkl( \ - K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K502, K506, K510, K511, K513, K514, K515 \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K4F, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, \ + K50, K52, K56, K5A, K5B, K5D, K5E, K5F \ ) { \ - { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, KC_NO }, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, KC_NO, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, KC_NO, K513, K514, K515 } \ + { K00, XXX, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, XXX, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, XXX, K5D, K5E, K5F } \ } From c98e1694fbd1ff1234e0d7c7e00cf690188a50c1 Mon Sep 17 00:00:00 2001 From: qpockets <69164255+qpockets@users.noreply.github.com> Date: Thu, 19 Aug 2021 13:17:01 -0400 Subject: [PATCH 291/328] [Keyboard] update space_space keyboard (#13305) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/space_space/readme.md | 8 +- keyboards/space_space/{ => rev1}/config.h | 20 ++-- keyboards/space_space/{ => rev1}/info.json | 0 .../{ => rev1}/keymaps/big_space/config.h | 0 .../{ => rev1}/keymaps/big_space/keymap.c | 2 - .../{ => rev1}/keymaps/big_space/rules.mk | 0 .../{ => rev1}/keymaps/default/config.h | 0 .../{ => rev1}/keymaps/default/keymap.c | 2 - .../{ => rev1}/keymaps/default/rules.mk | 0 .../space_space/{ => rev1}/keymaps/readme.md | 0 keyboards/space_space/rev1/readme.md | 18 ++++ keyboards/space_space/rev1/rules.mk | 23 +++++ .../space_space/{ => rev1}/space_space.c | 0 keyboards/space_space/rev1/space_space.h | 45 +++++++++ keyboards/space_space/rev2/config.h | 59 ++++++++++++ keyboards/space_space/rev2/info.json | 92 +++++++++++++++++++ .../rev2/keymaps/big_space/config.h | 27 ++++++ .../rev2/keymaps/big_space/keymap.c | 81 ++++++++++++++++ .../rev2/keymaps/big_space/rules.mk | 1 + .../space_space/rev2/keymaps/default/config.h | 27 ++++++ .../space_space/rev2/keymaps/default/keymap.c | 77 ++++++++++++++++ .../space_space/rev2/keymaps/default/rules.mk | 1 + .../rev2/keymaps/qpockets/config.h | 27 ++++++ .../rev2/keymaps/qpockets/keymap.c | 75 +++++++++++++++ .../rev2/keymaps/qpockets/rules.mk | 1 + keyboards/space_space/rev2/readme.md | 18 ++++ keyboards/space_space/rev2/rev2.c | 35 +++++++ keyboards/space_space/rev2/rev2.h | 49 ++++++++++ keyboards/space_space/rev2/rules.mk | 23 +++++ keyboards/space_space/rules.mk | 24 +---- keyboards/space_space/space_space.h | 48 ---------- 31 files changed, 696 insertions(+), 87 deletions(-) rename keyboards/space_space/{ => rev1}/config.h (82%) rename keyboards/space_space/{ => rev1}/info.json (100%) rename keyboards/space_space/{ => rev1}/keymaps/big_space/config.h (100%) rename keyboards/space_space/{ => rev1}/keymaps/big_space/keymap.c (99%) rename keyboards/space_space/{ => rev1}/keymaps/big_space/rules.mk (100%) rename keyboards/space_space/{ => rev1}/keymaps/default/config.h (100%) rename keyboards/space_space/{ => rev1}/keymaps/default/keymap.c (99%) rename keyboards/space_space/{ => rev1}/keymaps/default/rules.mk (100%) rename keyboards/space_space/{ => rev1}/keymaps/readme.md (100%) create mode 100644 keyboards/space_space/rev1/readme.md create mode 100644 keyboards/space_space/rev1/rules.mk rename keyboards/space_space/{ => rev1}/space_space.c (100%) create mode 100644 keyboards/space_space/rev1/space_space.h create mode 100644 keyboards/space_space/rev2/config.h create mode 100644 keyboards/space_space/rev2/info.json create mode 100644 keyboards/space_space/rev2/keymaps/big_space/config.h create mode 100644 keyboards/space_space/rev2/keymaps/big_space/keymap.c create mode 100644 keyboards/space_space/rev2/keymaps/big_space/rules.mk create mode 100644 keyboards/space_space/rev2/keymaps/default/config.h create mode 100644 keyboards/space_space/rev2/keymaps/default/keymap.c create mode 100644 keyboards/space_space/rev2/keymaps/default/rules.mk create mode 100644 keyboards/space_space/rev2/keymaps/qpockets/config.h create mode 100644 keyboards/space_space/rev2/keymaps/qpockets/keymap.c create mode 100644 keyboards/space_space/rev2/keymaps/qpockets/rules.mk create mode 100644 keyboards/space_space/rev2/readme.md create mode 100644 keyboards/space_space/rev2/rev2.c create mode 100644 keyboards/space_space/rev2/rev2.h create mode 100644 keyboards/space_space/rev2/rules.mk delete mode 100644 keyboards/space_space/space_space.h diff --git a/keyboards/space_space/readme.md b/keyboards/space_space/readme.md index c0d254faac30..08fa640f222d 100644 --- a/keyboards/space_space/readme.md +++ b/keyboards/space_space/readme.md @@ -1,18 +1,18 @@ # space_space -![space_space](https://i.imgur.com/qdkG8K7l.jpg) +![space_space](https://i.imgur.com/SxjhzIMl.jpg) Give your space some space * Keyboard Maintainer: https://github.com/qpockets -* Hardware Availability: +* Hardware Availability: [p3dstore](https://p3dstore.com/products/space-space-acrylic-case?_pos=21&_sid=c75de6a78&_ss=r&variant=39907740844216) Make example for this keyboard (after setting up your build environment): - make space_space:default + make space_space/rev2:default Flashing example for this keyboard: - make space_space:default:flash + make space_space/rev2: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). diff --git a/keyboards/space_space/config.h b/keyboards/space_space/rev1/config.h similarity index 82% rename from keyboards/space_space/config.h rename to keyboards/space_space/rev1/config.h index 20b1180d3a1d..d52aad4c2b96 100644 --- a/keyboards/space_space/config.h +++ b/keyboards/space_space/rev1/config.h @@ -13,7 +13,7 @@ * 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" @@ -28,9 +28,11 @@ /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 - -#define MATRIX_ROW_PINS { F1, F4, F5, C7 } -#define MATRIX_COL_PINS { D4, B4, B5, B6, C6, F7, F6, F0, B0, E6, B1 } + +#define MATRIX_ROW_PINS \ + { F1, F4, F5, C7 } +#define MATRIX_COL_PINS \ + { D4, B4, B5, B6, C6, F7, F6, F0, B0, E6, B1 } #define UNUSED_PINS @@ -38,13 +40,15 @@ #define DIODE_DIRECTION COL2ROW /* ROTARY ENCODERS */ -#define ENCODERS_PAD_A { B3, D6 } -#define ENCODERS_PAD_B { B2, D7 } +#define ENCODERS_PAD_A \ + { B3, D6 } +#define ENCODERS_PAD_B \ + { B2, D7 } -#define ENCODER_RESOLUTIONS { 3, 4 } +#define ENCODER_RESOLUTIONS \ + { 3, 4 } //#define ENCODER_DIRECTION_FLIP - #define DEBOUNCE 7 #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/space_space/info.json b/keyboards/space_space/rev1/info.json similarity index 100% rename from keyboards/space_space/info.json rename to keyboards/space_space/rev1/info.json diff --git a/keyboards/space_space/keymaps/big_space/config.h b/keyboards/space_space/rev1/keymaps/big_space/config.h similarity index 100% rename from keyboards/space_space/keymaps/big_space/config.h rename to keyboards/space_space/rev1/keymaps/big_space/config.h diff --git a/keyboards/space_space/keymaps/big_space/keymap.c b/keyboards/space_space/rev1/keymaps/big_space/keymap.c similarity index 99% rename from keyboards/space_space/keymaps/big_space/keymap.c rename to keyboards/space_space/rev1/keymaps/big_space/keymap.c index f99925971a07..62241532e885 100644 --- a/keyboards/space_space/keymaps/big_space/keymap.c +++ b/keyboards/space_space/rev1/keymaps/big_space/keymap.c @@ -13,7 +13,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - #include QMK_KEYBOARD_H enum layers{ @@ -94,7 +93,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 0) { /* right encoder */ switch(get_highest_layer(layer_state)){ - case _SYM: if (clockwise) { tap_code(KC_MPRV); diff --git a/keyboards/space_space/keymaps/big_space/rules.mk b/keyboards/space_space/rev1/keymaps/big_space/rules.mk similarity index 100% rename from keyboards/space_space/keymaps/big_space/rules.mk rename to keyboards/space_space/rev1/keymaps/big_space/rules.mk diff --git a/keyboards/space_space/keymaps/default/config.h b/keyboards/space_space/rev1/keymaps/default/config.h similarity index 100% rename from keyboards/space_space/keymaps/default/config.h rename to keyboards/space_space/rev1/keymaps/default/config.h diff --git a/keyboards/space_space/keymaps/default/keymap.c b/keyboards/space_space/rev1/keymaps/default/keymap.c similarity index 99% rename from keyboards/space_space/keymaps/default/keymap.c rename to keyboards/space_space/rev1/keymaps/default/keymap.c index 3de82fa923ac..6b4219b28903 100644 --- a/keyboards/space_space/keymaps/default/keymap.c +++ b/keyboards/space_space/rev1/keymaps/default/keymap.c @@ -13,7 +13,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - #include QMK_KEYBOARD_H enum layers{ @@ -96,7 +95,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 0) { /* right encoder */ switch(get_highest_layer(layer_state)){ - case _SYM: if (clockwise) { tap_code(KC_MPRV); diff --git a/keyboards/space_space/keymaps/default/rules.mk b/keyboards/space_space/rev1/keymaps/default/rules.mk similarity index 100% rename from keyboards/space_space/keymaps/default/rules.mk rename to keyboards/space_space/rev1/keymaps/default/rules.mk diff --git a/keyboards/space_space/keymaps/readme.md b/keyboards/space_space/rev1/keymaps/readme.md similarity index 100% rename from keyboards/space_space/keymaps/readme.md rename to keyboards/space_space/rev1/keymaps/readme.md diff --git a/keyboards/space_space/rev1/readme.md b/keyboards/space_space/rev1/readme.md new file mode 100644 index 000000000000..4b170612e823 --- /dev/null +++ b/keyboards/space_space/rev1/readme.md @@ -0,0 +1,18 @@ +# space_space + +![space_space](https://i.imgur.com/qdkG8K7l.jpg) + +Give your space some space + +* Keyboard Maintainer: https://github.com/qpockets +* Hardware Availability: limited + +Make example for this keyboard (after setting up your build environment): + + make space_space/rev1:default + +Flashing example for this keyboard: + + make space_space/rev1: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). diff --git a/keyboards/space_space/rev1/rules.mk b/keyboards/space_space/rev1/rules.mk new file mode 100644 index 000000000000..831de6dc5cd8 --- /dev/null +++ b/keyboards/space_space/rev1/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/space_space/space_space.c b/keyboards/space_space/rev1/space_space.c similarity index 100% rename from keyboards/space_space/space_space.c rename to keyboards/space_space/rev1/space_space.c diff --git a/keyboards/space_space/rev1/space_space.h b/keyboards/space_space/rev1/space_space.h new file mode 100644 index 000000000000..e56068ec42a3 --- /dev/null +++ b/keyboards/space_space/rev1/space_space.h @@ -0,0 +1,45 @@ +/* Copyright 2020 qpockets + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_default( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52, \ + K32, K33, K34, K36, K37, K38 \ +) { \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50}, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51}, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52}, \ + {XXX, XXX, K32, K33, K34, XXX, K36, K37, K38, XXX, XXX} \ +} + +#define LAYOUT_big_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52, \ + K32, K35, K38 \ +) { \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50}, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51}, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52}, \ + {XXX, XXX, K32, XXX, XXX, K35, XXX, XXX, K38, XXX, XXX} \ +} diff --git a/keyboards/space_space/rev2/config.h b/keyboards/space_space/rev2/config.h new file mode 100644 index 000000000000..66f8f6add435 --- /dev/null +++ b/keyboards/space_space/rev2/config.h @@ -0,0 +1,59 @@ +/* Copyright 2021 qpockets + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7170 +#define PRODUCT_ID 0x7373 +#define DEVICE_VER 0x3002 +#define MANUFACTURER qpockets +#define PRODUCT space_space + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +#define MATRIX_ROW_PINS \ + { B1, B0, D5, B6 } +#define MATRIX_COL_PINS \ + { C6, F6, F1, F4, F5, E6, D6, B2, B5, D3, D2 } + +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* ROTARY ENCODERS */ +#define ENCODERS_PAD_A \ + { D7, F7 } +#define ENCODERS_PAD_B \ + { B4, C7 } + +#define ENCODER_RESOLUTION 3 +#define ENCODER_DIRECTION_FLIP + +#define DEBOUNCE 5 + +#define LOCKING_SUPPORT_ENABLE + +#define RGB_DI_PIN F0 +#define RGBLED_NUM 4 + +#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGBLIGHT_DEFAULT_HUE 130 diff --git a/keyboards/space_space/rev2/info.json b/keyboards/space_space/rev2/info.json new file mode 100644 index 000000000000..b0dcdc8598b4 --- /dev/null +++ b/keyboards/space_space/rev2/info.json @@ -0,0 +1,92 @@ +{ + "keyboard_name": "space_space", + "url": "", + "maintainer": "qpockets", + "width": 11.5, + "height": 4.35, + "layouts": { + "LAYOUT_default": { + "layout": [ + {"label":"Q", "x":0, "y":0}, + {"label":"W", "x":1, "y":0}, + {"label":"E", "x":2, "y":0}, + {"label":"R", "x":3, "y":0}, + {"label":"T", "x":4, "y":0}, + {"label":"Delete", "x":5, "y":0, "w":1.5}, + {"label":"Y", "x":6.5, "y":0}, + {"label":"U", "x":7.5, "y":0}, + {"label":"I", "x":8.5, "y":0}, + {"label":"O", "x":9.5, "y":0}, + {"label":"P", "x":10.5, "y":0}, + {"label":"A", "x":0, "y":1}, + {"label":"S", "x":1, "y":1}, + {"label":"D", "x":2, "y":1}, + {"label":"F", "x":3, "y":1}, + {"label":"G", "x":4, "y":1}, + {"label":"Tab", "x":5, "y":1, "w":1.5}, + {"label":"H", "x":6.5, "y":1}, + {"label":"J", "x":7.5, "y":1}, + {"label":"K", "x":8.5, "y":1}, + {"label":"L", "x":9.5, "y":1}, + {"label":"\"", "x":10.5, "y":1}, + {"label":"Z", "x":0, "y":2}, + {"label":"X", "x":1, "y":2}, + {"label":"C", "x":2, "y":2}, + {"label":"V", "x":3, "y":2}, + {"label":"B", "x":4, "y":2}, + {"label":"Shift", "x":5, "y":2, "w":1.5}, + {"label":"N", "x":6.5, "y":2}, + {"label":"M", "x":7.5, "y":2}, + {"label":"<", "x":8.5, "y":2}, + {"label":">", "x":9.5, "y":2}, + {"label":"?", "x":10.5, "y":2}, + {"label":"Ctrl", "x":1.25, "y":3.35, "w":1.25}, + {"label":"Fn", "x":2.5, "y":3.35}, + {"label":"Backspace", "x":3.5, "y":3.35, "w":2}, + {"label":"Space", "x":5.5, "y":3.35, "w":2.25}, + {"label":"Gui", "x":7.75, "y":3.35}, + {"label":"Alt", "x":8.75, "y":3.35, "w":1.25} + ] + }, + "LAYOUT_big_space": { + "layout": [ + {"label":"Q", "x":0, "y":0}, + {"label":"W", "x":1, "y":0}, + {"label":"E", "x":2, "y":0}, + {"label":"R", "x":3, "y":0}, + {"label":"T", "x":4, "y":0}, + {"label":"Delete", "x":5, "y":0, "w":1.5}, + {"label":"Y", "x":6.5, "y":0}, + {"label":"U", "x":7.5, "y":0}, + {"label":"I", "x":8.5, "y":0}, + {"label":"O", "x":9.5, "y":0}, + {"label":"P", "x":10.5, "y":0}, + {"label":"A", "x":0, "y":1}, + {"label":"S", "x":1, "y":1}, + {"label":"D", "x":2, "y":1}, + {"label":"F", "x":3, "y":1}, + {"label":"G", "x":4, "y":1}, + {"label":"Tab", "x":5, "y":1, "w":1.5}, + {"label":"H", "x":6.5, "y":1}, + {"label":"J", "x":7.5, "y":1}, + {"label":"K", "x":8.5, "y":1}, + {"label":"L", "x":9.5, "y":1}, + {"label":"\"", "x":10.5, "y":1}, + {"label":"Z", "x":0, "y":2}, + {"label":"X", "x":1, "y":2}, + {"label":"C", "x":2, "y":2}, + {"label":"V", "x":3, "y":2}, + {"label":"B", "x":4, "y":2}, + {"label":"Shift", "x":5, "y":2, "w":1.5}, + {"label":"N", "x":6.5, "y":2}, + {"label":"M", "x":7.5, "y":2}, + {"label":"<", "x":8.5, "y":2}, + {"label":">", "x":9.5, "y":2}, + {"label":"?", "x":10.5, "y":2}, + {"label":"Ctrl", "x":1.25, "y":3.35, "w":1.25}, + {"label":"Space", "x":2.5, "y":3.35, "w":6.25}, + {"label":"Alt", "x":8.75, "y":3.35, "w":1.25} + ] + } + } +} diff --git a/keyboards/space_space/rev2/keymaps/big_space/config.h b/keyboards/space_space/rev2/keymaps/big_space/config.h new file mode 100644 index 000000000000..ffc2124e1b53 --- /dev/null +++ b/keyboards/space_space/rev2/keymaps/big_space/config.h @@ -0,0 +1,27 @@ +/* Copyright 2021 qpockets + * + * 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 + +/*Modtaps*/ +#define TAPPING_TERM 175 +#define IGNORE_MOD_TAP_INTERRUPT + +/*Combos*/ +#ifdef COMBO_ENABLE +# define COMBO_COUNT 5 +# define COMBO_TERM 50 +#endif \ No newline at end of file diff --git a/keyboards/space_space/rev2/keymaps/big_space/keymap.c b/keyboards/space_space/rev2/keymaps/big_space/keymap.c new file mode 100644 index 000000000000..a272c001b4cf --- /dev/null +++ b/keyboards/space_space/rev2/keymaps/big_space/keymap.c @@ -0,0 +1,81 @@ +/* Copyright 2020 qpockets + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _SYM, + _NUM, + _NAV +}; + +enum combo_events { + COMBO_BSPC, + COMBO_ENT, + COMBO_TAB, + COMBO_ESC, + COMBO_DEL +}; +#define KC_UP_SPC LT(_SYM, KC_SPC) +#define KC_GZ LGUI_T(KC_Z) +#define KC_AA LALT_T(KC_A) +#define KC_CC LCTL_T(KC_C) +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) +#define KC_CCOMM RCTL_T(KC_COMM) +#define KC_AQUOT RALT_T(KC_QUOT) +#define KC_GSLSH RGUI_T(KC_SLSH) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_big_space( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_DEL, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_AA, KC_S, KC_D, KC_SF, KC_G, KC_BSPC, KC_H, KC_SJ, KC_K, KC_L, KC_AQUOT, + KC_GZ, KC_X, KC_CC, KC_V, KC_B, KC_LSFT, KC_N, KC_M, KC_CCOMM, KC_DOT, KC_GSLSH, + MO(_NAV), KC_UP_SPC, KC_RALT + ), + + [_SYM] = LAYOUT_big_space( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_PIPE, KC_BSLS, KC_LPRN, KC_LBRC, KC_SCLN, KC_TRNS, KC_COLN, KC_RBRC, KC_RPRN, KC_PLUS, KC_UNDS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_NAV] = LAYOUT_big_space( + KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, + KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, + KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_ENT, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM combo_ent[] = {KC_K, KC_L, COMBO_END}; +const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), + [COMBO_ENT] = COMBO(combo_ent,KC_ENT), + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL) +}; +#endif diff --git a/keyboards/space_space/rev2/keymaps/big_space/rules.mk b/keyboards/space_space/rev2/keymaps/big_space/rules.mk new file mode 100644 index 000000000000..ff681299e4e9 --- /dev/null +++ b/keyboards/space_space/rev2/keymaps/big_space/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/space_space/rev2/keymaps/default/config.h b/keyboards/space_space/rev2/keymaps/default/config.h new file mode 100644 index 000000000000..0b0e89fa1f75 --- /dev/null +++ b/keyboards/space_space/rev2/keymaps/default/config.h @@ -0,0 +1,27 @@ +/* Copyright 2021 qpockets + * + * 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 + +/*Modtaps*/ +#define TAPPING_TERM 165 +#define IGNORE_MOD_TAP_INTERRUPT + +/*Combos*/ +#ifdef COMBO_ENABLE +# define COMBO_COUNT 5 +# define COMBO_TERM 50 +#endif \ No newline at end of file diff --git a/keyboards/space_space/rev2/keymaps/default/keymap.c b/keyboards/space_space/rev2/keymaps/default/keymap.c new file mode 100644 index 000000000000..64f34c829174 --- /dev/null +++ b/keyboards/space_space/rev2/keymaps/default/keymap.c @@ -0,0 +1,77 @@ +/* Copyright 2021 qpockets + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _SYM, + _NAV +}; + +enum combo_events { + COMBO_BSPC, + COMBO_ENT, + COMBO_TAB, + COMBO_ESC, + COMBO_DEL +}; +#define KC_DN_BSPC LT(_NAV, KC_BSPC) +#define KC_UP_SPC LT(_SYM, KC_SPC) +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_default( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_DEL, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_SF, KC_G, KC_TAB, KC_H, KC_SJ, KC_K, KC_L, KC_QUOT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LSFT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LGUI, KC_LCTL, KC_DN_BSPC, KC_UP_SPC, KC_RALT, KC_MPLY + ), + + [_SYM] = LAYOUT_default( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_PIPE, KC_BSLS, KC_LPRN, KC_LBRC, KC_SCLN, KC_TRNS, KC_COLN, KC_RBRC, KC_RPRN, KC_PLUS, KC_UNDS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_NAV] = LAYOUT_default( + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_BSPC, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F7, KC_TAB, + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_LCAP, KC_F9, KC_F10, KC_F11, KC_F12, KC_ENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + + + + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM combo_ent[] = {KC_K, KC_L, COMBO_END}; +const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), + [COMBO_ENT] = COMBO(combo_ent,KC_ENT), + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL) +}; +#endif diff --git a/keyboards/space_space/rev2/keymaps/default/rules.mk b/keyboards/space_space/rev2/keymaps/default/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/space_space/rev2/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/space_space/rev2/keymaps/qpockets/config.h b/keyboards/space_space/rev2/keymaps/qpockets/config.h new file mode 100644 index 000000000000..bf8c47eb3e01 --- /dev/null +++ b/keyboards/space_space/rev2/keymaps/qpockets/config.h @@ -0,0 +1,27 @@ +/* Copyright 2021 qpockets + * + * 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 + +/*Modtaps*/ +#define TAPPING_TERM 145 +#define IGNORE_MOD_TAP_INTERRUPT + +/*Combos*/ +#ifdef COMBO_ENABLE +# define COMBO_COUNT 5 +# define COMBO_TERM 25 +#endif diff --git a/keyboards/space_space/rev2/keymaps/qpockets/keymap.c b/keyboards/space_space/rev2/keymaps/qpockets/keymap.c new file mode 100644 index 000000000000..986e435957b4 --- /dev/null +++ b/keyboards/space_space/rev2/keymaps/qpockets/keymap.c @@ -0,0 +1,75 @@ +/* Copyright 2021 qpockets + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _SYM, + _NAV +}; + +enum combo_events { + COMBO_BSPC, + COMBO_ENT, + COMBO_TAB, + COMBO_ESC, + COMBO_DEL +}; +#define KC_DN_BSPC LT(_NAV, KC_BSPC) +#define KC_UP_SPC LT(_SYM, KC_SPC) +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_default( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_DEL, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_SF, KC_G, KC_LGUI, KC_H, KC_SJ, KC_K, KC_L, KC_QUOT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_PSCR, KC_LCTL, KC_DN_BSPC, KC_UP_SPC, KC_RALT, KC_MPLY + ), + + [_SYM] = LAYOUT_default( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_PIPE, KC_BSLS, KC_LPRN, KC_LBRC, KC_SCLN, KC_TRNS, KC_COLN, KC_RBRC, KC_RPRN, KC_PLUS, KC_UNDS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_NAV] = LAYOUT_default( + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_BSPC, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TAB, + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, KC_ENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM combo_ent[] = {KC_K, KC_L, COMBO_END}; +const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), + [COMBO_ENT] = COMBO(combo_ent,KC_ENT), + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL) +}; +#endif diff --git a/keyboards/space_space/rev2/keymaps/qpockets/rules.mk b/keyboards/space_space/rev2/keymaps/qpockets/rules.mk new file mode 100644 index 000000000000..ff681299e4e9 --- /dev/null +++ b/keyboards/space_space/rev2/keymaps/qpockets/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/space_space/rev2/readme.md b/keyboards/space_space/rev2/readme.md new file mode 100644 index 000000000000..d8391a21a607 --- /dev/null +++ b/keyboards/space_space/rev2/readme.md @@ -0,0 +1,18 @@ +# space_space + +![space_space](https://i.imgur.com/SxjhzIMh.jpg) + +Give your space some space + +* Keyboard Maintainer: https://github.com/qpockets +* Hardware Availability: https://p3dstore.com/products/space-space-acrylic-case?_pos=21&_sid=c75de6a78&_ss=r&variant=39907740844216 + +Make example for this keyboard (after setting up your build environment): + + make space_space/rev2:default + +Flashing example for this keyboard: + + make space_space/rev2: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). diff --git a/keyboards/space_space/rev2/rev2.c b/keyboards/space_space/rev2/rev2.c new file mode 100644 index 000000000000..07b93b36aa66 --- /dev/null +++ b/keyboards/space_space/rev2/rev2.c @@ -0,0 +1,35 @@ + +/* Copyright 2021 qpockets + * + * 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 "rev2.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 1) { /* left encoder*/ + if (clockwise){ + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + } else if (index == 0) { /* right encoder */ + if (clockwise){ + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/space_space/rev2/rev2.h b/keyboards/space_space/rev2/rev2.h new file mode 100644 index 000000000000..99362b900fb7 --- /dev/null +++ b/keyboards/space_space/rev2/rev2.h @@ -0,0 +1,49 @@ +/* Copyright 2021 qpockets + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_default( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52, \ + K32, K33, K34, K36, K37, K38 \ +) \ +{ \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50}, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51}, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52}, \ + {XXX, XXX, K32, K33, K34, XXX, K36, K37, K38, XXX, XXX} \ +} \ + +#define LAYOUT_big_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52, \ + K32, K35, K38 \ +) \ +{ \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50}, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51}, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52}, \ + {XXX, XXX, K32, XXX, XXX, K35, XXX, XXX, K38, XXX, XXX} \ +} + + diff --git a/keyboards/space_space/rev2/rules.mk b/keyboards/space_space/rev2/rules.mk new file mode 100644 index 000000000000..72a5deaf19d1 --- /dev/null +++ b/keyboards/space_space/rev2/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/space_space/rules.mk b/keyboards/space_space/rules.mk index 831de6dc5cd8..2ca04be440ea 100644 --- a/keyboards/space_space/rules.mk +++ b/keyboards/space_space/rules.mk @@ -1,23 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -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 -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes +DEFAULT_FOLDER = space_space/rev2 diff --git a/keyboards/space_space/space_space.h b/keyboards/space_space/space_space.h deleted file mode 100644 index 25e9a083d19e..000000000000 --- a/keyboards/space_space/space_space.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright 2020 qpockets - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -#define XXX KC_NO - -#define LAYOUT_default( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52, \ - K32, K33, K34, K36, K37, K38 \ -) \ -{ \ -{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50 }, \ -{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51 }, \ -{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52 }, \ -{ XXX, XXX, K32, K33, K34, XXX, K36, K37, K38, XXX, XXX } \ -} - -#define LAYOUT_big_space( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52, \ - K32, K35, K38 \ -) \ -{ \ -{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50 }, \ -{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K51 }, \ -{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K52 }, \ -{ XXX, XXX, K32, XXX, XXX, K35, XXX, XXX, K38, XXX, XXX } \ -} - From 3b4c35da6b476c8777c3b492179d30260ffbf895 Mon Sep 17 00:00:00 2001 From: Alan Pocklington Date: Thu, 19 Aug 2021 18:36:20 +0100 Subject: [PATCH 292/328] [Keymap] Quark AJP10304 layout (#13290) --- .../acheron/shark/keymaps/ajp10304/readme.md | 2 +- .../atreus50/keymaps/ajp10304/config.h | 16 ++ .../atreus50/keymaps/ajp10304/keymap.c | 16 ++ .../atreus50/keymaps/ajp10304/readme.md | 2 +- keyboards/jj40/keymaps/ajp10304/readme.md | 2 +- keyboards/planck/keymaps/ajp10304/readme.md | 2 +- keyboards/quark/keymaps/ajp10304/keymap.c | 201 ++++++++++++++++++ keyboards/quark/keymaps/ajp10304/readme.md | 118 ++++++++++ keyboards/quark/keymaps/ajp10304/rules.mk | 1 + .../community/ortho_4x12/ajp10304/keymap.c | 16 ++ .../community/ortho_4x12/ajp10304/readme.md | 2 +- users/ajp10304/ajp10304.c | 16 ++ users/ajp10304/ajp10304.h | 16 ++ users/ajp10304/readme.md | 2 +- 14 files changed, 406 insertions(+), 6 deletions(-) create mode 100644 keyboards/quark/keymaps/ajp10304/keymap.c create mode 100644 keyboards/quark/keymaps/ajp10304/readme.md create mode 100644 keyboards/quark/keymaps/ajp10304/rules.mk diff --git a/keyboards/acheron/shark/keymaps/ajp10304/readme.md b/keyboards/acheron/shark/keymaps/ajp10304/readme.md index 73e5b831e01c..c17232162475 100644 --- a/keyboards/acheron/shark/keymaps/ajp10304/readme.md +++ b/keyboards/acheron/shark/keymaps/ajp10304/readme.md @@ -1,5 +1,5 @@ # AJP10304 Custom Shark Layout -# Also available for the Planck, JJ40 and Atreus50 +# Also available for the Planck, Quark, JJ40 and Atreus50 **Note:** In the tables below where there are two characters on a key, the second is the output when shift is applied. diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h b/keyboards/handwired/atreus50/keymaps/ajp10304/config.h index f5e6bbabe6c8..4f15c5626969 100644 --- a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h +++ b/keyboards/handwired/atreus50/keymaps/ajp10304/config.h @@ -1,3 +1,19 @@ +/* Copyright 2021 Alan Pocklington + * + * 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 . + */ + #ifndef CONFIG_USER_H #define CONFIG_USER_H diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c b/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c index 46a5995d0d03..2b0616ad7e72 100644 --- a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c +++ b/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Alan Pocklington + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include QMK_KEYBOARD_H #include "keymap_uk.h" #include "ajp10304.h" diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md index 5c6a703a8ea0..4f1bac8da930 100644 --- a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md +++ b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md @@ -1,5 +1,5 @@ # AJP10304 Custom Atreus50 Layout -# Also available for the Planck, Shark and JJ40 +# Also available for the Planck, Shark, Quark and JJ40 **Note:** In the tables below where there are two characters on a key, the second is the output when shift is applied. diff --git a/keyboards/jj40/keymaps/ajp10304/readme.md b/keyboards/jj40/keymaps/ajp10304/readme.md index 345fbccf60f1..7336b1994bc0 100644 --- a/keyboards/jj40/keymaps/ajp10304/readme.md +++ b/keyboards/jj40/keymaps/ajp10304/readme.md @@ -1,5 +1,5 @@ # AJP10304 Custom JJ40 Layout -# Also available for the Planck, Shark and Atreus50 +# Also available for the Planck, Shark, Quark and Atreus50 **Note:** In the tables below where there are two characters on a key, the second is the output when shift is applied. diff --git a/keyboards/planck/keymaps/ajp10304/readme.md b/keyboards/planck/keymaps/ajp10304/readme.md index 6ea8f0061d41..97f0a0093198 100644 --- a/keyboards/planck/keymaps/ajp10304/readme.md +++ b/keyboards/planck/keymaps/ajp10304/readme.md @@ -1,5 +1,5 @@ # AJP10304 Custom Planck Layout -# Also available for the Shark, JJ40 and Atreus50 +# Also available for the Shark, Quark, JJ40 and Atreus50 **Note:** In the tables below where there are two characters on a key, the second is the output when shift is applied. diff --git a/keyboards/quark/keymaps/ajp10304/keymap.c b/keyboards/quark/keymaps/ajp10304/keymap.c new file mode 100644 index 000000000000..c55e99af79b5 --- /dev/null +++ b/keyboards/quark/keymaps/ajp10304/keymap.c @@ -0,0 +1,201 @@ +/* Copyright 2021 Alan Pocklington + * + * 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 "ajp10304.h" +#include "keymap_uk.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ;: | Enter| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_ortho_4x12( + LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC , + MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT) , + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT , + MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC2) +), + +/* Function + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn | + * `-----------------------------------------------------------------------------------' + */ +[_FUNC] = LAYOUT_ortho_4x12( + 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT , + KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) , + _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_4x12( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC , + LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC) , + KC_LSPO, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) , + _______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC| + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Mouse| | | | | Alt | Enter|Raise | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12( + KC_GRV, XXXXXXX, M_WORD_SEL, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN , + KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) , + _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) , + MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | PC/MC| | | | | STOP | STOP | Prev | Vol- | Next | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_4x12( + M_CUSTOM, RESET, QWERTY, BL_ON, BL_OFF, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL , + KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ , + TG(_MAC), RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Mouse + * ,-----------------------------------------------------------------------------------. + * | ESC | | | | | | | | BTN3 | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_MOUSE] = LAYOUT_ortho_4x12( + KC_ESC , _______, _______, _______, _______, _______, _______, _______, KC_MS_BTN3, _______, _______, _______, + KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______, + KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Num Pad + * ,-----------------------------------------------------------------------------------. + * | ESC | | | | | |NMLOCK| 7 | 8 | 9 | / | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | 4 | 5 | 6 | * | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | 1 | 2 | 3 | + | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | 0 | . | , | - | | + * `-----------------------------------------------------------------------------------' + */ +[_NUMPAD] = LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, KC_NLCK, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM, KC_KP_MINUS, _______ +), + +/* Function 2 (Right hand side) + * ,-----------------------------------------------------------------------------------. + * | | |WRDSEL| | | | LNDEL| | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | LNSEL| DUP | | | | |LNJOIN| | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | UNDO | CUT | COPY | PASTE| | | | | | | MODE | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FUNC2] = LAYOUT_ortho_4x12( + _______, _______, M_WORD_SEL, _______, _______, _______, M_LINE_DEL, _______, _______, _______, _______, _______, + _______, _______, M_LINE_SEL, M_DUP, _______, _______, _______, M_JOIN, _______, _______, _______, _______, + _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M_MODE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_MAC]= LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2 +), + +[_MLWR] = LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_MRSE] = LAYOUT_ortho_4x12( + _______, _______, M_WORD_SEL_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) , + _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_MFNC]= LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_MFNC2] = LAYOUT_ortho_4x12( + _______, _______, M_WORD_SEL_MAC, _______, _______, _______, M_LINE_DEL_MAC, _______, _______, _______, _______, _______, + _______, _______, M_LINE_SEL_MAC, M_DUP_MAC, _______, _______, _______, M_JOIN_MAC, _______, _______, _______, _______, + _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M_MODE_MAC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; diff --git a/keyboards/quark/keymaps/ajp10304/readme.md b/keyboards/quark/keymaps/ajp10304/readme.md new file mode 100644 index 000000000000..12090ccd4469 --- /dev/null +++ b/keyboards/quark/keymaps/ajp10304/readme.md @@ -0,0 +1,118 @@ +# AJP10304 Custom Quark Layout +# Also available for the Planck, JJ40 and Atreus50 + +**Note:** In the tables below where there are two characters on a key, +the second is the output when shift is applied. + +**Note:** The below tables assume a UK layout. + +#### Flashing + +`make quark:ajp10304:flash` + +##### Main Qwerty Layer + +* Tab: when held, operates as shift. +* Enter: when held, operates as shift. +* MENU: perform right-click + +| | | | | | | | | | | | | +| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:| +| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | +| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter| +| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft | +| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | + +##### Function Layer +Activated when `fn` held in the above `qwerty` layer. + +| | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT| +| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | +| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 | + +##### Lower Layer +Activated when `Lower` is held in the above `qwerty` layer. + +* Numbers are along the top row, their shifted counterparts are on row 2. +* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word. +* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word. + +| | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp | +| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks| +| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift | +| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | + +##### Raise Layer +Activated when `Raise` is held in the above `qwerty` layer. + +* Preferred layer for typing brackets. +* Allows for cursor navigation to be used solely with the right hand. +* WRDSEL: Select the word where the cursor is. +* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping. + +| | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| +| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC| +| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +| +| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -| +| Mouse | | | | | Alt | Enter |Raise | | | | | + +##### Lower + Raise +Activated when `Lower` and `Raise` are held together in the above `qwerty` layer. + +* Audio controls in the same position as cursor keys from the `Raise` layer. +* ????: Runs a macro for outputting a text string. Do not use this store passwords. +* Reset: Enter bootloader for flashing firmware to the keyboard. +* CAPS: Toggle caps lock. +* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2. +To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. +* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, +MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively. + +| | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | +| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | | +| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | | +| | | | | | | | | DYN | | | | + +##### Function 2 Layer +Activated when `fn` held in the above `qwerty` layer. +* WRDSEL: Select the word where the cursor is. +* LNDEL: Delete the line where the cursor is. +* LNSEL: Select the line where the cursor is. +* DUP: Duplicate the selected text. +* LNJOIN: Join the line where the cursor is with the following line. +* MODE: Print either `PC` or `OSX` depending on what layer mode is active. + +| | | | | | | | | | | | | +| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| | |WRDSEL| | | | LNDEL| | | | | | +| | | LNSEL| DUP | | | | |LNJOIN| | | | +| | UNDO | CUT | COPY | PASTE| | | | | | | MODE | +| | | | | | | | | | | | | + +##### Mouse Layer +Activated when `fn` and `raise` held together. + +| | | | | | | | | | | | | +| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| ESC | | | | | | | | BTN3 | | | | +| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | +| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | +| | | | | | | | | | | | | + +##### Number Pad Layout +Activated when holding `Esc` key. + +| | | | | | | | | | | | | +| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| | | | | | |NMLOCK| 7 | 8 | 9 | / | | +| | | | | | | | 4 | 5 | 6 | * | | +| | | | | | | | 1 | 2 | 3 | + | | +| | | | | | | | 0 | . | , | - | | diff --git a/keyboards/quark/keymaps/ajp10304/rules.mk b/keyboards/quark/keymaps/ajp10304/rules.mk new file mode 100644 index 000000000000..6c605daecf53 --- /dev/null +++ b/keyboards/quark/keymaps/ajp10304/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = yes diff --git a/layouts/community/ortho_4x12/ajp10304/keymap.c b/layouts/community/ortho_4x12/ajp10304/keymap.c index 3badce2eafb6..c55e99af79b5 100644 --- a/layouts/community/ortho_4x12/ajp10304/keymap.c +++ b/layouts/community/ortho_4x12/ajp10304/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Alan Pocklington + * + * 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 "ajp10304.h" #include "keymap_uk.h" diff --git a/layouts/community/ortho_4x12/ajp10304/readme.md b/layouts/community/ortho_4x12/ajp10304/readme.md index 6f2330f9437b..be6afa6fe4ae 100644 --- a/layouts/community/ortho_4x12/ajp10304/readme.md +++ b/layouts/community/ortho_4x12/ajp10304/readme.md @@ -1,5 +1,5 @@ # AJP10304 Ortho 4x12 Layout -# For Planck, Shark, JJ40 and Atreus50 +# For Planck, Shark, Quark, JJ40 and Atreus50 **Note:** In the tables below where there are two characters on a key, the second is the output when shift is applied. diff --git a/users/ajp10304/ajp10304.c b/users/ajp10304/ajp10304.c index 9cae65d5cfd3..dd13787d6382 100644 --- a/users/ajp10304/ajp10304.c +++ b/users/ajp10304/ajp10304.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Alan Pocklington + * + * 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 "ajp10304.h" bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/users/ajp10304/ajp10304.h b/users/ajp10304/ajp10304.h index b96e00fc4e5a..ec1ed11c0471 100644 --- a/users/ajp10304/ajp10304.h +++ b/users/ajp10304/ajp10304.h @@ -1,3 +1,19 @@ +/* Copyright 2021 Alan Pocklington + * + * 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 ajp10304_layers { diff --git a/users/ajp10304/readme.md b/users/ajp10304/readme.md index 8e1a438aa850..2ac0a69964ec 100644 --- a/users/ajp10304/readme.md +++ b/users/ajp10304/readme.md @@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . # AJP10304 Custom 40% Layout -# For the Planck, Shark, JJ40 and Atreus50 +# For the Planck, Shark, Quark, JJ40 and Atreus50 **Note:** In the tables below where there are two characters on a key, the second is the output when shift is applied. From 425e1e665dc3c114fc42878f2b6a9d3225e5e6b5 Mon Sep 17 00:00:00 2001 From: jfescobar18 <81986725+jfescobar18@users.noreply.github.com> Date: Thu, 19 Aug 2021 12:39:30 -0500 Subject: [PATCH 293/328] [Keyboard] Dumbpad VIA support added (#13512) Co-authored-by: Ryan --- keyboards/dumbpad/config.h | 23 ++- keyboards/dumbpad/dumbpad.c | 59 +++++++ keyboards/dumbpad/dumbpad.h | 39 +++++ keyboards/dumbpad/info.json | 18 +++ keyboards/dumbpad/keymaps/default/keymap.c | 89 +++++++++++ keyboards/dumbpad/keymaps/via/keymap.c | 175 +++++++++++++++++++++ keyboards/dumbpad/keymaps/via/rules.mk | 3 + keyboards/dumbpad/rules.mk | 26 ++- 8 files changed, 427 insertions(+), 5 deletions(-) create mode 100644 keyboards/dumbpad/dumbpad.c create mode 100644 keyboards/dumbpad/dumbpad.h create mode 100644 keyboards/dumbpad/info.json create mode 100644 keyboards/dumbpad/keymaps/default/keymap.c create mode 100644 keyboards/dumbpad/keymaps/via/keymap.c create mode 100644 keyboards/dumbpad/keymaps/via/rules.mk diff --git a/keyboards/dumbpad/config.h b/keyboards/dumbpad/config.h index 5a1a1c92b872..7322d1bbb582 100644 --- a/keyboards/dumbpad/config.h +++ b/keyboards/dumbpad/config.h @@ -21,14 +21,29 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0913 +#define DEVICE_VER 0x0007 #define MANUFACTURER imchipwood #define PRODUCT dumbpad /* Column/Row IO definitions */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 5 +#define MATRIX_ROW_PINS { F4, F5, F6, F7 } +#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 +/* Single rotary encoder */ +#define ENCODERS_PAD_A { B2, D0 } +#define ENCODERS_PAD_B { D4, D1 } +#define ENCODER_RESOLUTIONS { 4, 4 } + +/* Onboard LEDs */ +#define LED_00 B3 +#define LED_01 B1 -/* Reduce tapdance required taps from 5 to 2 */ -#define TAPPING_TOGGLE 2 +/* Bootmagic - hold down rotary encoder pushbutton while plugging in to enter bootloader */ +#define BOOTMAGIC_LITE_ROW 3 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/dumbpad/dumbpad.c b/keyboards/dumbpad/dumbpad.c new file mode 100644 index 000000000000..b575662a8786 --- /dev/null +++ b/keyboards/dumbpad/dumbpad.c @@ -0,0 +1,59 @@ +/* Copyright 2019 Chip + * + * 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 "dumbpad.h" + +void keyboard_pre_init_kb(void) { + // Set LED IO as outputs + setPinOutput(LED_00); + setPinOutput(LED_01); + keyboard_pre_init_user(); +} + +void shutdown_user() { + // Shutdown LEDs + writePinLow(LED_00); + writePinLow(LED_01); +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + // Layer LEDs act as binary indication of current layer + uint8_t layer = get_highest_layer(state); + writePin(LED_00, layer & 0b1); + writePin(LED_01, (layer >> 1) & 0b1); + return layer_state_set_user(state); +} + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + uint8_t led_delay_ms = 80; + for (int i = 0; i < 2; i++) { + writePinHigh(LED_00); + writePinHigh(LED_01); + wait_ms(led_delay_ms); + writePinLow(LED_00); + writePinLow(LED_01); + if (i < 1) { + wait_ms(led_delay_ms); + } + } + + matrix_init_user(); +} diff --git a/keyboards/dumbpad/dumbpad.h b/keyboards/dumbpad/dumbpad.h new file mode 100644 index 000000000000..b7c7694e30b5 --- /dev/null +++ b/keyboards/dumbpad/dumbpad.h @@ -0,0 +1,39 @@ +/* Copyright 2019 Chip + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k01, k02, k03, k04, \ + k11, k12, k13, k14, \ + k21, k22, k23, k24, \ + k30, k31, k32, k33, k34 \ +) \ +{ \ + { KC_NO, k01, k02, k03, k04 }, \ + { KC_NO, k11, k12, k13, k14 }, \ + { KC_NO, k21, k22, k23, k24 }, \ + { k30, k31, k32, k33, k34 }, \ +} diff --git a/keyboards/dumbpad/info.json b/keyboards/dumbpad/info.json new file mode 100644 index 000000000000..82a53d852b28 --- /dev/null +++ b/keyboards/dumbpad/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "dumbpad", + "keyboard_folder": "dumbpad", + "url": "https://www.github.com/imchipwood/dumbpad", + "maintainer": "imchipwood", + "width": 5, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, + {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, + {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, + {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3} + ] + } + } +} diff --git a/keyboards/dumbpad/keymaps/default/keymap.c b/keyboards/dumbpad/keymaps/default/keymap.c new file mode 100644 index 000000000000..9263af428df9 --- /dev/null +++ b/keyboards/dumbpad/keymaps/default/keymap.c @@ -0,0 +1,89 @@ +/* Copyright 2020 imchipwood + * + * 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] = { + /* + BASE LAYER + /-----------------------------------------------------` + | | 7 | 8 | 9 | Bkspc | + | |---------|---------|---------|---------| + | | 4 | 5 | 6 | Esc | + | |---------|---------|---------|---------| + | | 1 | 2 | 3 | Tab | + |-------------|---------|---------|---------|---------| + | Left mouse | TT(1) | 0 | . | Enter | + \-----------------------------------------------------' + */ + [0] = LAYOUT( + KC_7, KC_8, KC_9, KC_BSPC, + KC_4, KC_5, KC_6, KC_ESC, + KC_1, KC_2, KC_3, KC_TAB, + KC_BTN1, TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER + ), + /* + SUB LAYER + /-----------------------------------------------------` + | | | | | Reset | + | |---------|---------|---------|---------| + | | | | | + | + | |---------|---------|---------|---------| + | | | | | - | + |-------------|---------|---------|---------|---------| + | LOCK | | | | = | + \-----------------------------------------------------' + */ + [1] = LAYOUT( + _______, _______, _______, RESET, + _______, _______, _______, KC_KP_PLUS, + _______, _______, _______, KC_KP_MINUS, + KC_LOCK, _______, _______, _______, KC_EQL + ), +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + /* Custom encoder control - handles CW/CCW turning of encoder + * Default behavior: + * main layer: + * CW: move mouse right + * CCW: move mouse left + * other layers: + * CW: = (equals/plus - increase slider in Adobe products) + * CCW: - (minus/underscore - decrease slider in adobe products) + */ + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case 0: + // main layer - move mouse right (CW) and left (CCW) + if (clockwise) { + tap_code(KC_MS_R); + } else { + tap_code(KC_MS_L); + } + break; + + default: + // other layers - =/+ (quals/plus) (CW) and -/_ (minus/underscore) (CCW) + if (clockwise) { + tap_code(KC_EQL); + } else { + tap_code(KC_MINS); + } + break; + } + } + return true; +} diff --git a/keyboards/dumbpad/keymaps/via/keymap.c b/keyboards/dumbpad/keymaps/via/keymap.c new file mode 100644 index 000000000000..d9f997531afa --- /dev/null +++ b/keyboards/dumbpad/keymaps/via/keymap.c @@ -0,0 +1,175 @@ +/* Copyright 2019 imchipwood + * + * 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] = { + /* + BASE LAYER + /-----------------------------------------------------` + | | 7 | 8 | 9 | Bkspc | + | |---------|---------|---------|---------| + | | 4 | 5 | 6 | Esc | + | |---------|---------|---------|---------| + | | 1 | 2 | 3 | Tab | + |-------------|---------|---------|---------|---------| + | Left mouse | MO(1) | 0 | . | Enter | + \-----------------------------------------------------' + */ + [0] = LAYOUT( + KC_7, KC_8, KC_9, KC_BSPC, + KC_4, KC_5, KC_6, KC_ESC, + KC_1, KC_2, KC_3, KC_TAB, + KC_BTN1, MO(1), KC_0, KC_PDOT, KC_ENTER + ), + /* + SUB LAYER + /-----------------------------------------------------` + | | | | | Reset | + | |---------|---------|---------|---------| + | | | | | + | + | |---------|---------|---------|---------| + | | | | | - | + |-------------|---------|---------|---------|---------| + | LOCK | | MO(2) | | = | + \-----------------------------------------------------' + */ + [1] = LAYOUT( + _______, _______, _______, RESET, + _______, _______, _______, KC_KP_PLUS, + _______, _______, _______, KC_KP_MINUS, + KC_MUTE, _______, MO(2) , _______, KC_EQL + ), + + /* + DEBUG LAYER + /-----------------------------------------------------` + | | | | | Reset | + | |---------|---------|---------|---------| + | | | | | | + | |---------|---------|---------|---------| + | | | | | | + |-------------|---------|---------|---------|---------| + | | | | | | + \-----------------------------------------------------' + */ + [2] = LAYOUT( + _______, _______, _______, RESET, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, MO(3) , _______ + ), + + /* + EXTRA LAYER + /-----------------------------------------------------` + | | | | | | + | |---------|---------|---------|---------| + | | | | | | + | |---------|---------|---------|---------| + | | | | | | + |-------------|---------|---------|---------|---------| + | | | | | | + \-----------------------------------------------------' + */ + [3] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case 0: + // sub layer - Scroll + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + break; + + case 1: + // main layer - Volume + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + + case 2: + // debug layer - Change track + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + break; + + default: + // any other layer Scroll + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + break; + } + } + else if (index == 1) { + switch (get_highest_layer(layer_state)) { + case 0: + // sub layer - Volume + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + + case 1: + // main layer - Scroll + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + break; + + case 2: + // debug layer - Brightness + if (clockwise) { + tap_code(KC_BRID); + } else { + tap_code(KC_BRIU); + } + break; + + default: + // any other layer Scroll + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + break; + } + } + return true; +} diff --git a/keyboards/dumbpad/keymaps/via/rules.mk b/keyboards/dumbpad/keymaps/via/rules.mk new file mode 100644 index 000000000000..4650c471e537 --- /dev/null +++ b/keyboards/dumbpad/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +CONSOLE_ENABLE = no +LTO_ENABLE = yes +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/dumbpad/rules.mk b/keyboards/dumbpad/rules.mk index 87ec1ab01b4e..309e3d48c047 100644 --- a/keyboards/dumbpad/rules.mk +++ b/keyboards/dumbpad/rules.mk @@ -1 +1,25 @@ -DEFAULT_FOLDER = dumbpad/v0x +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes +KEY_LOCK_ENABLE = yes From 98af5bc64e6148915cebcfdd607119b9feefe90d Mon Sep 17 00:00:00 2001 From: jonavin <71780717+Jonavin@users.noreply.github.com> Date: Thu, 19 Aug 2021 13:45:49 -0400 Subject: [PATCH 294/328] [Keymap] Add jonavin user space / common functions (#13876) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Jonavin <=> --- keyboards/gmmk/pro/keymaps/jonavin/keymap.c | 187 +------------- keyboards/gmmk/pro/keymaps/jonavin/readme.md | 13 + keyboards/gmmk/pro/keymaps/jonavin/rules.mk | 5 + .../keebio/quefrency/keymaps/jonavin/keymap.c | 81 ++---- .../quefrency/keymaps/jonavin/readme.md | 7 + .../keebio/quefrency/keymaps/jonavin/rules.mk | 3 + .../mercutio/keymaps/jonavin/keymap.c | 47 +--- .../mercutio/keymaps/jonavin/readme.md | 7 + .../mercutio/keymaps/jonavin/rules.mk | 3 + users/jonavin/config.h | 30 +++ users/jonavin/jonavin.c | 231 ++++++++++++++++++ users/jonavin/jonavin.h | 82 +++++++ users/jonavin/readme.md | 76 ++++++ users/jonavin/rules.mk | 13 + 14 files changed, 500 insertions(+), 285 deletions(-) create mode 100644 users/jonavin/config.h create mode 100644 users/jonavin/jonavin.c create mode 100644 users/jonavin/jonavin.h create mode 100644 users/jonavin/readme.md create mode 100644 users/jonavin/rules.mk diff --git a/keyboards/gmmk/pro/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/keymaps/jonavin/keymap.c index 8b37449576b9..edca78cd179f 100644 --- a/keyboards/gmmk/pro/keymaps/jonavin/keymap.c +++ b/keyboards/gmmk/pro/keymaps/jonavin/keymap.c @@ -17,36 +17,7 @@ along with this program. If not, see . #include QMK_KEYBOARD_H #include "rgb_matrix_map.h" - -#define ARRAYSIZE(arr) sizeof(arr)/sizeof(arr[0]) - -enum custom_layers { - _BASE, - _FN1, - _MO2, - _MO3, -}; - -enum custom_keycodes { - KC_00 = SAFE_RANGE, - KC_WINLCK, //Toggles Win key on and off - RGB_TOI, // Timeout idle time up - RGB_TOD, // Timeout idle time down -}; - -// Tap Dance Definitions -enum custom_tapdance { - TD_LSFT_CAPSLOCK, -}; - -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for shift, twice for Caps Lock - [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), -}; - -#define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) - -bool _isWinKeyDisabled = false; +#include "jonavin.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -63,8 +34,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_INS, 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_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - TT(_MO2), 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_LSFTCAPS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + TT(_LOWER), 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_LSFTCAPSWIN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -77,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI ), - [_MO2] = LAYOUT( + [_LOWER] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, _______, KC_HOME, @@ -86,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_BSPC, _______, _______, _______, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT) ), - [_MO3] = LAYOUT( + [_RAISE] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -98,139 +69,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -// TIMEOUTS -#define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes -#define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) -static uint16_t timeout_timer = 0; -static uint16_t timeout_counter = 0; //in minute intervals -static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; - -void timeout_reset_timer(void) { - timeout_timer = timer_read(); - timeout_counter = 0; -}; - -void timeout_update_threshold(bool increase) { - if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; - if (!increase && timeout_threshold > 0) timeout_threshold--; -}; - - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_00: - if (record->event.pressed) { - // when keycode KC_00 is pressed - SEND_STRING("00"); - } else { - // when keycode KC_00 is released - } - break; - case KC_WINLCK: - if (record->event.pressed) { - _isWinKeyDisabled = !_isWinKeyDisabled; //toggle status - if(_isWinKeyDisabled) { - process_magic(GUI_OFF, record); - } else { - process_magic(GUI_ON, record); - } - } else unregister_code16(keycode); - break; - case RGB_TOI: - if(record->event.pressed) { - timeout_update_threshold(true); - } else unregister_code16(keycode); - break; - case RGB_TOD: - if(record->event.pressed) { - timeout_update_threshold(false); //decrease timeout - } else unregister_code16(keycode); - break; - default: - if (record->event.pressed) { //reset activity timer - #ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable(); - #endif - timeout_reset_timer(); - } - break; - } - return true; -}; - -void matrix_scan_user(void) { - if (timeout_threshold > 0) { - if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick - timeout_counter++; - timeout_timer = timer_read(); - } - #ifdef RGB_MATRIX_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgb_matrix_disable_noeeprom(); - } - #endif - } // timeout_threshold = 0 will disable timeout -}; - - -#ifdef ENCODER_ENABLE // Encoder Functionality - uint8_t selected_layer = 0; - - bool encoder_update_user(uint8_t index, bool clockwise) { - if ( clockwise ) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers - if(selected_layer < 3) { - selected_layer ++; - layer_move(selected_layer); - } - } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up - unregister_mods(MOD_BIT(KC_LSFT)); - register_code(KC_PGDN); - register_mods(MOD_BIT(KC_LSFT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word - tap_code16(LCTL(KC_RGHT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track - tap_code(KC_MEDIA_NEXT_TRACK); - } else { - switch (selected_layer) { - case _FN1: - timeout_update_threshold(true); - break; - default: - tap_code(KC_VOLU); // Otherwise it just changes volume - break; - } - } - } else { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { - if (selected_layer > 0) { - selected_layer --; - layer_move(selected_layer); - } - } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { - unregister_mods(MOD_BIT(KC_LSFT)); - register_code(KC_PGUP); - register_mods(MOD_BIT(KC_LSFT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word - tap_code16(LCTL(KC_LEFT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track - tap_code(KC_MEDIA_PREV_TRACK); - } else { - switch (selected_layer) { - case _FN1: - timeout_update_threshold(false); - break; - default: - tap_code(KC_VOLD); - break; - } - } - } - - return true; - } -#endif - #ifdef RGB_MATRIX_ENABLE // Capslock, Scroll lock and Numlock indicator on Left side lights. void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { @@ -247,7 +85,7 @@ void matrix_scan_user(void) { rgb_matrix_set_color(LED_L6, RGB_RED); rgb_matrix_set_color(LED_L7, RGB_RED); } - if (_isWinKeyDisabled) { + if (keymap_config.no_gui) { rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled } switch(get_highest_layer(layer_state)){ // special handling per layer @@ -258,6 +96,7 @@ void matrix_scan_user(void) { rgb_matrix_set_color(LED_FN, RGB_RED); //FN key // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code + uint16_t timeout_threshold = get_timeout_threshold(); if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_RED); else if (timeout_threshold < 140) { rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_RED); @@ -268,7 +107,7 @@ void matrix_scan_user(void) { rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED); } break; - case _MO2: + case _LOWER: for (uint8_t i=0; ievent.pressed) { - // when keycode DOUBLEZERO is pressed - SEND_STRING("00"); - } else { - // when keycode DOUBLEZERO is released - } - break; - case KC_WINLCK: - if (record->event.pressed) { - _isWinKeyDisabled = !_isWinKeyDisabled; //toggle status - if(_isWinKeyDisabled) { - process_magic(GUI_OFF, record); - } else { - process_magic(GUI_ON, record); - } - } else unregister_code16(keycode); - break; - } +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + // process_record_user() moved to userspace return true; }; @@ -183,22 +135,19 @@ bool encoder_update_user(uint8_t index, bool clockwise) { bool led_update_user(led_t led_state) { rgblight_set_layer_state(_rgbCAPS, led_state.caps_lock); - rgblight_set_layer_state(_rgbWINLOCK, _isWinKeyDisabled); + rgblight_set_layer_state(_rgbWINLOCK, keymap_config.no_gui); return true; } layer_state_t layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(_rgbFN, layer_state_cmp(state, _FN1)); - rgblight_set_layer_state(_rgbNUMPAD, layer_state_cmp(state, _MO2)); + rgblight_set_layer_state(_rgbNUMPAD, layer_state_cmp(state, _LOWER)); return state; } #endif // RGBLIGHT_ENABLE -void keyboard_post_init_user(void) { - - if (IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // turn on Num lock by defautl so that the numpad layer always has predictable results - tap_code(KC_NUMLOCK); - } +void keyboard_post_init_keymap(void) { + // keyboard_post_init_user() moved to userspace #ifdef RGBLIGHT_ENABLE rgblight_mode(1); // single colour mode rgblight_setrgb(RGB_GODSPEED); // Default startup colour diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/readme.md b/keyboards/keebio/quefrency/keymaps/jonavin/readme.md index c782d26c071d..4833c5b62624 100644 --- a/keyboards/keebio/quefrency/keymaps/jonavin/readme.md +++ b/keyboards/keebio/quefrency/keymaps/jonavin/readme.md @@ -18,6 +18,13 @@ - Add capslock indicator, win key lock indicator - Fn and layer 2 indicators using RGB underglow +rules.mk OPTIONS - Active features from userspace +STARTUP_NUMLOCK_ON = yes + - turns on NUMLOCK by default + +TD_LSFT_CAPSLOCK_ENABLE = yes + - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS + ## All layers diagram Default Layer diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk b/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk index eff3d692ee5d..f27873bb8000 100644 --- a/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk +++ b/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk @@ -4,3 +4,6 @@ LTO_ENABLE = yes MOUSEKEY_ENABLE = no TAP_DANCE_ENABLE = yes + +TD_LSFT_CAPSLOCK_ENABLE = yes +STARTUP_NUMLOCK_ON = yes diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c index ed321e79b99f..ddde6d65251c 100755 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c @@ -18,35 +18,7 @@ #include QMK_KEYBOARD_H #include - -enum custom_layers { - _BASE, - _FN1, - _LOWER, - _RAISE, -}; - -enum custom_keycodes { - ENCFUNC = SAFE_RANGE, // encoder function keys - KC_WINLCK, //Toggles Win key on and off -}; - -// Tap Dance Definitions -enum custom_tapdance { - TD_LSFT_CAPSLOCK, -}; - -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for shift, twice for Caps Lock - [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), -}; - -bool _isWinKeyDisabled = false; - -#define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) -#define KC_CAD LALT(LCTL(KC_DEL)) -#define KC_AF4 LALT(KC_F4) -#define KC_TASK LCTL(LSFT(KC_ESC)) +#include "jonavin.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_all( @@ -113,13 +85,12 @@ static void set_selectedkey(uint8_t idx) { } -void keyboard_post_init_user(void) { +void keyboard_post_init_keymap(void) { // Call the keyboard post init code. - //selectedkey_rec = keyselection[selectedkey_idx]; set_selectedkey(selectedkey_idx); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case ENCFUNC: if (record->event.pressed) { @@ -128,16 +99,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // when keycode is released } break; - case KC_WINLCK: - if (record->event.pressed) { - _isWinKeyDisabled = !_isWinKeyDisabled; //toggle status - if(_isWinKeyDisabled) { - process_magic(GUI_OFF, record); - } else { - process_magic(GUI_ON, record); - } - } else unregister_code16(keycode); - break; } return true; }; @@ -274,7 +235,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { default: oled_write_P(PSTR("Layer ?"), false); // Should never display, here as a catchall } - oled_write_P(_isWinKeyDisabled ? PSTR(" WL") : PSTR(" "), false); + oled_write_P(keymap_config.no_gui ? PSTR(" WL") : PSTR(" "), false); oled_set_cursor(8,3); if (get_highest_layer(layer_state) == selected_layer) { oled_write_P(PSTR(" "), false); diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md b/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md index 730bee889745..6255dadd05aa 100644 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md @@ -38,6 +38,13 @@ Features While holding Left Alt, media next track or previous track +rules.mk OPTIONS - Active features from userspace +STARTUP_NUMLOCK_ON = yes + - turns on NUMLOCK by default + +TD_LSFT_CAPSLOCK_ENABLE = yes + - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS + Default Layers ![image](https://user-images.githubusercontent.com/71780717/127014682-3aa05136-6dc7-4a40-9be1-89a5b584848a.png) diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk b/keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk index 550e84c809ad..0b76c6e57c04 100644 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk @@ -3,3 +3,6 @@ VIA_ENABLE = yes MOUSEKEY_ENABLE = yes WPM_ENABLE = yes TAP_DANCE_ENABLE = yes + +TD_LSFT_CAPSLOCK_ENABLE = yes +STARTUP_NUMLOCK_ON = yes diff --git a/users/jonavin/config.h b/users/jonavin/config.h new file mode 100644 index 000000000000..4f4568f70002 --- /dev/null +++ b/users/jonavin/config.h @@ -0,0 +1,30 @@ +/* Copyright 2021 Jonavin Eng + * + * 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 // TT () set to two taps + +/* Handle GRAVESC combo keys */ +#define GRAVE_ESC_ALT_OVERRIDE // Always send Escape if Alt is pressed +#define GRAVE_ESC_CTRL_OVERRIDE // Always send Escape if Control is pressed + +#define TAPPING_TERM 180 + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR + #define RGB_DISABLE_WHEN_USB_SUSPENDED true +#endif diff --git a/users/jonavin/jonavin.c b/users/jonavin/jonavin.c new file mode 100644 index 000000000000..d5fdb2a1ebf8 --- /dev/null +++ b/users/jonavin/jonavin.c @@ -0,0 +1,231 @@ + +/* Copyright 2021 Jonavin Eng @Jonavin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + + +#include QMK_KEYBOARD_H +#include "jonavin.h" + + +#ifdef TD_LSFT_CAPSLOCK_ENABLE + // Tap once for shift, twice for Caps Lock but only if Win Key in not disabled + void dance_LSFT_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1 || keymap_config.no_gui) { + register_code16(KC_LSFT); + } else { + register_code(KC_CAPS); + } + } + + void dance_LSFT_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1 || keymap_config.no_gui) { + unregister_code16(KC_LSFT); + } else { + unregister_code(KC_CAPS); + } + } + + qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for shift, twice for Caps Lock + [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), + [TD_LSFT_CAPS_WIN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LSFT_finished, dance_LSFT_reset), + }; +#endif // TD_LSFT_CAPSLOCK_ENABLE + +// TIMEOUTS +#ifdef IDLE_TIMEOUT_ENABLE + static uint16_t timeout_timer = 0; + static uint16_t timeout_counter = 0; //in minute intervals + static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; + + uint16_t get_timeout_threshold(void) { + return timeout_threshold; + } + + void timeout_reset_timer(void) { + timeout_timer = timer_read(); + timeout_counter = 0; + }; + + void timeout_update_threshold(bool increase) { + if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; + if (!increase && timeout_threshold > 0) timeout_threshold--; + }; + + void timeout_tick_timer(void) { + if (timeout_threshold > 0) { + if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick + timeout_counter++; + timeout_timer = timer_read(); + } + #ifdef RGB_MATRIX_ENABLE + if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { + rgb_matrix_disable_noeeprom(); + } + #endif + } // timeout_threshold = 0 will disable timeout + } + + __attribute__((weak)) void matrix_scan_keymap(void) {} + + void matrix_scan_user(void) { + timeout_tick_timer(); + matrix_scan_keymap(); + } +#endif // IDLE_TIMEOUT_ENABLE + + +#if defined(ENCODER_ENABLE) && defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality + #ifndef DYNAMIC_KEYMAP_LAYER_COUNT + #define DYNAMIC_KEYMAP_LAYER_COUNT 4 //default in case this is not already defined elsewhere + #endif + #ifndef ENCODER_DEFAULTACTIONS_INDEX + #define ENCODER_DEFAULTACTIONS_INDEX 0 // can select encoder index if there are multiple encoders + #endif + +uint8_t selected_layer = 0; + +__attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; } + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (!encoder_update_keymap(index, clockwise)) { return false; } + if (index != ENCODER_DEFAULTACTIONS_INDEX) {return true;} // exit if the index doesn't match + if ( clockwise ) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers + if(selected_layer < (DYNAMIC_KEYMAP_LAYER_COUNT - 1)) { + selected_layer ++; + layer_move(selected_layer); + } + } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up + unregister_mods(MOD_BIT(KC_RSFT)); + register_code(KC_PGDN); + register_mods(MOD_BIT(KC_RSFT)); + } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word + tap_code16(LCTL(KC_RGHT)); + } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track + tap_code(KC_MEDIA_NEXT_TRACK); + } else { + switch (selected_layer) { + case _FN1: + #ifdef IDLE_TIMEOUT_ENABLE + timeout_update_threshold(true); + #endif + break; + default: + tap_code(KC_VOLU); // Otherwise it just changes volume + break; + } + } + } else { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { + if (selected_layer > 0) { + selected_layer --; + layer_move(selected_layer); + } + } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { + unregister_mods(MOD_BIT(KC_RSFT)); + register_code(KC_PGUP); + register_mods(MOD_BIT(KC_RSFT)); + } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word + tap_code16(LCTL(KC_LEFT)); + } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track + tap_code(KC_MEDIA_PREV_TRACK); + } else { + switch (selected_layer) { + case _FN1: + #ifdef IDLE_TIMEOUT_ENABLE + timeout_update_threshold(false); + #endif + break; + default: + tap_code(KC_VOLD); + break; + } + } + } + + return true; + } +#endif // ENCODER_ENABLE + + +// PROCESS KEY CODES +__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keymap(keycode, record)) { return false; } + switch (keycode) { + case KC_00: + if (record->event.pressed) { + // when keycode KC_00 is pressed + SEND_STRING("00"); + } else unregister_code16(keycode); + break; + case KC_WINLCK: + if (record->event.pressed) { + keymap_config.no_gui = !keymap_config.no_gui; //toggle status + } else unregister_code16(keycode); + break; + +#ifdef IDLE_TIMEOUT_ENABLE + case RGB_TOI: + if(record->event.pressed) { + timeout_update_threshold(true); + } else unregister_code16(keycode); + break; + case RGB_TOD: + if(record->event.pressed) { + timeout_update_threshold(false); //decrease timeout + } else unregister_code16(keycode); + break; +#endif // IDLE_TIMEOUT_ENABLE + + default: + if (record->event.pressed) { + #ifdef RGB_MATRIX_ENABLE + rgb_matrix_enable(); + #endif + #ifdef IDLE_TIMEOUT_ENABLE + timeout_reset_timer(); //reset activity timer + #endif + } + break; + } + return true; +}; + + +// Turn on/off NUM LOCK if current state is different +void activate_numlock(bool turn_on) { + if (IS_HOST_LED_ON(USB_LED_NUM_LOCK) != turn_on) { + tap_code(KC_NUMLOCK); + } +} + + +// INITIAL STARTUP + +__attribute__ ((weak)) void keyboard_post_init_keymap(void) {} + +void keyboard_post_init_user(void) { + keyboard_post_init_keymap(); + #ifdef STARTUP_NUMLOCK_ON + activate_numlock(true); // turn on Num lock by default so that the numpad layer always has predictable results + #endif // STARTUP_NUMLOC_ON + #ifdef IDLE_TIMEOUT_ENABLE + timeout_timer = timer_read(); // set inital time for ide timeout + #endif +} diff --git a/users/jonavin/jonavin.h b/users/jonavin/jonavin.h new file mode 100644 index 000000000000..894feddfd967 --- /dev/null +++ b/users/jonavin/jonavin.h @@ -0,0 +1,82 @@ + +/* Copyright 2021 Jonavin Eng @Jonavin + +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 MACROS +#define ARRAYSIZE(arr) sizeof(arr)/sizeof(arr[0]) + + +// LAYERS +enum custom_user_layers { + _BASE, + _FN1, + _LOWER, + _RAISE, +}; + +// KEYCODES +enum custom_user_keycodes { + KC_00 = SAFE_RANGE, + ENCFUNC, + KC_WINLCK, //Toggles Win key on and off + RGB_TOI, // Timeout idle time up + RGB_TOD, // Timeout idle time down +}; + +#define KC_CAD LALT(LCTL(KC_DEL)) +#define KC_AF4 LALT(KC_F4) +#define KC_TASK LCTL(LSFT(KC_ESC)) + + +#ifdef TD_LSFT_CAPSLOCK_ENABLE + // Tap Dance Definitions + enum custom_tapdance { + TD_LSFT_CAPSLOCK, + TD_LSFT_CAPS_WIN + }; + + #define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) + #define KC_LSFTCAPSWIN TD(TD_LSFT_CAPS_WIN) +#else // regular Shift + #define KC_LSFTCAPS KC_LSFT +#endif // TD_LSFT_CAPSLOCK_ENABLE + + + +#ifdef RGB_MATRIX_ENABLE +//RGB custom colours + #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps + #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colours +#endif + + +// IDLE TIMEOUTS +#ifdef IDLE_TIMEOUT_ENABLE + #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes + #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) + + //prototype functions + uint16_t get_timeout_threshold(void); + void timeout_reset_timer(void); + void timeout_update_threshold(bool increase); + void timeout_tick_timer(void); +#endif //IDLE_TIMEOUT_ENABLE + + +// OTHER FUNCTION PROTOTYPE +void activate_numlock(bool turn_on); diff --git a/users/jonavin/readme.md b/users/jonavin/readme.md new file mode 100644 index 000000000000..97fff6520cb6 --- /dev/null +++ b/users/jonavin/readme.md @@ -0,0 +1,76 @@ +Copyright 2021 Jonavin Eng @Jonavin + +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 . + +LAYERS: + 0 = _BASE + 1 = _FN1 + 2 = _LOWER + 3 = _RAISE + +KEYCODES: + KC_CAD Ctrl-Alt-Del + KC_AF4 Alt-F4 + KC_TASK Windows Task Manager (Ctrl-Shift-Esc) + LSFT_CAPSLOCK When LSFT_CAPSLOCK_ENABLE is defined, hold for Shift double tap for CAPSLOCK; otherwise, just Shift + KC_00 double zero "00" + KC_WINLCK toggles LGui/Win key lock + RGB_TOI Increase Timeout idle time threshold + RGB_TOD Decrease Timeout idle time threshold + +ENABLE FEATURES your keymap rules.mk + +STARTUP_NUMLOCK_ON = yes + turns on NUMLOCK by default + +ENCODER_DEFAULTACTIONS_ENABLE = yes + Enabled default encoder funtions + When enabled, use this in the keymap for an additional encoder processing + bool encoder_update_keymap(uint8_t index, bool clockwise) + + OPTION: set ENCODER_DEFAULTACTIONS_INDEX to the encoder number if the encoder is not index 0 + +TD_LSFT_CAPSLOCK_ENABLE = yes + This will enable double tap on Left Shift to toggle CAPSLOCK + KC_LSFTCAPS to bind to left Shift to enable feature + KC_LSFTCAPSWIN does the same thing but will not turn on CAPS when Win Lkey is disabled + +IDLE_TIMEOUT_ENABLE = yes + Enables Timer functionality; for RGB idle timeouts that can be changed dynamically + When enabled, use this in the keymap for an additional matrix processing + void matrix_scan_keymap(void) + + Functions: + u16int_t get_timeout_threshold(void) // returns the current timeout threshold + void timeout_update_threshold(bool increase) // change threshold: true = increase, false = decrease + void timeout_reset_timer(void) // resets timer (put in process_record_user if you override it) + void timeout_tick_timer(void) // registers time ticks (put in maxtrix_scan_user if you override it) + +Other Functions: + - activate_numlock(bool turn_on) // true = turn on NUM LOCK, false = off + +KEYMAP LEVEL ADDITIONAL PROCESSING FUNCTIONS + bool process_record_keymap(uint16_t keycode, keyrecord_t *record) + void keyboard_post_init_keymap(void) + +LIST OF COMPATIBLE KEYMAPS + - gmmk/pro + - gmmk/pro/ansi + - keebio/quefrency/rev3 + - mechwild/mercutio + - mechwild/murphpad (*) + - mechwild/OBE (*) + - nopunin10did/kastenwagen (*) + + (*) coming soon diff --git a/users/jonavin/rules.mk b/users/jonavin/rules.mk new file mode 100644 index 000000000000..4e9ee08ff722 --- /dev/null +++ b/users/jonavin/rules.mk @@ -0,0 +1,13 @@ +SRC += jonavin.c +ifeq ($(strip $(ENCODER_DEFAULTACTIONS_ENABLE)), yes) + OPT_DEFS += -DENCODER_DEFAULTACTIONS_ENABLE +endif +ifeq ($(strip $(TD_LSFT_CAPSLOCK_ENABLE)), yes) + OPT_DEFS += -DTD_LSFT_CAPSLOCK_ENABLE +endif +ifeq ($(strip $(IDLE_TIMEOUT_ENABLE)), yes) + OPT_DEFS += -DIDLE_TIMEOUT_ENABLE +endif +ifeq ($(strip $(STARTUP_NUMLOCK_ON)), yes) + OPT_DEFS += -DSTARTUP_NUMLOCK_ON +endif From 9aedf515c094b0c2d77417d9559062a5717d0d8e Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 19 Aug 2021 17:46:22 +0000 Subject: [PATCH 295/328] kb-elmo Noah AVR Community Layout support and Configurator fix (#14078) * noah_avr.h: use QMK 3-character notation for matrix positions * Community Layout support, Stage 1 - rename LAYOUT_ansi to LAYOUT_65_ansi_blocker - rename LAYOUT_ansi_splitbs to LAYOUT_65_ansi_blocker_split_bs - enable Community Layout support * info.json: add line breaks between rows * info.json: correct LAYOUT_iso data - unsplit the Backspace - change ANSI Enter to ISO Enter - split the left Shift * Community Layout support, Stage 2 - rename LAYOUT_iso to LAYOUT_65_iso_blocker - update Community Layout support * Community Layout support, Stage 3 - add LAYOUT_65_iso_blocker_split_bs - update Community Layout support * noah_avr.h: add matrix diagram --- keyboards/kb_elmo/noah_avr/info.json | 110 ++++++++++++++- .../kb_elmo/noah_avr/keymaps/default/keymap.c | 4 +- keyboards/kb_elmo/noah_avr/noah_avr.h | 125 +++++++++++------- keyboards/kb_elmo/noah_avr/rules.mk | 2 + 4 files changed, 182 insertions(+), 59 deletions(-) diff --git a/keyboards/kb_elmo/noah_avr/info.json b/keyboards/kb_elmo/noah_avr/info.json index 8560d4b867b0..571291d37e72 100644 --- a/keyboards/kb_elmo/noah_avr/info.json +++ b/keyboards/kb_elmo/noah_avr/info.json @@ -4,6 +4,11 @@ "maintainer": "kb-elmo", "width": 16, "height": 5, + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_65_ansi_blocker", + "LAYOUT_ansi_splitbs": "LAYOUT_65_ansi_blocker_split_bs", + "LAYOUT_iso": "LAYOUT_65_iso_blocker" + }, "layouts": { "LAYOUT_all": { "layout": [ @@ -23,6 +28,7 @@ {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, @@ -38,6 +44,7 @@ {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, @@ -52,6 +59,7 @@ {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, + {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, @@ -67,6 +75,7 @@ {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, @@ -78,7 +87,7 @@ {"x":15, "y":4} ] }, - "LAYOUT_ansi": { + "LAYOUT_65_ansi_blocker": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -95,6 +104,7 @@ {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, @@ -110,6 +120,7 @@ {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, @@ -124,6 +135,7 @@ {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, + {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, @@ -138,6 +150,7 @@ {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, @@ -149,7 +162,7 @@ {"x":15, "y":4} ] }, - "LAYOUT_ansi_splitbs": { + "LAYOUT_65_ansi_blocker_split_bs": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -167,6 +180,7 @@ {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, @@ -182,6 +196,7 @@ {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, @@ -196,6 +211,7 @@ {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, + {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, @@ -210,6 +226,7 @@ {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, @@ -221,7 +238,83 @@ {"x":15, "y":4} ] }, - "LAYOUT_iso": { + "LAYOUT_65_iso_blocker": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -239,6 +332,7 @@ {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, @@ -252,8 +346,8 @@ {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, - {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, @@ -266,9 +360,12 @@ {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, - {"x":12.75, "y":2, "w":2.25}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, - {"x":0, "y":3, "w":2.25}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, @@ -282,6 +379,7 @@ {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, diff --git a/keyboards/kb_elmo/noah_avr/keymaps/default/keymap.c b/keyboards/kb_elmo/noah_avr/keymaps/default/keymap.c index 6dae99e2b0d1..1c4dde03bb39 100644 --- a/keyboards/kb_elmo/noah_avr/keymaps/default/keymap.c +++ b/keyboards/kb_elmo/noah_avr/keymaps/default/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( + [0] = LAYOUT_65_ansi_blocker( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, 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_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_ansi( + [1] = LAYOUT_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kb_elmo/noah_avr/noah_avr.h b/keyboards/kb_elmo/noah_avr/noah_avr.h index a816a30d0f3b..66a85afa61af 100644 --- a/keyboards/kb_elmo/noah_avr/noah_avr.h +++ b/keyboards/kb_elmo/noah_avr/noah_avr.h @@ -18,68 +18,91 @@ #include "quantum.h" -#define ____ KC_NO +#define ___ KC_NO -/* This is a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1F │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2F │ │1D │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3F │ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │4B │4C │ │4D │4E │4F │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┐ + * │40 │41 │42 │46 │4C │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┘ */ + #define LAYOUT_all( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ - k400, k401, k402, k406, k411, k412, k413, k414, k415 \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k2F, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \ + k40, k41, k42, k46, k4B, k4C, k4D, k4E, k4F \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___, k3F }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, ___, k4B, k4C, k4D, k4E, k4F } \ +} + +#define LAYOUT_65_ansi_blocker( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0F, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k2F, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \ + k40, k41, k42, k46, k4B, k4C, k4D, k4E, k4F \ ) { \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, ____, k115 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ - { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, k315 }, \ - { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, ___, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___, k2F }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___, k3F }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, ___, k4B, k4C, k4D, k4E, k4F } \ } -#define LAYOUT_ansi( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k015, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ - k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ - k400, k401, k402, k406, k411, k412, k413, k414, k415 \ +#define LAYOUT_65_ansi_blocker_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k2F, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \ + k40, k41, k42, k46, k4B, k4C, k4D, k4E, k4F \ ) { \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ____, k015 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, ____, k115 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ - { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, k315 }, \ - { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___, k2F }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___, k3F }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, ___, k4B, k4C, k4D, k4E, k4F } \ } -#define LAYOUT_ansi_splitbs( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ - k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ - k400, k401, k402, k406, k411, k412, k413, k414, k415 \ +#define LAYOUT_65_iso_blocker( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0F, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1F, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2D, k2F, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \ + k40, k41, k42, k46, k4B, k4C, k4D, k4E, k4F \ ) { \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, ____, k115 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ - { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, k315 }, \ - { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, ___, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___, k3F }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, ___, k4B, k4C, k4D, k4E, k4F } \ } -#define LAYOUT_iso( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k015, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k115, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k113, k213, k215, \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ - k400, k401, k402, k406, k411, k412, k413, k414, k415 \ +#define LAYOUT_65_iso_blocker_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1F, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2D, k2F, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \ + k40, k41, k42, k46, k4B, k4C, k4D, k4E, k4F \ ) { \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ____, k015 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, ____, k115 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213, ____, k215 }, \ - { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, k315 }, \ - { k400, k401, k402, ____, ____, ____, k406, ____, ____, ____, ____, k411, k412, k413, k414, k415 } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___, k3F }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, ___, k4B, k4C, k4D, k4E, k4F } \ } diff --git a/keyboards/kb_elmo/noah_avr/rules.mk b/keyboards/kb_elmo/noah_avr/rules.mk index 38ce53e3096f..c82741ffc664 100644 --- a/keyboards/kb_elmo/noah_avr/rules.mk +++ b/keyboards/kb_elmo/noah_avr/rules.mk @@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output + +LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_iso_blocker 65_iso_blocker_split_bs From c039796d9d6d341f16600b7032df056c0959df06 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 19 Aug 2021 17:47:10 +0000 Subject: [PATCH 296/328] keebzdotnet F-Me Configurator fixes and codebase touch-up (#14077) * rename LAYOUT to LAYOUT_all * add info.json * override DYNAMIC_KEYMAP_LAYER_COUNT for via keymap The via keymap only initialized two layers without overriding the default value of DYNAMIC_KEYMAP_LAYER_COUNT (4). This commit sets DYNAMIC_KEYMAP_LAYER_COUNT for the via keymap to 2. --- keyboards/keebzdotnet/fme/fme.h | 2 +- keyboards/keebzdotnet/fme/info.json | 31 +++++++++++++++++++ .../keebzdotnet/fme/keymaps/default/keymap.c | 4 +-- .../keebzdotnet/fme/keymaps/via/config.h | 19 ++++++++++++ .../keebzdotnet/fme/keymaps/via/keymap.c | 4 +-- 5 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 keyboards/keebzdotnet/fme/info.json create mode 100644 keyboards/keebzdotnet/fme/keymaps/via/config.h diff --git a/keyboards/keebzdotnet/fme/fme.h b/keyboards/keebzdotnet/fme/fme.h index 912adf6451d6..ff8da5d409a7 100644 --- a/keyboards/keebzdotnet/fme/fme.h +++ b/keyboards/keebzdotnet/fme/fme.h @@ -20,7 +20,7 @@ along with this program. If not, see . #define ___ KC_NO -#define LAYOUT( \ +#define LAYOUT_all( \ k00, k13, k14, k12, k10, \ k11, k04, k02, k03, \ k22, k32, k21, k01 \ diff --git a/keyboards/keebzdotnet/fme/info.json b/keyboards/keebzdotnet/fme/info.json new file mode 100644 index 000000000000..2889cfa2d54b --- /dev/null +++ b/keyboards/keebzdotnet/fme/info.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "FMe", + "url": "", + "maintainer": "keebzdotnet", + "height": 4, + "width": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k13", "x":1, "y":0}, + {"label":"k14", "x":2, "y":0}, + {"label":"k12", "x":3, "y":0}, + {"label":"k10", "x":4, "y":0}, + + {"label":"k11", "x":0.25, "y":1}, + {"label":"k04", "x":1.25, "y":1}, + {"label":"k02", "x":2.25, "y":1}, + {"label":"k03", "x":3.25, "y":1, "w":1.75}, + + {"label":"k22", "x":0.25, "y":2, "w":2.75}, + {"label":"k32", "x":3, "y":3}, + {"label":"k21", "x":3, "y":2, "w":2}, + {"label":"k01", "x":4, "y":3} + ] + } + } +} diff --git a/keyboards/keebzdotnet/fme/keymaps/default/keymap.c b/keyboards/keebzdotnet/fme/keymaps/default/keymap.c index d6b52efd0fc8..a66b64eef0c6 100644 --- a/keyboards/keebzdotnet/fme/keymaps/default/keymap.c +++ b/keyboards/keebzdotnet/fme/keymaps/default/keymap.c @@ -17,13 +17,13 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_F, KC_U, KC_C, KC_K, KC_BSPC, KC_Y, KC_O, KC_U, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC ), - [1] = LAYOUT( + [1] = LAYOUT_all( RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboards/keebzdotnet/fme/keymaps/via/config.h b/keyboards/keebzdotnet/fme/keymaps/via/config.h new file mode 100644 index 000000000000..651c46be2155 --- /dev/null +++ b/keyboards/keebzdotnet/fme/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 QMK / James Young (@noroadsleft) + * + * 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 DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/keebzdotnet/fme/keymaps/via/keymap.c b/keyboards/keebzdotnet/fme/keymaps/via/keymap.c index d6b52efd0fc8..a66b64eef0c6 100644 --- a/keyboards/keebzdotnet/fme/keymaps/via/keymap.c +++ b/keyboards/keebzdotnet/fme/keymaps/via/keymap.c @@ -17,13 +17,13 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_F, KC_U, KC_C, KC_K, KC_BSPC, KC_Y, KC_O, KC_U, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC ), - [1] = LAYOUT( + [1] = LAYOUT_all( RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS From 8200804e96d1914ebad1948b52d6e1cec2e3ffcc Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Thu, 19 Aug 2021 20:12:34 +0200 Subject: [PATCH 297/328] [Keyboard] Add Voice65 (#13744) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/owlab/voice65/hotswap/config.h | 90 ++++ keyboards/owlab/voice65/hotswap/halconf.h | 21 + keyboards/owlab/voice65/hotswap/hotswap.c | 451 +++++++++++++++++ keyboards/owlab/voice65/hotswap/hotswap.h | 46 ++ keyboards/owlab/voice65/hotswap/info.json | 80 +++ .../voice65/hotswap/keymaps/default/keymap.c | 36 ++ .../voice65/hotswap/keymaps/via/keymap.c | 51 ++ .../voice65/hotswap/keymaps/via/rules.mk | 2 + keyboards/owlab/voice65/hotswap/mcuconf.h | 22 + keyboards/owlab/voice65/hotswap/readme.md | 21 + keyboards/owlab/voice65/hotswap/rules.mk | 26 + keyboards/owlab/voice65/soldered/config.h | 89 ++++ keyboards/owlab/voice65/soldered/halconf.h | 21 + keyboards/owlab/voice65/soldered/info.json | 442 +++++++++++++++++ .../voice65/soldered/keymaps/default/keymap.c | 36 ++ .../voice65/soldered/keymaps/via/keymap.c | 50 ++ .../voice65/soldered/keymaps/via/rules.mk | 2 + keyboards/owlab/voice65/soldered/mcuconf.h | 22 + keyboards/owlab/voice65/soldered/readme.md | 21 + keyboards/owlab/voice65/soldered/rules.mk | 28 ++ keyboards/owlab/voice65/soldered/soldered.c | 455 ++++++++++++++++++ keyboards/owlab/voice65/soldered/soldered.h | 116 +++++ 22 files changed, 2128 insertions(+) create mode 100644 keyboards/owlab/voice65/hotswap/config.h create mode 100644 keyboards/owlab/voice65/hotswap/halconf.h create mode 100644 keyboards/owlab/voice65/hotswap/hotswap.c create mode 100644 keyboards/owlab/voice65/hotswap/hotswap.h create mode 100644 keyboards/owlab/voice65/hotswap/info.json create mode 100644 keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/owlab/voice65/hotswap/mcuconf.h create mode 100644 keyboards/owlab/voice65/hotswap/readme.md create mode 100644 keyboards/owlab/voice65/hotswap/rules.mk create mode 100644 keyboards/owlab/voice65/soldered/config.h create mode 100644 keyboards/owlab/voice65/soldered/halconf.h create mode 100644 keyboards/owlab/voice65/soldered/info.json create mode 100644 keyboards/owlab/voice65/soldered/keymaps/default/keymap.c create mode 100644 keyboards/owlab/voice65/soldered/keymaps/via/keymap.c create mode 100644 keyboards/owlab/voice65/soldered/keymaps/via/rules.mk create mode 100644 keyboards/owlab/voice65/soldered/mcuconf.h create mode 100644 keyboards/owlab/voice65/soldered/readme.md create mode 100644 keyboards/owlab/voice65/soldered/rules.mk create mode 100644 keyboards/owlab/voice65/soldered/soldered.c create mode 100644 keyboards/owlab/voice65/soldered/soldered.h diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h new file mode 100644 index 000000000000..4b6e8d8b8375 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -0,0 +1,90 @@ +/* +Copyright 2021 kb-elmo + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4F53 +#define PRODUCT_ID 0x564F +#define DEVICE_VER 0x0001 +#define MANUFACTURER Owl Studio +#define PRODUCT Voice65 Hotswap + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { B0, B1, B2, B10, B11 } +#define MATRIX_COL_PINS { A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A15, B8, B9, B12, B13 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* NKRO */ +#ifdef NKRO_ENABLE +# define FORCE_NKRO +#endif + +/* RGB stripe */ +#define RGB_DI_PIN B15 +#ifdef RGB_DI_PIN +# 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_SNAKE +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLIGHT_EFFECT_TWINKLE +# define RGBLED_NUM 20 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 10 +# define RGBLIGHT_LIMIT_VAL 180 +# define OWL_VOLUME_RANGE 50 +#endif + +/* RGB matrix */ +#ifdef RGB_MATRIX_ENABLE +# define USE_I2CV2 +# define RGB_MATRIX_DISABLE_KEYCODES +# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_LED_PROCESS_LIMIT 4 +# define RGB_MATRIX_LED_FLUSH_LIMIT 26 +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 +# define RGB_MATRIX_STARTUP_VAL 128 +# define DRIVER_ADDR_1 0b0110000 +# define DRIVER_ADDR_2 0b0110000 +# define DRIVER_COUNT 2 +# define DRIVER_1_LED_TOTAL 67 +# define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#endif + +/* Encoder */ +#define ENCODERS_PAD_A { B4 } +#define ENCODERS_PAD_B { B5 } +#define ENCODER_RESOLUTION 4 +#define TAP_CODE_DELAY 10 diff --git a/keyboards/owlab/voice65/hotswap/halconf.h b/keyboards/owlab/voice65/hotswap/halconf.h new file mode 100644 index 000000000000..f88be48211c2 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2021 kb-elmo + * + * 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 HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c new file mode 100644 index 000000000000..343daafeb264 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/hotswap.c @@ -0,0 +1,451 @@ +/* Copyright 2021 kb-elmo + * + * 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 "hotswap.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS3_SW1, CS2_SW1, CS1_SW1}, /* RGB0-ESC ROW0*/ + {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1-1 */ + {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB2-2 */ + {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB3-3 */ + {0, CS15_SW1, CS14_SW1, CS13_SW1}, /* RGB4-4 */ + {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB5-5 */ + {0, CS21_SW1, CS20_SW1, CS19_SW1}, /* RGB6-6 */ + {0, CS24_SW1, CS23_SW1, CS22_SW1}, /* RGB7-7 */ + {0, CS27_SW1, CS26_SW1, CS25_SW1}, /* RGB8-8 */ + {0, CS30_SW1, CS29_SW1, CS28_SW1}, /* RGB9-9 */ + {0, CS33_SW1, CS32_SW1, CS31_SW1}, /* RGB10-0 */ + {0, CS36_SW1, CS35_SW1, CS34_SW1}, /* RGB11--- */ + {0, CS39_SW1, CS38_SW1, CS37_SW1}, /* RGB12-+= */ + {0, CS36_SW6, CS35_SW6, CS34_SW6}, /* RGB13-BS */ + {0, CS27_SW7, CS26_SW7, CS25_SW7}, /* RGB14-DEL */ + {0, CS3_SW2, CS2_SW2, CS1_SW2}, /* RGB15-TAB ----ROW1*/ + {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB16-Q */ + {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB17-W */ + {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB18-E */ + {0, CS15_SW2, CS14_SW2, CS13_SW2}, /* RGB19-R */ + {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB20-T */ + {0, CS21_SW2, CS20_SW2, CS19_SW2}, /* RGB21-Y */ + {0, CS24_SW2, CS23_SW2, CS22_SW2}, /* RGB22-U */ + {0, CS27_SW2, CS26_SW2, CS25_SW2}, /* RGB23-I */ + {0, CS30_SW2, CS29_SW2, CS28_SW2}, /* RGB24-O */ + {0, CS33_SW2, CS32_SW2, CS31_SW2}, /* RGB25-P */ + {0, CS36_SW2, CS35_SW2, CS34_SW2}, /* RGB26-[ */ + {0, CS39_SW2, CS38_SW2, CS37_SW2}, /* RGB27-] */ + {0, CS39_SW6, CS38_SW6, CS37_SW6}, /* RGB28-\ */ + {0, CS30_SW7, CS29_SW7, CS28_SW7}, /* RGB29-PGUP */ + {0, CS3_SW3, CS2_SW3, CS1_SW3}, /* RGB30-CAPS---ROW2*/ + {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB31-A-- */ + {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB32-S-- */ + {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB33-D-- */ + {0, CS15_SW3, CS14_SW3, CS13_SW3}, /* RGB34-F-- */ + {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB35-G-- */ + {0, CS21_SW3, CS20_SW3, CS19_SW3}, /* RGB36-H-- */ + {0, CS24_SW3, CS23_SW3, CS22_SW3}, /* RGB37-J-- */ + {0, CS27_SW3, CS26_SW3, CS25_SW3}, /* RGB38-K-- */ + {0, CS30_SW3, CS29_SW3, CS28_SW3}, /* RGB39-L-- */ + {0, CS33_SW3, CS32_SW3, CS31_SW3}, /* RGB40-;:- */ + {0, CS36_SW3, CS35_SW3, CS34_SW3}, /* RGB41-''- */ + {0, CS39_SW3, CS38_SW3, CS37_SW3}, /* RGB42-ENTER- */ + {0, CS33_SW7, CS32_SW7, CS31_SW7}, /* RGB43-PGDN */ + {0, CS3_SW4, CS2_SW4, CS1_SW4}, /* RGB44-LSF --ROW3*/ + {0, CS6_SW4, CS5_SW4, CS4_SW4}, /* RGB45-Z -*/ + {0, CS9_SW4, CS8_SW4, CS7_SW4}, /* RGB46-X -*/ + {0, CS12_SW4, CS11_SW4, CS10_SW4}, /* RGB47-C -*/ + {0, CS15_SW4, CS14_SW4, CS13_SW4}, /* RGB48-V -*/ + {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB49-B -*/ + {0, CS21_SW4, CS20_SW4, CS19_SW4}, /* RGB50-N -*/ + {0, CS24_SW4, CS23_SW4, CS22_SW4}, /* RGB51-M -*/ + {0, CS27_SW4, CS26_SW4, CS25_SW4}, /* RGB52-,< -*/ + {0, CS30_SW4, CS29_SW4, CS28_SW4}, /* RGB53->. -*/ + {0, CS33_SW4, CS32_SW4, CS31_SW4}, /* RGB54-? -*/ + {0, CS36_SW4, CS35_SW4, CS34_SW4}, /* RGB55-RSF -*/ + {0, CS39_SW4, CS38_SW4, CS37_SW4}, /* RGB56-UP -*/ + {0, CS36_SW7, CS35_SW7, CS34_SW7}, /* RGB57--MO-- */ + {0, CS3_SW5, CS2_SW5, CS1_SW5}, /* RGB58-lct-- row4*/ + {0, CS6_SW5, CS5_SW5, CS4_SW5}, /* RGB59-lwin- */ + {0, CS9_SW5, CS8_SW5, CS7_SW5}, /* RGB60-lalt- */ + {0, CS18_SW5, CS17_SW5, CS16_SW5}, /* RGB61-sp- */ + {0, CS30_SW5, CS29_SW5, CS28_SW5}, /* RGB62-ralt- */ + {0, CS33_SW5, CS32_SW5, CS31_SW5}, /* RGB63-rct- */ + {0, CS36_SW5, CS35_SW5, CS34_SW5}, /* RGB64-left- */ + {0, CS39_SW5, CS38_SW5, CS37_SW5}, /* RGB65-dn- */ + {0, CS39_SW7, CS38_SW7, CS37_SW7}, /* RGB66-right- */ +}; + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, + { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, NO_LED, 65, 66 } +}, { + { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 224, 0 }, + { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 210, 16 }, { 224, 16 }, + { 4, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 196, 32 }, { 224, 32 }, + { 8, 48 }, { 24, 48 }, { 40, 48 }, { 56, 48 }, { 72, 48 }, { 88, 48 }, { 104, 48 }, { 120, 48 }, { 136, 48 }, { 152, 48 }, { 168, 48 }, { 184, 48 }, { 208, 48 }, { 224, 48 }, + { 2, 64 }, { 18, 64 }, { 34, 64 }, { 82, 64 }, { 146, 64 }, { 162, 64 }, { 178, 64 }, { 210, 64 }, { 224, 64 } +}, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 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 + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) +{ + if (host_keyboard_led_state().caps_lock) + { + rgb_matrix_set_color(31, 255, 255, 255); + } else { + rgb_matrix_set_color(31, 0, 0, 0); + } +} + +enum encoder_modes{ + ENCODER_MODE_ONE = 0, + ENCODER_MODE_TWO, + ENCODER_MODE_THREE, +}; + +keyboard_config_t keyboard_config; +rgblight_config_t rgblight_config; + +uint8_t pre_hue, pre_sat, pre_val; +uint8_t previous_rgb_mode = 0; +uint8_t dir_hue, dir_sat; + +bool encoder_in = false; +uint32_t encoder_timer; + +bool encoder_ani_start= false; +uint32_t encoder_ani_timer = 0; + +bool encoder_direction_start = false; +uint32_t encoder_direction_timer = 0; + + +bool lizm_restart_snake = false; +void rgblight_snake_restart(uint8_t hue, uint8_t sat, uint8_t val){ + lizm_restart_snake = true; // restart signal to local each effect + rgblight_config.hue = hue; + rgblight_config.sat = sat; + rgblight_config.val = val; +} + + +void keyboard_post_init_kb(void){ + keyboard_config.raw = eeconfig_read_kb(); + if( keyboard_config.encoder_mode_index > ENCODER_MODE_THREE ){ + keyboard_config.encoder_mode_index = ENCODER_MODE_ONE; + eeconfig_update_kb(keyboard_config.raw); + } +} + +void switch_encoder_mode(uint8_t mode){ + switch(mode){ + case ENCODER_MODE_ONE: + dir_hue = 88; + dir_sat = 255; + break; + + case ENCODER_MODE_TWO: + dir_hue = 0; + dir_sat = 240; + break; + + case ENCODER_MODE_THREE: + dir_hue = 176; + dir_sat = 255; + break; + } + rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val); +} + + +void init_encoder_mode(uint8_t mode){ + previous_rgb_mode = rgblight_get_mode(); + pre_hue = rgblight_get_hue(); + pre_sat = rgblight_get_sat(); + pre_val = rgblight_get_val(); + encoder_in = true; + + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + + switch_encoder_mode(mode); +} + + +void set_encoder_mode(uint8_t mode){ + if(encoder_in == false){ + init_encoder_mode(mode); + }else{ + switch_encoder_mode(mode); + } + eeconfig_update_kb(keyboard_config.raw); + encoder_timer = timer_read32(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case RGB_MOD: + case RGB_RMOD: + case RGB_HUI: + case RGB_HUD: + case RGB_SAI: + case RGB_SAD: + case RGB_VAI: + case RGB_VAD: + + if(encoder_in){ + return false; + } + break; + + case KC_F13: + rgb_matrix_toggle(); + break; + + case KC_F14: + rgb_matrix_step(); + break; + + case KC_F15: + rgb_matrix_step_reverse(); + break; + + case KC_F16: + rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs + break; + + case KC_F17: + rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs + break; + + case KC_F18: + rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs + break; + + case KC_F19: + rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs + break; + + case KC_F20: + rgb_matrix_increase_val(); //Increase the value for effect range LEDs + break; + + case KC_F21: + rgb_matrix_decrease_val();//Decrease the value for effect range LEDs + break; + + case KC_F22: //change encoder mode upward + + if(!encoder_direction_start){ + if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){ + keyboard_config.encoder_mode_index++; + } + else{ + keyboard_config.encoder_mode_index = ENCODER_MODE_ONE; + } + set_encoder_mode(keyboard_config.encoder_mode_index); + } + return false; + + case KC_F23: + if(!encoder_direction_start){ + if(keyboard_config.encoder_mode_index > ENCODER_MODE_ONE){ + keyboard_config.encoder_mode_index--; + } + else{ + keyboard_config.encoder_mode_index = ENCODER_MODE_THREE; + } + set_encoder_mode(keyboard_config.encoder_mode_index); + } + return false; + + default: + break; + } + } + return process_record_user(keycode, record); +} + + +void matrix_scan_kb(void) { + if(encoder_in){ + if(timer_elapsed32(encoder_timer) > 5000){ + rgblight_mode(previous_rgb_mode); + rgblight_sethsv(pre_hue, pre_sat, pre_val); + encoder_in = false; + } + } + + if(encoder_ani_start){ + if(timer_elapsed32(encoder_ani_timer) > VOLUME_ANIMATION_TIMER){ + encoder_ani_start = false; + rgblight_sethsv_noeeprom(0,0,0); + } + } + + if(encoder_direction_start){ + if(timer_elapsed32(encoder_direction_timer) > (VOLUME_ANIMATION_TIMER+1500)){ + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_sethsv_noeeprom(dir_hue, dir_sat, pre_val); + encoder_direction_start = false; + } + } + matrix_scan_user(); +} + + +void set_volume_animation(bool increase){ + if(!encoder_ani_start){ + rgblight_snake_restart(dir_hue, dir_sat, pre_val); + } + + if(increase){ + rgblight_mode_noeeprom(17); + } else { + rgblight_mode_noeeprom(18); + } + + encoder_ani_timer = timer_read32(); + encoder_direction_timer = encoder_ani_timer; + encoder_ani_start = true; + encoder_direction_start = true; +} + + +bool encoder_update_kb(uint8_t index, bool clockwise) { + uint8_t layer_now = keyboard_config.encoder_mode_index +1; + uint16_t encoder_cw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=1 }); + uint16_t encoder_ccw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=2 }); + if (index == 0) { /* First encoder */ + if(encoder_in == false){ + init_encoder_mode(keyboard_config.encoder_mode_index); + } + + if (!clockwise) { + switch(encoder_cw_keycode) { + + case KC_F13: + rgb_matrix_toggle(); + break; + + case KC_F14: + rgb_matrix_step(); + break; + + case KC_F15: + rgb_matrix_step_reverse(); + break; + + case KC_F16: + rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs + break; + + case KC_F17: + rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs + break; + + case KC_F18: + rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs + break; + + case KC_F19: + rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs + break; + + case KC_F20: + rgb_matrix_increase_val(); //Increase the value for effect range LEDs + break; + + case KC_F21: + rgb_matrix_decrease_val();//Decrease the value for effect range LEDs + break; + + case KC_VOLU: + case KC_VOLD: + tap_code(encoder_cw_keycode); + break; + + default: + tap_code(encoder_cw_keycode); + break; + } + set_volume_animation(true); + } else { + switch(encoder_ccw_keycode) { + + case KC_F13: + rgb_matrix_toggle(); + break; + + case KC_F14: + rgb_matrix_step(); + break; + + case KC_F15: + rgb_matrix_step_reverse(); + break; + + case KC_F16: + rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs + break; + + case KC_F17: + rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs + break; + + case KC_F18: + rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs + break; + + case KC_F19: + rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs + break; + + case KC_F20: + rgb_matrix_increase_val(); //Increase the value for effect range LEDs + break; + + case KC_F21: + rgb_matrix_decrease_val();//Decrease the value for effect range LEDs + break; + + case KC_VOLU: + case KC_VOLD: + tap_code(encoder_ccw_keycode); + break; + + default: + tap_code(encoder_ccw_keycode); + break; + } + set_volume_animation(false); + } + encoder_timer = timer_read32(); + } + return true; +} diff --git a/keyboards/owlab/voice65/hotswap/hotswap.h b/keyboards/owlab/voice65/hotswap/hotswap.h new file mode 100644 index 000000000000..cae25af596f1 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/hotswap.h @@ -0,0 +1,46 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K402, K405, K409, K410, K411, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, ____, K313, K314 }, \ + { K400, K401, K402, ____, ____, K405, ____, ____, ____, K409, K410, K411, ____, K413, K414 } \ +} + +typedef union { + uint32_t raw; + struct { + uint8_t encoder_mode_index :8; + }; +} keyboard_config_t; + +extern keyboard_config_t keyboard_config; + +#define VOLUME_ANIMATION_TIMER 580 diff --git a/keyboards/owlab/voice65/hotswap/info.json b/keyboards/owlab/voice65/hotswap/info.json new file mode 100644 index 000000000000..93cc3521c4d4 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/info.json @@ -0,0 +1,80 @@ +{ + "keyboard_name": "voice65 hotswap", + "url": "https://www.popkeyboard.com/products/67968vn00mzx", + "maintainer": "kb-elmo", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c new file mode 100644 index 000000000000..406da3d70165 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 kb-elmo + * + * 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 + +// How long (in ms) to wait between animation steps for the snake mode +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS + ) +}; diff --git a/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c b/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c new file mode 100644 index 000000000000..c058aad5e545 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2021 kb-elmo + * + * 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 + +// How long (in ms) to wait between animation steps for the snake mode +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/owlab/voice65/hotswap/keymaps/via/rules.mk b/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/owlab/voice65/hotswap/mcuconf.h b/keyboards/owlab/voice65/hotswap/mcuconf.h new file mode 100644 index 000000000000..808ff765401b --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2021 kb-elmo + * + * 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_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/owlab/voice65/hotswap/readme.md b/keyboards/owlab/voice65/hotswap/readme.md new file mode 100644 index 000000000000..3eb26792e35d --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/readme.md @@ -0,0 +1,21 @@ +# Voice65 - hotswap PCB + +![voice65](https://i.imgur.com/okI07scl.jpg) + +A 65% with an LED strip and a scroll wheel + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Voice65 hotswap PCB +* Hardware Availability: Ended groupbuy: https://www.popkeyboard.com/products/67968vn00mzx + +Make example for this keyboard (after setting up your build environment): + + make owlab/voice65/hotswap:default + +Flashing example for this keyboard: + + make owlab/voice65/hotswap:default:flash + +**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board. + +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). diff --git a/keyboards/owlab/voice65/hotswap/rules.mk b/keyboards/owlab/voice65/hotswap/rules.mk new file mode 100644 index 000000000000..7f1bc2ed9d07 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = STM32F303 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Rotary encoder + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3741 diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h new file mode 100644 index 000000000000..bb7ec6102c5d --- /dev/null +++ b/keyboards/owlab/voice65/soldered/config.h @@ -0,0 +1,89 @@ +/* +Copyright 2021 kb-elmo + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4F53 +#define PRODUCT_ID 0x5657 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Owl Studio +#define PRODUCT Voice65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { B0, B1, B2, B10, B11 } +#define MATRIX_COL_PINS { A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A15, B8, B9, B12, B13 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 +/* NKRO */ +#ifdef NKRO_ENABLE +# define FORCE_NKRO +#endif + +/* RGB stripe */ +#define RGB_DI_PIN B15 +#ifdef RGB_DI_PIN +# 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_SNAKE +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLIGHT_EFFECT_TWINKLE +# define RGBLED_NUM 20 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 10 +# define RGBLIGHT_LIMIT_VAL 180 +# define OWL_VOLUME_RANGE 50 +#endif + +/* RGB matrix*/ +#ifdef RGB_MATRIX_ENABLE +# define USE_I2CV2 +# define RGB_MATRIX_DISABLE_KEYCODES +# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_LED_PROCESS_LIMIT 4 +# define RGB_MATRIX_LED_FLUSH_LIMIT 26 +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 +# define RGB_MATRIX_STARTUP_VAL 128 +# define DRIVER_ADDR_1 0b0110000 +# define DRIVER_ADDR_2 0b0110000 +# define DRIVER_COUNT 2 +# define DRIVER_1_LED_TOTAL 71 +# define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#endif + +/* Encoder */ +#define ENCODERS_PAD_A { B4 } +#define ENCODERS_PAD_B { B5 } +#define ENCODER_RESOLUTION 4 +#define TAP_CODE_DELAY 10 diff --git a/keyboards/owlab/voice65/soldered/halconf.h b/keyboards/owlab/voice65/soldered/halconf.h new file mode 100644 index 000000000000..f88be48211c2 --- /dev/null +++ b/keyboards/owlab/voice65/soldered/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2021 kb-elmo + * + * 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 HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/owlab/voice65/soldered/info.json b/keyboards/owlab/voice65/soldered/info.json new file mode 100644 index 000000000000..40d49a7a99a2 --- /dev/null +++ b/keyboards/owlab/voice65/soldered/info.json @@ -0,0 +1,442 @@ +{ + "keyboard_name": "voice65 soldered", + "url": "https://www.popkeyboard.com/products/67968vn00mzx", + "maintainer": "kb-elmo", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "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":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "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":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c new file mode 100644 index 000000000000..617b60dcf793 --- /dev/null +++ b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 kb-elmo + * + * 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 + +// How long (in ms) to wait between animation steps for the snake mode +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS + ) +}; diff --git a/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c b/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c new file mode 100644 index 000000000000..9b3715e1135e --- /dev/null +++ b/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2021 kb-elmo + * + * 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 + +// How long (in ms) to wait between animation steps for the snake mode +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, RESET, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, 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 + ), + [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 + ) +}; diff --git a/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk b/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/owlab/voice65/soldered/mcuconf.h b/keyboards/owlab/voice65/soldered/mcuconf.h new file mode 100644 index 000000000000..808ff765401b --- /dev/null +++ b/keyboards/owlab/voice65/soldered/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2021 kb-elmo + * + * 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_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/owlab/voice65/soldered/readme.md b/keyboards/owlab/voice65/soldered/readme.md new file mode 100644 index 000000000000..6299c905ea83 --- /dev/null +++ b/keyboards/owlab/voice65/soldered/readme.md @@ -0,0 +1,21 @@ +# Voice65 - soldered PCB + +![voice65](https://i.imgur.com/okI07scl.jpg) + +A 65% with an LED strip and a scroll wheel + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Voice65 soldered PCB +* Hardware Availability: Ended groupbuy: https://www.popkeyboard.com/products/67968vn00mzx + +Make example for this keyboard (after setting up your build environment): + + make owlab/voice65/soldered:default + +Flashing example for this keyboard: + + make owlab/voice65/soldered:default:flash + +**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board. + +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). diff --git a/keyboards/owlab/voice65/soldered/rules.mk b/keyboards/owlab/voice65/soldered/rules.mk new file mode 100644 index 000000000000..dba1a7a6502d --- /dev/null +++ b/keyboards/owlab/voice65/soldered/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = STM32F303 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Rotary encoder + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3741 + +LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_ansi_blocker_tsangan 65_iso_blocker 65_iso_blocker_split_bs diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c new file mode 100644 index 000000000000..06288eb0a80a --- /dev/null +++ b/keyboards/owlab/voice65/soldered/soldered.c @@ -0,0 +1,455 @@ +/* Copyright 2021 kb-elmo + * + * 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 "soldered.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS3_SW1, CS2_SW1, CS1_SW1}, /* RGB0-ESC ROW0*/ + {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1-1 */ + {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB2-2 */ + {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB3-3 */ + {0, CS15_SW1, CS14_SW1, CS13_SW1}, /* RGB4-4 */ + {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB5-5 */ + {0, CS21_SW1, CS20_SW1, CS19_SW1}, /* RGB6-6 */ + {0, CS24_SW1, CS23_SW1, CS22_SW1}, /* RGB7-7 */ + {0, CS27_SW1, CS26_SW1, CS25_SW1}, /* RGB8-8 */ + {0, CS30_SW1, CS29_SW1, CS28_SW1}, /* RGB9-9 */ + {0, CS33_SW1, CS32_SW1, CS31_SW1}, /* RGB10-0 */ + {0, CS36_SW1, CS35_SW1, CS34_SW1}, /* RGB11--- */ + {0, CS39_SW6, CS38_SW6, CS37_SW6}, /* RGB12-+= */ + {0, CS36_SW6, CS35_SW6, CS34_SW6}, /* RGB13-BS */ + {0, CS27_SW6, CS26_SW6, CS25_SW6}, /* RGB14-BACKSPACE SPLIT */ + {0, CS36_SW8, CS35_SW8, CS34_SW8}, /* RGB15-DEL */ + {0, CS3_SW2, CS2_SW2, CS1_SW2}, /* RGB16-TAB ----ROW1*/ + {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB17-Q */ + {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB18-W */ + {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB19-E */ + {0, CS15_SW2, CS14_SW2, CS13_SW2}, /* RGB20-R */ + {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB21-T */ + {0, CS21_SW2, CS20_SW2, CS19_SW2}, /* RGB22-Y */ + {0, CS24_SW2, CS23_SW2, CS22_SW2}, /* RGB23-U */ + {0, CS27_SW2, CS26_SW2, CS25_SW2}, /* RGB24-I */ + {0, CS30_SW2, CS29_SW2, CS28_SW2}, /* RGB25-O */ + {0, CS33_SW2, CS32_SW2, CS31_SW2}, /* RGB26-P */ + {0, CS36_SW2, CS35_SW2, CS34_SW2}, /* RGB27-[ */ + {0, CS39_SW7, CS38_SW7, CS37_SW7}, /* RGB28-] */ + {0, CS36_SW7, CS35_SW7, CS34_SW7}, /* RGB29-\ */ + {0, CS27_SW7, CS26_SW7, CS25_SW7}, /* RGB30-PGUP */ + {0, CS3_SW3, CS2_SW3, CS1_SW3}, /* RGB31-CAPS---ROW2*/ + {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB32-A-- */ + {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB33-S-- */ + {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB34-D-- */ + {0, CS15_SW3, CS14_SW3, CS13_SW3}, /* RGB35-F-- */ + {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB36-G-- */ + {0, CS21_SW3, CS20_SW3, CS19_SW3}, /* RGB37-H-- */ + {0, CS24_SW3, CS23_SW3, CS22_SW3}, /* RGB38-J-- */ + {0, CS27_SW3, CS26_SW3, CS25_SW3}, /* RGB39-K-- */ + {0, CS30_SW3, CS29_SW3, CS28_SW3}, /* RGB40-L-- */ + {0, CS33_SW3, CS32_SW3, CS31_SW3}, /* RGB41-;:- */ + {0, CS36_SW3, CS35_SW3, CS34_SW3}, /* RGB42-''- */ + {0, CS39_SW8, CS38_SW8, CS37_SW8}, /* RGB43-ENTER- */ + {0, CS27_SW8, CS26_SW8, CS25_SW8}, /* RGB44-PGDN */ + {0, CS3_SW4, CS2_SW4, CS1_SW4}, /* RGB45-LSF --ROW3*/ + {0, CS6_SW4, CS5_SW4, CS4_SW4}, /* RGB46-LSF split -*/ + {0, CS9_SW4, CS8_SW4, CS7_SW4}, /* RGB47-Z -*/ + {0, CS12_SW4, CS11_SW4, CS10_SW4}, /* RGB48-X -*/ + {0, CS15_SW4, CS14_SW4, CS13_SW4}, /* RGB49-C -*/ + {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB50-V -*/ + {0, CS21_SW4, CS20_SW4, CS19_SW4}, /* RGB51-B -*/ + {0, CS24_SW4, CS23_SW4, CS22_SW4}, /* RGB52-N -*/ + {0, CS27_SW4, CS26_SW4, CS25_SW4}, /* RGB53-M -*/ + {0, CS30_SW4, CS29_SW4, CS28_SW4}, /* RGB54-<, -*/ + {0, CS33_SW4, CS32_SW4, CS31_SW4}, /* RGB55->. -*/ + {0, CS36_SW4, CS35_SW4, CS34_SW4}, /* RGB56-?/ -*/ + {0, CS39_SW9, CS38_SW9, CS37_SW9}, /* RGB57-RSF -*/ + {0, CS36_SW9, CS35_SW9, CS34_SW9}, /* RGB58-UP -*/ + {0, CS27_SW9, CS26_SW9, CS25_SW9}, /* RGB59--MO-- */ + {0, CS3_SW5, CS2_SW5, CS1_SW5}, /* RGB60-lct-- row4*/ + {0, CS6_SW5, CS5_SW5, CS4_SW5}, /* RGB61-lwin- */ + {0, CS9_SW5, CS8_SW5, CS7_SW5}, /* RGB62-lalt- */ + {0, CS12_SW5, CS11_SW5, CS10_SW5}, /* RGB63-sp2.25- */ + {0, CS15_SW5, CS14_SW5, CS13_SW5}, /* RGB64-sp7U6.25U1.25U- */ + {0, CS21_SW5, CS20_SW5, CS19_SW5}, /* RGB65-sp2.75U- */ + {0, CS30_SW5, CS29_SW5, CS28_SW5}, /* RGB66-ralt- */ + {0, CS33_SW5, CS32_SW5, CS31_SW5}, /* RGB67-rctrl- */ + {0, CS36_SW5, CS35_SW5, CS34_SW5}, /* RGB68-left- */ + {0, CS39_SW5, CS38_SW5, CS37_SW5}, /* RGB69-dn- */ + {0, CS27_SW5, CS26_SW5, CS25_SW5}, /* RGB70-right- */ +}; + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, + { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 15, 44 }, + { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 }, + { 60, 61, 62, 63, 64, NO_LED, 65, NO_LED, NO_LED, 66, 67, 68, 69, NO_LED, 70 } +}, { + { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0}, { 180, 0}, { 195, 0 }, { 209, 0 }, { 224, 0 }, + { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 208, 16 }, { 224, 16 }, + { 2, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 202, 32 }, { 224, 32 }, + { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 176, 48 }, { 192, 48 }, { 208, 48 }, { 224, 48 }, + { 0, 64 }, { 20, 64 }, { 40, 64 }, { 60, 64 }, { 95, 64 }, { 132, 64 }, { 152, 64 }, { 172, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 } +}, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + } +}; + + +#endif + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) +{ + if (host_keyboard_led_state().caps_lock) + { + rgb_matrix_set_color(31, 255, 255, 255); + } else { + rgb_matrix_set_color(31, 0, 0, 0); + } +} + +enum encoder_modes{ + ENCODER_MODE_ONE = 0, + ENCODER_MODE_TWO, + ENCODER_MODE_THREE, +}; + +keyboard_config_t keyboard_config; +rgblight_config_t rgblight_config; + +uint8_t pre_hue, pre_sat, pre_val; +uint8_t previous_rgb_mode = 0; +uint8_t dir_hue, dir_sat; + +bool encoder_in = false; +uint32_t encoder_timer; + +bool encoder_ani_start= false; +uint32_t encoder_ani_timer = 0; + +bool encoder_direction_start = false; +uint32_t encoder_direction_timer = 0; + + +bool lizm_restart_snake = false; +void rgblight_snake_restart(uint8_t hue, uint8_t sat, uint8_t val){ + lizm_restart_snake = true; // restart signal to local each effect + rgblight_config.hue = hue; + rgblight_config.sat = sat; + rgblight_config.val = val; +} + + +void keyboard_post_init_kb(void){ + keyboard_config.raw = eeconfig_read_kb(); + if( keyboard_config.encoder_mode_index > ENCODER_MODE_THREE ){ + keyboard_config.encoder_mode_index = ENCODER_MODE_ONE; + eeconfig_update_kb(keyboard_config.raw); + } +} + +void switch_encoder_mode(uint8_t mode){ + switch(mode){ + case ENCODER_MODE_ONE: + dir_hue = 88; + dir_sat = 255; + break; + + case ENCODER_MODE_TWO: + dir_hue = 0; + dir_sat = 240; + break; + + case ENCODER_MODE_THREE: + dir_hue = 176; + dir_sat = 255; + break; + } + rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val); +} + + +void init_encoder_mode(uint8_t mode){ + previous_rgb_mode = rgblight_get_mode(); + pre_hue = rgblight_get_hue(); + pre_sat = rgblight_get_sat(); + pre_val = rgblight_get_val(); + encoder_in = true; + + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + + switch_encoder_mode(mode); +} + + +void set_encoder_mode(uint8_t mode){ + if(encoder_in == false){ + init_encoder_mode(mode); + }else{ + switch_encoder_mode(mode); + } + eeconfig_update_kb(keyboard_config.raw); + encoder_timer = timer_read32(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case RGB_MOD: + case RGB_RMOD: + case RGB_HUI: + case RGB_HUD: + case RGB_SAI: + case RGB_SAD: + case RGB_VAI: + case RGB_VAD: + + if(encoder_in){ + return false; + } + break; + + case KC_F13: + rgb_matrix_toggle(); + break; + + case KC_F14: + rgb_matrix_step(); + break; + + case KC_F15: + rgb_matrix_step_reverse(); + break; + + case KC_F16: + rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs + break; + + case KC_F17: + rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs + break; + + case KC_F18: + rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs + break; + + case KC_F19: + rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs + break; + + case KC_F20: + rgb_matrix_increase_val(); //Increase the value for effect range LEDs + break; + + case KC_F21: + rgb_matrix_decrease_val();//Decrease the value for effect range LEDs + break; + + case KC_F22: //change encoder mode upward + + if(!encoder_direction_start){ + if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){ + keyboard_config.encoder_mode_index++; + } + else{ + keyboard_config.encoder_mode_index = ENCODER_MODE_ONE; + } + set_encoder_mode(keyboard_config.encoder_mode_index); + } + return false; + + case KC_F23: + if(!encoder_direction_start){ + if(keyboard_config.encoder_mode_index > ENCODER_MODE_ONE){ + keyboard_config.encoder_mode_index--; + } + else{ + keyboard_config.encoder_mode_index = ENCODER_MODE_THREE; + } + set_encoder_mode(keyboard_config.encoder_mode_index); + } + return false; + + default: + break; + } + } + return process_record_user(keycode, record); +} + + +void matrix_scan_kb(void) { + if(encoder_in){ + if(timer_elapsed32(encoder_timer) > 5000){ + rgblight_mode(previous_rgb_mode); + rgblight_sethsv(pre_hue, pre_sat, pre_val); + encoder_in = false; + } + } + + if(encoder_ani_start){ + if(timer_elapsed32(encoder_ani_timer) > VOLUME_ANIMATION_TIMER){ + encoder_ani_start = false; + rgblight_sethsv_noeeprom(0,0,0); + } + } + + if(encoder_direction_start){ + if(timer_elapsed32(encoder_direction_timer) > (VOLUME_ANIMATION_TIMER+1500)){ + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_sethsv_noeeprom(dir_hue, dir_sat, pre_val); + encoder_direction_start = false; + } + } + matrix_scan_user(); +} + + +void set_volume_animation(bool increase){ + if(!encoder_ani_start){ + rgblight_snake_restart(dir_hue, dir_sat, pre_val); + } + + if(increase){ + rgblight_mode_noeeprom(17); + } else { + rgblight_mode_noeeprom(18); + } + + encoder_ani_timer = timer_read32(); + encoder_direction_timer = encoder_ani_timer; + encoder_ani_start = true; + encoder_direction_start = true; +} + + +bool encoder_update_kb(uint8_t index, bool clockwise) { + uint8_t layer_now = keyboard_config.encoder_mode_index +1; + uint16_t encoder_cw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=1 }); + uint16_t encoder_ccw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=2 }); + if (index == 0) { /* First encoder */ + if(encoder_in == false){ + init_encoder_mode(keyboard_config.encoder_mode_index); + } + + if (!clockwise) { + switch(encoder_cw_keycode) { + + case KC_F13: + rgb_matrix_toggle(); + break; + + case KC_F14: + rgb_matrix_step(); + break; + + case KC_F15: + rgb_matrix_step_reverse(); + break; + + case KC_F16: + rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs + break; + + case KC_F17: + rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs + break; + + case KC_F18: + rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs + break; + + case KC_F19: + rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs + break; + + case KC_F20: + rgb_matrix_increase_val(); //Increase the value for effect range LEDs + break; + + case KC_F21: + rgb_matrix_decrease_val();//Decrease the value for effect range LEDs + break; + + case KC_VOLU: + case KC_VOLD: + tap_code(encoder_cw_keycode); + break; + + default: + tap_code(encoder_cw_keycode); + break; + } + set_volume_animation(true); + } else { + switch(encoder_ccw_keycode) { + + case KC_F13: + rgb_matrix_toggle(); + break; + + case KC_F14: + rgb_matrix_step(); + break; + + case KC_F15: + rgb_matrix_step_reverse(); + break; + + case KC_F16: + rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs + break; + + case KC_F17: + rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs + break; + + case KC_F18: + rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs + break; + + case KC_F19: + rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs + break; + + case KC_F20: + rgb_matrix_increase_val(); //Increase the value for effect range LEDs + break; + + case KC_F21: + rgb_matrix_decrease_val();//Decrease the value for effect range LEDs + break; + + case KC_VOLU: + case KC_VOLD: + tap_code(encoder_ccw_keycode); + break; + + default: + tap_code(encoder_ccw_keycode); + break; + } + set_volume_animation(false); + } + encoder_timer = timer_read32(); + } + return true; +} diff --git a/keyboards/owlab/voice65/soldered/soldered.h b/keyboards/owlab/voice65/soldered/soldered.h new file mode 100644 index 000000000000..0d5005600219 --- /dev/null +++ b/keyboards/owlab/voice65/soldered/soldered.h @@ -0,0 +1,116 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K213, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K403, K404, K406, K409, K410, K411, K412, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, K403, K404, ____, K406, ____, ____, K409, K410, K411, K412, ____, K414 } \ +} + +#define LAYOUT_65_ansi_blocker( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K404, K409, K410, K411, K412, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, ____ }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, K404, ____, ____, ____, ____, K409, K410, K411, K412, ____, K414 } \ +} + +#define LAYOUT_65_ansi_blocker_split_bs( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K213, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K404, K409, K410, K411, K412, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, K404, ____, ____, ____, ____, K409, K410, K411, K412, ____, K414 } \ +} + +#define LAYOUT_65_ansi_blocker_tsangan( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K404, K410, K411, K412, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, K404, ____, ____, ____, ____, ____, K410, K411, K412, ____, K414 } \ +} + +#define LAYOUT_65_iso_blocker( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K113, K212, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K404, K409, K410, K411, K412, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, ____ }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, K404, ____, ____, ____, ____, K409, K410, K411, K412, ____, K414 } \ +} + +#define LAYOUT_65_iso_blocker_split_bs( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K213, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K113, K212, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K404, K409, K410, K411, K412, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, K404, ____, ____, ____, ____, K409, K410, K411, K412, ____, K414 } \ +} + +typedef union { + uint32_t raw; + struct { + uint8_t encoder_mode_index :8; + }; +} keyboard_config_t; + +extern keyboard_config_t keyboard_config; + +#define VOLUME_ANIMATION_TIMER 580 From 1bfbaae533fd4716407a5f381df1a3b317963a92 Mon Sep 17 00:00:00 2001 From: weteor <79446655+weteor@users.noreply.github.com> Date: Thu, 19 Aug 2021 20:13:00 +0200 Subject: [PATCH 298/328] [Keyboard] add 3w6 (#13746) --- keyboards/3w6/info.json | 56 ++++ keyboards/3w6/keymaps/default/keymap.c | 69 +++++ .../keymaps/manna-harbour_miryoku/config.h | 32 ++ .../keymaps/manna-harbour_miryoku/keymap.c | 17 ++ keyboards/3w6/readme.md | 45 +++ keyboards/3w6/rev1/config.h | 63 ++++ keyboards/3w6/rev1/matrix.c | 280 ++++++++++++++++++ keyboards/3w6/rev1/readme.md | 32 ++ keyboards/3w6/rev1/rev1.c | 17 ++ keyboards/3w6/rev1/rev1.h | 44 +++ keyboards/3w6/rev1/rules.mk | 29 ++ keyboards/3w6/rev2/config.h | 63 ++++ .../rev2/keymaps/default_pimoroni/config.h | 21 ++ .../rev2/keymaps/default_pimoroni/keymap.c | 70 +++++ .../default_pimoroni/pimoroni_trackball.c | 177 +++++++++++ .../default_pimoroni/pimoroni_trackball.h | 35 +++ .../rev2/keymaps/default_pimoroni/rules.mk | 3 + keyboards/3w6/rev2/matrix.c | 275 +++++++++++++++++ keyboards/3w6/rev2/readme.md | 38 +++ keyboards/3w6/rev2/rev2.c | 17 ++ keyboards/3w6/rev2/rev2.h | 44 +++ keyboards/3w6/rev2/rules.mk | 29 ++ 22 files changed, 1456 insertions(+) create mode 100644 keyboards/3w6/info.json create mode 100644 keyboards/3w6/keymaps/default/keymap.c create mode 100644 keyboards/3w6/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/3w6/readme.md create mode 100644 keyboards/3w6/rev1/config.h create mode 100644 keyboards/3w6/rev1/matrix.c create mode 100644 keyboards/3w6/rev1/readme.md create mode 100644 keyboards/3w6/rev1/rev1.c create mode 100644 keyboards/3w6/rev1/rev1.h create mode 100644 keyboards/3w6/rev1/rules.mk create mode 100644 keyboards/3w6/rev2/config.h create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/config.h create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/keymap.c create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/rules.mk create mode 100644 keyboards/3w6/rev2/matrix.c create mode 100644 keyboards/3w6/rev2/readme.md create mode 100644 keyboards/3w6/rev2/rev2.c create mode 100644 keyboards/3w6/rev2/rev2.h create mode 100644 keyboards/3w6/rev2/rules.mk diff --git a/keyboards/3w6/info.json b/keyboards/3w6/info.json new file mode 100644 index 000000000000..5a0e9be2f413 --- /dev/null +++ b/keyboards/3w6/info.json @@ -0,0 +1,56 @@ +{ + "keyboard_name": "3w6", + "url": "https://github.com/weteor/3W6/", + "maintainer": "weteor", + "width": 13, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "k00", "x": 0, "y": 0.8}, + {"label": "k01", "x": 1, "y": 0.2}, + {"label": "k02", "x": 2, "y": 0}, + {"label": "k03", "x": 3, "y": 0.2}, + {"label": "k04", "x": 4, "y": 0.4}, + + {"label": "k05", "x": 8, "y": 0.4}, + {"label": "k06", "x": 9, "y": 0.2}, + {"label": "k07", "x": 10, "y": 0}, + {"label": "k08", "x": 11, "y": 0.2}, + {"label": "k09", "x": 12, "y": 0.8}, + + {"label": "k10", "x": 0, "y": 1.8}, + {"label": "k11", "x": 1, "y": 1.2}, + {"label": "k12", "x": 2, "y": 1}, + {"label": "k13", "x": 3, "y": 1.2}, + {"label": "k14", "x": 4, "y": 1.4}, + + {"label": "k15", "x": 8, "y": 1.4}, + {"label": "k16", "x": 9, "y": 1.2}, + {"label": "k17", "x": 10, "y": 1}, + {"label": "k18", "x": 11, "y": 1.2}, + {"label": "k19", "x": 12, "y": 1.8}, + + {"label": "k20", "x": 0, "y": 2.8}, + {"label": "k21", "x": 1, "y": 2.2}, + {"label": "k22", "x": 2, "y": 2}, + {"label": "k23", "x": 3, "y": 2.2}, + {"label": "k24", "x": 4, "y": 2.4}, + + {"label": "k25", "x": 8, "y": 2.4}, + {"label": "k26", "x": 9, "y": 2.2}, + {"label": "k27", "x": 10, "y": 2}, + {"label": "k28", "x": 11, "y": 2.2}, + {"label": "k29", "x": 12, "y": 2.8}, + + {"label": "k32", "x": 3.2, "y": 3.6}, + {"label": "k33", "x": 4.2, "y": 3.6}, + {"label": "k34", "x": 5.2, "y": 3.8}, + + {"label": "k35", "x": 6.8, "y": 3.8}, + {"label": "k36", "x": 7.8, "y": 3.6}, + {"label": "k37", "x": 8.8, "y": 3.6} + ] + } + } +} diff --git a/keyboards/3w6/keymaps/default/keymap.c b/keyboards/3w6/keymaps/default/keymap.c new file mode 100644 index 000000000000..029173b6745a --- /dev/null +++ b/keyboards/3w6/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2021 weteor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers +{ + _ALPHA_QWERTY = 0, + _ALPHA_COLEMAK, + _SYM, + _NAV, + _NUM, + _CFG, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + + [_ALPHA_QWERTY] = 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, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + + LCTL_T(KC_ESC), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_ALPHA_COLEMAK] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SCLN), + LCTL_T(KC_ENT), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_SYM] = LAYOUT( + KC_GRV , KC_CIRC, KC_AT, KC_DLR, KC_TILD, KC_AMPR, KC_EXLM, KC_PIPE, KC_UNDS, KC_HASH, + KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, + _______, KC_QUES, KC_PLUS, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, _______, + XXXXXXX, MO(_CFG), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + [_NAV] = LAYOUT( + XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_DEL, + KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MO(_CFG), XXXXXXX + ), + [_NUM] = LAYOUT( + XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PSLS, + XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT, + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PAST, + XXXXXXX, XXXXXXX, XXXXXXX, KC_PEQL, KC_PENT, XXXXXXX + ), + [_CFG] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,DF(_ALPHA_QWERTY), DF(_ALPHA_COLEMAK), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; diff --git a/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h b/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 000000000000..fb567ad7d3a4 --- /dev/null +++ b/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,32 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- + +#pragma once + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K32, K33, K34, K35, K36, K37 \ +) diff --git a/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 000000000000..74df5e0fe120 --- /dev/null +++ b/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,17 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- diff --git a/keyboards/3w6/readme.md b/keyboards/3w6/readme.md new file mode 100644 index 000000000000..5878376bde09 --- /dev/null +++ b/keyboards/3w6/readme.md @@ -0,0 +1,45 @@ +# 3W6 + +![3W6](https://raw.githubusercontent.com/weteor/3W6/main/images/3w6_rev2_1s.jpg) + +The 3w6 is a low profile, split ortholinear keyboard with 36 keys. + +I needed a keyboard for work and wasn't really satisfied with the available alternatives (namely Corne, Kyria and Ferris), mostly because they are either rather large and/or don't have the spacing I would like. + +The 3w6 is designed to be a simple, realiable, cheap and small keyboard to be taken everywhere. + +There are currently two revisions: +* Rev1: + - onboard microcontroller (ATMega32U4) + - USB-C connector Board <-> PC + - USB-C connectors between both split halfs + - choc spacing (18x17mm) + - aggressive pinky stagger + - support for Choc V1 switches +* Rev2: + - everything Rev1 did + - additional middle plate (2mm) + - support for [Pimoroni Trackball](https://shop.pimoroni.com/products/trackball-breakout) instead of outer thumb switch on right half, needs midplate + - mounting holes for [Tenting Puck](https://splitkb.com/collections/keyboard-parts/products/tenting-puck), only usable without mid or switchplate + +--- + +* Keyboard Maintainer: [weteor](https://github.com/weteor) +* Hardware Supported: + * 3w6 rev1 + * 3w6 rev2 (with Pimoroni support) +* Hardware Availability: + * make one yourself: [Design and Productionfiles](https://github.com/weteor/3w6) + * maintainer is selling kits when available +--- +To reach the bootloader, connect the board to the PC and push the reset button on left half. + +Make examples for this keyboard (after setting up your build environment): + + make 3w6/rev1:default + make 3w6/rev2:default + make 3w6/rev2:default_pimoroni + + --- + +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). diff --git a/keyboards/3w6/rev1/config.h b/keyboards/3w6/rev1/config.h new file mode 100644 index 000000000000..1f0bab97fa12 --- /dev/null +++ b/keyboards/3w6/rev1/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2021 weteor + +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 + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4658 +#define DEVICE_VER 0x0001 +#define MANUFACTURER weteor +#define PRODUCT 3w6 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 10 + +#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) +#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) + +/* + * 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_L { B0, B1, B2, B4} +#define MATRIX_COL_PINS_L { B3, E6, F7, B6, B5 } +#define UNUSED_PINS_L { B7, C6, C7, D2, D3, D4, D5, D6, D7, F0, F1, F4, F5, F6 } + +#define MATRIX_ROW_PINS_R { P10, P11, P12, P05 } +#define MATRIX_COL_PINS_R { P06, P13, P14, P01, P00 } +#define UNUSED_PINS_R { P02, P03, P04, P07, P15, P16, P17 } + + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + diff --git a/keyboards/3w6/rev1/matrix.c b/keyboards/3w6/rev1/matrix.c new file mode 100644 index 000000000000..7262fd22e6a7 --- /dev/null +++ b/keyboards/3w6/rev1/matrix.c @@ -0,0 +1,280 @@ +/* +Copyright 2013 Oleg Kostyuk + 2020 Pierre Chevalier + 2021 weteor + +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 . +*/ + +/* + * This code was heavily inspired by the ergodox_ez keymap, and modernized + * to take advantage of the quantum.h microcontroller agnostics gpio control + * abstractions and use the macros defined in config.h for the wiring as opposed + * to repeating that information all over the place. + */ + +#include QMK_KEYBOARD_H +#include "i2c_master.h" + +extern i2c_status_t tca9555_status; +#define I2C_TIMEOUT 1000 + +// I2C address: +// All address pins of the tca9555 are connected to the ground +// | 0 | 1 | 0 | 0 | A2 | A1 | A0 | +// | 0 | 1 | 0 | 0 | 0 | 0 | 0 | +#define I2C_ADDR 0b0100000 +#define I2C_ADDR_WRITE ((I2C_ADDR << 1) | I2C_WRITE) +#define I2C_ADDR_READ ((I2C_ADDR << 1) | I2C_READ) + +// Register addresses +#define IODIRA 0x06 // i/o direction register +#define IODIRB 0x07 +#define IREGP0 0x00 // GPIO pull-up resistor register +#define IREGP1 0x01 +#define OREGP0 0x02 // general purpose i/o port register (write modifies OLAT) +#define OREGP1 0x03 + +bool i2c_initialized = 0; +i2c_status_t tca9555_status = I2C_ADDR; + +uint8_t init_tca9555(void) { + print("starting init"); + tca9555_status = I2C_ADDR; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized = true; + wait_ms(I2C_TIMEOUT); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(IODIRA, I2C_TIMEOUT); + if (tca9555_status) goto out; + // This means: write on pin 5 of port 0, read on rest + tca9555_status = i2c_write(0b11011111, I2C_TIMEOUT); + if (tca9555_status) goto out; + // This means: we will write on pins 0 to 2 on port 1. read rest + tca9555_status = i2c_write(0b11111000, I2C_TIMEOUT); + if (tca9555_status) goto out; + +out: + i2c_stop(); + return tca9555_status; +} + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t tca9555_reset_loop; + +void matrix_init_custom(void) { + // initialize row and col + + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +void matrix_power_up(void) { + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +// Reads and stores a row, returning +// whether a change occurred. +static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) { + matrix_row_t temp = read_cols(index); + if (current_matrix[index] != temp) { + current_matrix[index] = temp; + return true; + } + return false; +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + if (tca9555_status) { // if there was an error + if (++tca9555_reset_loop == 0) { + // since tca9555_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + dprint("trying to reset tca9555\n"); + tca9555_status = init_tca9555(); + if (tca9555_status) { + dprint("right side not responding\n"); + } else { + dprint("right side attached\n"); + } + } + } + + bool changed = false; + for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { + // select rows from left and right hands + uint8_t left_index = i; + uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; + select_row(left_index); + select_row(right_index); + + // we don't need a 30us delay anymore, because selecting a + // left-hand row requires more than 30us for i2c. + + changed |= store_matrix_row(current_matrix, left_index); + changed |= store_matrix_row(current_matrix, right_index); + + unselect_rows(); + } + + return changed; +} + +static void init_cols(void) { + // init on tca9555 + // not needed, already done as part of init_tca9555() + + // init on mcu + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) { + pin_t pin = matrix_col_pins_mcu[pin_index]; + setPinInput(pin); + writePinHigh(pin); + } +} + +static matrix_row_t read_cols(uint8_t row) { + if (row < MATRIX_ROWS_PER_SIDE) { + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + matrix_row_t current_row_value = 0; + // For each col... + for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) { + // Select the col pin to read (active low) + uint8_t pin_state = readPin(matrix_col_pins_mcu[col_index]); + + // Populate the matrix row with the state of the col pin + current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); + } + return current_row_value; + } else { + if (tca9555_status) { // if there was an error + return 0; + } else { + uint8_t data = 0; + uint8_t port0 = 0; + uint8_t port1 = 0; + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(IREGP0, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_start(I2C_ADDR_READ, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_read_ack(I2C_TIMEOUT); + if (tca9555_status < 0) goto out; + port0 = (uint8_t)tca9555_status; + tca9555_status = i2c_read_nack(I2C_TIMEOUT); + if (tca9555_status < 0) goto out; + port1 = (uint8_t)tca9555_status; + + // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. + // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. + // Since the pins are not ordered sequentially, we have to build the correct dataset from the two ports. Refer to the schematic to see where every pin is connected. + data |= ( port0 & 0x01 ); + data |= ( port0 & 0x02 ); + data |= ( port1 & 0x10 ) >> 2; + data |= ( port1 & 0x08 ); + data |= ( port0 & 0x40 ) >> 2; + data = ~(data); + + tca9555_status = I2C_STATUS_SUCCESS; + out: + i2c_stop(); + return data; + } + } +} + +static void unselect_rows(void) { + // no need to unselect on tca9555, because the select step sets all + // the other row bits high, and it's not changing to a different + // direction + + // unselect rows on microcontroller + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) { + pin_t pin = matrix_row_pins_mcu[pin_index]; + setPinInput(pin); + writePinLow(pin); + } +} + +static void select_row(uint8_t row) { + uint8_t port0 = 0xff; + uint8_t port1 = 0xff; + + if (row < MATRIX_ROWS_PER_SIDE) { + // select on atmega32u4 + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + pin_t pin = matrix_row_pins_mcu[row]; + setPinOutput(pin); + writePinLow(pin); + } else { + // select on tca9555 + if (tca9555_status) { // if there was an error + // do nothing + } else { + switch(row) { + case 4: port1 &= ~(1 << 0); break; + case 5: port1 &= ~(1 << 1); break; + case 6: port1 &= ~(1 << 2); break; + case 7: port0 &= ~(1 << 5); break; + default: break; + } + + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(OREGP0, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(port0, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(port1, I2C_TIMEOUT); + if (tca9555_status) goto out; + // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. + // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. + out: + i2c_stop(); + } + } +} diff --git a/keyboards/3w6/rev1/readme.md b/keyboards/3w6/rev1/readme.md new file mode 100644 index 000000000000..4d806f92227e --- /dev/null +++ b/keyboards/3w6/rev1/readme.md @@ -0,0 +1,32 @@ +# 3W6 + +![3W6](https://raw.githubusercontent.com/weteor/3W6/main/images/3w6_1s.jpg) +![3W6](https://raw.githubusercontent.com/weteor/3W6/main/images/3w6_3s.jpg) + +The 3w6 is a low profile, split ortholinear keyboard with 36 keys. + +* Rev1: + - onboard microcontroller (ATMega32U4) + - USB-C connector Board <-> PC + - USB-C connectors between both split halfs + - choc spacing (18x17mm) + - aggressive pinky stagger + - support for Choc V1 switches + +--- + +* Keyboard Maintainer: [weteor](https://github.com/weteor) +* Hardware Supported: + * 3w6 rev1 +* Hardware Availability (this is an older version, current revision is rev2): + * make one yourself: [Design and Productionfiles](https://github.com/weteor/3w6) +--- +To reach the bootloader, connect the board to the PC and push the reset button on left half. + +Make examples for this keyboard (after setting up your build environment): + + make 3w6/rev1:default + + --- + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/3w6/rev1/rev1.c b/keyboards/3w6/rev1/rev1.c new file mode 100644 index 000000000000..3944ec3b1317 --- /dev/null +++ b/keyboards/3w6/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2021 weteor + * + * 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 "rev1.h" diff --git a/keyboards/3w6/rev1/rev1.h b/keyboards/3w6/rev1/rev1.h new file mode 100644 index 000000000000..ba881ca431ce --- /dev/null +++ b/keyboards/3w6/rev1/rev1.h @@ -0,0 +1,44 @@ +/* Copyright 2021 weteor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29,\ + k32, k33, k34, k35, k36, k37\ +) { \ + { k00, k01, k02, k03, k04 }, \ + { k10, k11, k12, k13, k14 }, \ + { k20, k21, k22, k23, k24 }, \ + { KC_NO, KC_NO, k32, k33, k34 }, \ + \ + { k05, k06, k07, k08, k09 }, \ + { k15, k16, k17, k18, k19 }, \ + { k25, k26, k27, k28, k29 }, \ + { k35, k36, k37, KC_NO, KC_NO }, \ +} diff --git a/keyboards/3w6/rev1/rules.mk b/keyboards/3w6/rev1/rules.mk new file mode 100644 index 000000000000..d4876dde77b5 --- /dev/null +++ b/keyboards/3w6/rev1/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes +CUSTOM_MATRIX = lite +NO_USB_STARTUP_CHECK = yes +LTO_ENABLE = no + +SRC += matrix.c +QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/3w6/rev2/config.h b/keyboards/3w6/rev2/config.h new file mode 100644 index 000000000000..d191360607ea --- /dev/null +++ b/keyboards/3w6/rev2/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2021 weteor + +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 + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4658 +#define DEVICE_VER 0x0002 +#define MANUFACTURER weteor +#define PRODUCT 3w6 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 10 + +#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) +#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) + +/* + * 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_L { B0, B1, B2, B4} +#define MATRIX_COL_PINS_L { B3, E6, F7, B6, B5 } +#define UNUSED_PINS_L { B7, C6, C7, D2, D3, D4, D5, D6, D7, F0, F1, F4, F5, F6 } + +#define MATRIX_ROW_PINS_R { P10, P11, P12, P05 } +#define MATRIX_COL_PINS_R { P06, P13, P14, P01, P00 } +#define UNUSED_PINS_R { P02, P03, P04, P07, P15, P16, P17 } + + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/config.h b/keyboards/3w6/rev2/keymaps/default_pimoroni/config.h new file mode 100644 index 000000000000..45c9d5154ee4 --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 weteor + * + * 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 PIMORONI_TRACKBALL_INVERT_Y +#define PIMORONI_TRACKBALL_ROTATE + diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/keymap.c b/keyboards/3w6/rev2/keymaps/default_pimoroni/keymap.c new file mode 100644 index 000000000000..a5b8c6006a0b --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/keymap.c @@ -0,0 +1,70 @@ +/* +Copyright 2021 weteor + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers +{ + _ALPHA_QWERTY = 0, + _ALPHA_COLEMAK, + _SYM, + _NAV, + _NUM, + _CFG, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +[_ALPHA_QWERTY] = 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, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + + LCTL_T(KC_ESC), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_ALPHA_COLEMAK] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SCLN), + LCTL_T(KC_ENT), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_SYM] = LAYOUT( + KC_GRV , KC_CIRC, KC_AT, KC_DLR, KC_TILD, KC_AMPR, KC_EXLM, KC_PIPE, KC_UNDS, KC_HASH, + KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, + _______, KC_QUES, KC_PLUS, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, _______, + XXXXXXX, MO(_CFG), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + [_NAV] = LAYOUT( + XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_DEL, + KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MO(_CFG), XXXXXXX + ), + [_NUM] = LAYOUT( + XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PSLS, + XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT, + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PAST, + XXXXXXX, XXXXXXX, XXXXXXX, KC_PEQL, KC_PENT, XXXXXXX + ), + [_CFG] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,DF(_ALPHA_QWERTY), DF(_ALPHA_COLEMAK), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c new file mode 100644 index 000000000000..c4f4a0441a4f --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c @@ -0,0 +1,177 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "pimoroni_trackball.h" +#include "i2c_master.h" + +static uint8_t scrolling = 0; +static int16_t x_offset = 0; +static int16_t y_offset = 0; +static int16_t h_offset = 0; +static int16_t v_offset = 0; +static float precisionSpeed = 1; + +static uint16_t i2c_timeout_timer; + +#ifndef I2C_TIMEOUT +# define I2C_TIMEOUT 100 +#endif +#ifndef I2C_WAITCHECK +# define I2C_WAITCHECK 1000 +#endif +#ifndef MOUSE_DEBOUNCE +# define MOUSE_DEBOUNCE 5 +#endif + +void trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white) { + uint8_t data[] = {0x00, red, green, blue, white}; + i2c_transmit(TRACKBALL_WRITE, data, sizeof(data), I2C_TIMEOUT); +} + +int16_t mouse_offset(uint8_t positive, uint8_t negative, int16_t scale) { + int16_t offset = (int16_t)positive - (int16_t)negative; + int16_t magnitude = (int16_t)(scale * offset * offset * precisionSpeed); + return offset < 0 ? -magnitude : magnitude; +} + +void update_member(int8_t* member, int16_t* offset) { + if (*offset > 127) { + *member = 127; + *offset -= 127; + } else if (*offset < -127) { + *member = -127; + *offset += 127; + } else { + *member = *offset; + *offset = 0; + } +} + +__attribute__((weak)) void trackball_check_click(bool pressed, report_mouse_t* mouse) { + if (pressed) { + mouse->buttons |= MOUSE_BTN1; + } else { + mouse->buttons &= ~MOUSE_BTN1; + } +} + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { + if (true) { + xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); + } + + + if (!process_record_user(keycode, record)) { return false; } + +/* If Mousekeys is disabled, then use handle the mouse button + * keycodes. This makes things simpler, and allows usage of + * the keycodes in a consistent manner. But only do this if + * Mousekeys is not enable, so it's not handled twice. + */ +#ifndef MOUSEKEY_ENABLE + if (IS_MOUSEKEY_BUTTON(keycode)) { + report_mouse_t currentReport = pointing_device_get_report(); + if (record->event.pressed) { + currentReport.buttons |= 1 << (keycode - KC_MS_BTN1); + } else { + currentReport.buttons &= ~(1 << (keycode - KC_MS_BTN1)); + } + pointing_device_set_report(currentReport); + pointing_device_send(); + } +#endif + + return true; +} + +void trackball_register_button(bool pressed, enum mouse_buttons button) { + report_mouse_t currentReport = pointing_device_get_report(); + if (pressed) { + currentReport.buttons |= button; + } else { + currentReport.buttons &= ~button; + } + pointing_device_set_report(currentReport); +} + +float trackball_get_precision(void) { return precisionSpeed; } +void trackball_set_precision(float precision) { precisionSpeed = precision; } +bool trackball_is_scrolling(void) { return scrolling; } +void trackball_set_scrolling(bool scroll) { scrolling = scroll; } + + +__attribute__((weak)) void pointing_device_init(void) { trackball_set_rgbw(0x80, 0x00, 0x00, 0x00); } + +void pointing_device_task(void) { + static bool debounce; + static uint16_t debounce_timer; + uint8_t state[5] = {}; + if (timer_elapsed(i2c_timeout_timer) > I2C_WAITCHECK) { + if (i2c_readReg(TRACKBALL_WRITE, 0x04, state, 5, I2C_TIMEOUT) == I2C_STATUS_SUCCESS) { + if (!state[4] && !debounce) { + if (scrolling) { +#ifdef PIMORONI_TRACKBALL_INVERT_X + h_offset += mouse_offset(state[2], state[3], 1); +#else + h_offset -= mouse_offset(state[2], state[3], 1); +#endif +#ifdef PIMORONI_TRACKBALL_INVERT_Y + v_offset += mouse_offset(state[1], state[0], 1); +#else + v_offset -= mouse_offset(state[1], state[0], 1); +#endif + } else { +#ifdef PIMORONI_TRACKBALL_INVERT_X + x_offset -= mouse_offset(state[2], state[3], 5); +#else + x_offset += mouse_offset(state[2], state[3], 5); +#endif +#ifdef PIMORONI_TRACKBALL_INVERT_Y + y_offset -= mouse_offset(state[1], state[0], 5); +#else + y_offset += mouse_offset(state[1], state[0], 5); +#endif + } + } else { + if (state[4]) { + debounce = true; + debounce_timer = timer_read(); + } + } + } else { + i2c_timeout_timer = timer_read(); + } + } + + if (timer_elapsed(debounce_timer) > MOUSE_DEBOUNCE) debounce = false; + + report_mouse_t mouse = pointing_device_get_report(); + // trackball_check_click(state[4] & (1 << 7), &mouse); + +#ifndef PIMORONI_TRACKBALL_ROTATE + update_member(&mouse.x, &x_offset); + update_member(&mouse.y, &y_offset); + update_member(&mouse.h, &h_offset); + update_member(&mouse.v, &v_offset); +#else + update_member(&mouse.x, &y_offset); + update_member(&mouse.y, &x_offset); + update_member(&mouse.h, &v_offset); + update_member(&mouse.v, &h_offset); +#endif + pointing_device_set_report(mouse); + pointing_device_send(); +} diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h new file mode 100644 index 000000000000..cfcd5a47a1b1 --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" +#include "pointing_device.h" + +#ifndef TRACKBALL_ADDRESS +# define TRACKBALL_ADDRESS 0x0A +#endif +#define TRACKBALL_WRITE ((TRACKBALL_ADDRESS << 1) | I2C_WRITE) +#define TRACKBALL_READ ((TRACKBALL_ADDRESS << 1) | I2C_READ) + +void trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); +void trackball_check_click(bool pressed, report_mouse_t *mouse); +void trackball_register_button(bool pressed, enum mouse_buttons button); + +float trackball_get_precision(void); +void trackball_set_precision(float precision); +bool trackball_is_scrolling(void); +void trackball_set_scrolling(bool scroll); \ No newline at end of file diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/rules.mk b/keyboards/3w6/rev2/keymaps/default_pimoroni/rules.mk new file mode 100644 index 000000000000..231a88371991 --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/rules.mk @@ -0,0 +1,3 @@ +POINTING_DEVICE_ENABLE = yes +SRC += pimoroni_trackball.c +MOUSEKEY_ENABLE = no diff --git a/keyboards/3w6/rev2/matrix.c b/keyboards/3w6/rev2/matrix.c new file mode 100644 index 000000000000..5bc967beddfa --- /dev/null +++ b/keyboards/3w6/rev2/matrix.c @@ -0,0 +1,275 @@ +/* +Copyright 2013 Oleg Kostyuk + 2020 Pierre Chevalier + 2021 weteor + +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 . +*/ + +/* + * This code was heavily inspired by the ergodox_ez keymap, and modernized + * to take advantage of the quantum.h microcontroller agnostics gpio control + * abstractions and use the macros defined in config.h for the wiring as opposed + * to repeating that information all over the place. + */ + +#include QMK_KEYBOARD_H +#include "i2c_master.h" + +extern i2c_status_t tca9555_status; +#define I2C_TIMEOUT 1000 + +// I2C address: +// All address pins of the tca9555 are connected to the ground +// | 0 | 1 | 0 | 0 | A2 | A1 | A0 | +// | 0 | 1 | 0 | 0 | 0 | 0 | 0 | +#define I2C_ADDR 0b0100000 +#define I2C_ADDR_WRITE ((I2C_ADDR << 1) | I2C_WRITE) +#define I2C_ADDR_READ ((I2C_ADDR << 1) | I2C_READ) + +// Register addresses +#define IODIRA 0x06 // i/o direction register +#define IODIRB 0x07 +#define IREGP0 0x00 // GPIO pull-up resistor register +#define IREGP1 0x01 +#define OREGP0 0x02 // general purpose i/o port register (write modifies OLAT) +#define OREGP1 0x03 + +bool i2c_initialized = 0; +i2c_status_t tca9555_status = I2C_ADDR; + +uint8_t init_tca9555(void) { + print("starting init"); + tca9555_status = I2C_ADDR; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized = true; + wait_ms(I2C_TIMEOUT); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(IODIRA, I2C_TIMEOUT); + if (tca9555_status) goto out; + // This means: read all pins of port 0 + tca9555_status = i2c_write(0b11111111, I2C_TIMEOUT); + if (tca9555_status) goto out; + // This means: we will write on pins 0 to 3 on port 1. read rest + tca9555_status = i2c_write(0b11110000, I2C_TIMEOUT); + if (tca9555_status) goto out; + +out: + i2c_stop(); + return tca9555_status; +} + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t tca9555_reset_loop; + +void matrix_init_custom(void) { + // initialize row and col + + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +void matrix_power_up(void) { + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +// Reads and stores a row, returning +// whether a change occurred. +static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) { + matrix_row_t temp = read_cols(index); + if (current_matrix[index] != temp) { + current_matrix[index] = temp; + return true; + } + return false; +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + if (tca9555_status) { // if there was an error + if (++tca9555_reset_loop == 0) { + // since tca9555_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + dprint("trying to reset tca9555\n"); + tca9555_status = init_tca9555(); + if (tca9555_status) { + dprint("right side not responding\n"); + } else { + dprint("right side attached\n"); + } + } + } + + bool changed = false; + for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { + // select rows from left and right hands + uint8_t left_index = i; + uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; + select_row(left_index); + select_row(right_index); + + // we don't need a 30us delay anymore, because selecting a + // left-hand row requires more than 30us for i2c. + + changed |= store_matrix_row(current_matrix, left_index); + changed |= store_matrix_row(current_matrix, right_index); + + unselect_rows(); + } + + return changed; +} + +static void init_cols(void) { + // init on tca9555 + // not needed, already done as part of init_tca9555() + + // init on mcu + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) { + pin_t pin = matrix_col_pins_mcu[pin_index]; + setPinInput(pin); + writePinHigh(pin); + } +} + +static matrix_row_t read_cols(uint8_t row) { + if (row < MATRIX_ROWS_PER_SIDE) { + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + matrix_row_t current_row_value = 0; + // For each col... + for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) { + // Select the col pin to read (active low) + uint8_t pin_state = readPin(matrix_col_pins_mcu[col_index]); + + // Populate the matrix row with the state of the col pin + current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); + } + return current_row_value; + } else { + if (tca9555_status) { // if there was an error + return 0; + } else { + uint8_t data = 0; + uint8_t port0 = 0; + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(IREGP0, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_start(I2C_ADDR_READ, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_read_nack(I2C_TIMEOUT); + if (tca9555_status < 0) goto out; + + port0 = ~(uint8_t)tca9555_status; + + // We read all the pins on GPIOA. + // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. + // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. + // the pins connected to eact columns are sequential, but in reverse order, and counting from zero down (col 5 -> GPIO04, col6 -> GPIO03 and so on). + data |= ( port0 & 0x01 ) << 4; + data |= ( port0 & 0x02 ) << 2; + data |= ( port0 & 0x04 ); + data |= ( port0 & 0x08 ) >> 2; + data |= ( port0 & 0x10 ) >> 4; + + tca9555_status = I2C_STATUS_SUCCESS; + out: + i2c_stop(); + + return data; + } + } +} + +static void unselect_rows(void) { + // no need to unselect on tca9555, because the select step sets all + // the other row bits high, and it's not changing to a different + // direction + + // unselect rows on microcontroller + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) { + pin_t pin = matrix_row_pins_mcu[pin_index]; + setPinInput(pin); + writePinLow(pin); + } +} + +static void select_row(uint8_t row) { + uint8_t port1 = 0xff; + + if (row < MATRIX_ROWS_PER_SIDE) { + // select on atmega32u4 + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + pin_t pin = matrix_row_pins_mcu[row]; + setPinOutput(pin); + writePinLow(pin); + } else { + // select on tca9555 + if (tca9555_status) { // if there was an error + // do nothing + } else { + switch(row) { + case 4: port1 &= ~(1 << 0); break; + case 5: port1 &= ~(1 << 1); break; + case 6: port1 &= ~(1 << 2); break; + case 7: port1 &= ~(1 << 3); break; + default: break; + } + + // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. + // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(OREGP1, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(port1, I2C_TIMEOUT); + if (tca9555_status) goto out; + out: + i2c_stop(); + } + } +} diff --git a/keyboards/3w6/rev2/readme.md b/keyboards/3w6/rev2/readme.md new file mode 100644 index 000000000000..a17c2fd6be3c --- /dev/null +++ b/keyboards/3w6/rev2/readme.md @@ -0,0 +1,38 @@ +# 3W6 + +![3W6_rev2](https://raw.githubusercontent.com/weteor/3W6/main/images/3w6_rev2_2s.jpg) +![3W6_rev2](https://raw.githubusercontent.com/weteor/3W6/main/images/3w6_rev2_1s.jpg) + +The 3w6 is a low profile, split ortholinear keyboard with 36 keys. + +* Rev2: + - onboard microcontroller (ATMega32U4) + - USB-C connector Board <-> PC + - USB-C connectors between both split halfs + - choc spacing (18x17mm) + - aggressive pinky stagger + - support for Choc V1 switches + - files for midplate (1.6 to 2mm) + - support for [Pimoroni Trackball](https://shop.pimoroni.com/products/trackball-breakout) instead of outer thumb switch on right half, needs midplate + - mounting holes for [Tenting Puck](https://splitkb.com/collections/keyboard-parts/products/tenting-puck), only usable without mid or switchplate + +--- + +* Keyboard Maintainer: [weteor](https://github.com/weteor) +* Hardware Supported: + * 3w6 rev2 (with Pimoroni support) +* Hardware Availability: + * make one yourself: [Design and Productionfiles](https://github.com/weteor/3w6) + * maintainer is selling kits when available + +--- +To reach the bootloader, connect the board to the PC and push the reset button on left half. + +Make examples for this keyboard (after setting up your build environment): + + make 3w6/rev2:default + make 3w6/rev2:default_pimoroni + + --- + +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). diff --git a/keyboards/3w6/rev2/rev2.c b/keyboards/3w6/rev2/rev2.c new file mode 100644 index 000000000000..17bfb9b8a7dc --- /dev/null +++ b/keyboards/3w6/rev2/rev2.c @@ -0,0 +1,17 @@ +/* Copyright 2021 weteor + * + * 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 "rev2.h" diff --git a/keyboards/3w6/rev2/rev2.h b/keyboards/3w6/rev2/rev2.h new file mode 100644 index 000000000000..ba881ca431ce --- /dev/null +++ b/keyboards/3w6/rev2/rev2.h @@ -0,0 +1,44 @@ +/* Copyright 2021 weteor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29,\ + k32, k33, k34, k35, k36, k37\ +) { \ + { k00, k01, k02, k03, k04 }, \ + { k10, k11, k12, k13, k14 }, \ + { k20, k21, k22, k23, k24 }, \ + { KC_NO, KC_NO, k32, k33, k34 }, \ + \ + { k05, k06, k07, k08, k09 }, \ + { k15, k16, k17, k18, k19 }, \ + { k25, k26, k27, k28, k29 }, \ + { k35, k36, k37, KC_NO, KC_NO }, \ +} diff --git a/keyboards/3w6/rev2/rules.mk b/keyboards/3w6/rev2/rules.mk new file mode 100644 index 000000000000..d4876dde77b5 --- /dev/null +++ b/keyboards/3w6/rev2/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes +CUSTOM_MATRIX = lite +NO_USB_STARTUP_CHECK = yes +LTO_ENABLE = no + +SRC += matrix.c +QUANTUM_LIB_SRC += i2c_master.c From c59212821918736504074da24f33108551e8bdde Mon Sep 17 00:00:00 2001 From: Yaroslav Smirnov Date: Thu, 19 Aug 2021 21:15:30 +0300 Subject: [PATCH 299/328] [Keyboard] Add Elrgo S to keyboards/handwired (#13893) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/handwired/elrgo_s/config.h | 58 ++++++++++++++++++ keyboards/handwired/elrgo_s/elrgo_s.c | 17 ++++++ keyboards/handwired/elrgo_s/elrgo_s.h | 38 ++++++++++++ keyboards/handwired/elrgo_s/info.json | 59 +++++++++++++++++++ .../elrgo_s/keymaps/default/config.h | 22 +++++++ .../elrgo_s/keymaps/default/keymap.c | 58 ++++++++++++++++++ keyboards/handwired/elrgo_s/readme.md | 28 +++++++++ keyboards/handwired/elrgo_s/rules.mk | 23 ++++++++ 8 files changed, 303 insertions(+) create mode 100644 keyboards/handwired/elrgo_s/config.h create mode 100644 keyboards/handwired/elrgo_s/elrgo_s.c create mode 100644 keyboards/handwired/elrgo_s/elrgo_s.h create mode 100644 keyboards/handwired/elrgo_s/info.json create mode 100644 keyboards/handwired/elrgo_s/keymaps/default/config.h create mode 100644 keyboards/handwired/elrgo_s/keymaps/default/keymap.c create mode 100644 keyboards/handwired/elrgo_s/readme.md create mode 100644 keyboards/handwired/elrgo_s/rules.mk diff --git a/keyboards/handwired/elrgo_s/config.h b/keyboards/handwired/elrgo_s/config.h new file mode 100644 index 000000000000..b2ef4681e546 --- /dev/null +++ b/keyboards/handwired/elrgo_s/config.h @@ -0,0 +1,58 @@ +/* +Copyright 2021 Yaroslav Smirnov + * + * 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" + +// Rows are doubled-up for splits +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +// Wiring of each half +#define MATRIX_ROW_PINS { B1, B3, B2, B6 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 } +// Reversed sort + +#define DIODE_DIRECTION COL2ROW + +/* USB Device descriptor parameter */ +#define PRODUCT Elrgo S +#define MANUFACTURER Eloren +#define VENDOR_ID 0x454C +#define PRODUCT_ID 0x3436 +#define DEVICE_VER 0x0001 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + + +/* 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/handwired/elrgo_s/elrgo_s.c b/keyboards/handwired/elrgo_s/elrgo_s.c new file mode 100644 index 000000000000..32640da061b4 --- /dev/null +++ b/keyboards/handwired/elrgo_s/elrgo_s.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Yaroslav Smirnov + * + * 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 "elrgo_s.h" diff --git a/keyboards/handwired/elrgo_s/elrgo_s.h b/keyboards/handwired/elrgo_s/elrgo_s.h new file mode 100644 index 000000000000..0fb2b58e5187 --- /dev/null +++ b/keyboards/handwired/elrgo_s/elrgo_s.h @@ -0,0 +1,38 @@ +/* Copyright 2021 Yaroslav Smirnov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + + +#define LAYOUT_split_3x6_5(\ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L31, L32, L33, L34, L35, R30, R31, R32, R33, R34 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + {KC_NO, L31, L32, L33, L34, L35}, \ + \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { R30, R31, R32, R33, R34, KC_NO} \ +} diff --git a/keyboards/handwired/elrgo_s/info.json b/keyboards/handwired/elrgo_s/info.json new file mode 100644 index 000000000000..0b561049e14a --- /dev/null +++ b/keyboards/handwired/elrgo_s/info.json @@ -0,0 +1,59 @@ +{ + "keyboard_name": "Elrgo S", + "url": "", + "maintainer": "qmk", + "width": 17, + "height": 4, + "layouts": { + "LAYOUT_split_3x6_5": { + "layout": [ + {"label":"L00", "x":0, "y":0}, + {"label":"L01", "x":1, "y":0}, + {"label":"L02", "x":2, "y":0}, + {"label":"L03", "x":3, "y":0}, + {"label":"L04", "x":4, "y":0}, + {"label":"L05", "x":5, "y":0}, + {"label":"R00", "x":9, "y":0}, + {"label":"R01", "x":10, "y":0}, + {"label":"R02", "x":11, "y":0}, + {"label":"R03", "x":12, "y":0}, + {"label":"R04", "x":13, "y":0}, + {"label":"R05", "x":14, "y":0}, + {"label":"L10", "x":0, "y":1}, + {"label":"L11", "x":1, "y":1}, + {"label":"L12", "x":2, "y":1}, + {"label":"L13", "x":3, "y":1}, + {"label":"L14", "x":4, "y":1}, + {"label":"L15", "x":5, "y":1}, + {"label":"R10", "x":9, "y":1}, + {"label":"R11", "x":10, "y":1}, + {"label":"R12", "x":11, "y":1}, + {"label":"R13", "x":12, "y":1}, + {"label":"R14", "x":13, "y":1}, + {"label":"R15", "x":14, "y":1}, + {"label":"L20", "x":0, "y":2}, + {"label":"L21", "x":1, "y":2}, + {"label":"L22", "x":2, "y":2}, + {"label":"L23", "x":3, "y":2}, + {"label":"L24", "x":4, "y":2}, + {"label":"L25", "x":5, "y":2}, + {"label":"R20", "x":9, "y":2}, + {"label":"R21", "x":10, "y":2}, + {"label":"R22", "x":11, "y":2}, + {"label":"R23", "x":12, "y":2}, + {"label":"R24", "x":13, "y":2}, + {"label":"R25", "x":14, "y":2}, + {"label":"L31", "x":3, "y":3}, + {"label":"L32", "x":4, "y":3}, + {"label":"L33", "x":5, "y":3}, + {"label":"L34", "x":6, "y":3}, + {"label":"L35", "x":6, "y":2}, + {"label":"R30", "x":8, "y":2}, + {"label":"R31", "x":8, "y":3}, + {"label":"R32", "x":9, "y":3}, + {"label":"R33", "x":10, "y":3}, + {"label":"R34", "x":11, "y":3} + ] + } + } +} diff --git a/keyboards/handwired/elrgo_s/keymaps/default/config.h b/keyboards/handwired/elrgo_s/keymaps/default/config.h new file mode 100644 index 000000000000..f3ef42b9b423 --- /dev/null +++ b/keyboards/handwired/elrgo_s/keymaps/default/config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Yaroslav Smirnov + * + * 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 USE_SERIAL + +#define MASTER_LEFT +// #define MASTER_RIGHT diff --git a/keyboards/handwired/elrgo_s/keymaps/default/keymap.c b/keyboards/handwired/elrgo_s/keymaps/default/keymap.c new file mode 100644 index 000000000000..572edbf0b859 --- /dev/null +++ b/keyboards/handwired/elrgo_s/keymaps/default/keymap.c @@ -0,0 +1,58 @@ +/* Copyright 2021 Yaroslav Smirnov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { _QWERTY, _LOWER, _RAISE, _ADJUST }; + +#define LOWER TT(_LOWER) +#define RAISE MO(_RAISE) + +#define M_SHLL LCTL(KC_LSFT) +#define M_SHLA LCTL(KC_LALT) +#define M_BBSLS LSFT(KC_BSLS) +#define M_FLEFT LCTL(KC_LEFT) +#define M_FRIGHT LCTL(KC_RIGHT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_split_3x6_5( + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC , + KC_LBRC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , + KC_RBRC , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_GRAVE, + KC_LGUI , KC_LCTL , KC_LSFT , LOWER , M_SHLL , M_SHLA , RAISE , KC_SPC , KC_LALT , KC_ENT + ), + + [_LOWER] = LAYOUT_split_3x6_5( + KC_ESC , KC_PDOT , KC_PMNS , KC_PPLS , KC_MINS , KC_EQL , KC_MUTE , KC_MSTP , KC_MPLY , KC_MPRV , KC_MNXT , KC_BSPC , + KC_PAST , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , + KC_PSLS , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , + KC_LGUI , KC_LCTL , KC_LSFT , KC_TRNS , M_SHLL , M_SHLA , KC_TRNS , KC_SPC , KC_LALT , KC_ENT + ), + + [_RAISE] = LAYOUT_split_3x6_5( + KC_ESC , KC_PDOT , M_BBSLS , KC_BSLS , LSFT(KC_MINS), LSFT(KC_EQL), KC_HOME , KC_WH_L , KC_UP , KC_WH_R , KC_PGUP , KC_BSPC , + KC_TAB , LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4) , LSFT(KC_5) , M_FLEFT , KC_LEFT , KC_DOWN , KC_RIGHT, M_FRIGHT, KC_DEL , + LSFT(KC_TAB), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9) , LSFT(KC_0) , KC_END , KC_F22 , KC_F23 , KC_CAPS , KC_PGDN , MO(_ADJUST), + KC_LGUI , KC_LCTL , KC_LSFT , KC_LALT , M_SHLL , M_SHLA , KC_TRNS , KC_SPC , KC_RALT , KC_ENT + ), + + [_ADJUST] = LAYOUT_split_3x6_5( + KC_NO , KC_SLEP , KC_VOLU , KC_BRIU , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NLCK , + KC_NO , KC_WAKE , KC_VOLD , KC_BRID , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , + KC_NO , KC_NO , KC_NO , KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_NO , KC_NO , MO(_ADJUST), + RESET , KC_NO , KC_NO , KC_TRNS , KC_NO , KC_NO , KC_TRNS , KC_TRNS , KC_NO , KC_NO + ) +}; diff --git a/keyboards/handwired/elrgo_s/readme.md b/keyboards/handwired/elrgo_s/readme.md new file mode 100644 index 000000000000..5fb5ab6acb0f --- /dev/null +++ b/keyboards/handwired/elrgo_s/readme.md @@ -0,0 +1,28 @@ +# Elrgo S Split Keyboard + +This is a fork of the VOID Ergo S with QMK Configurator support. + +Elrgo S uses 2x Arduino Pro Micro (ATmega32U4) with 3D printed case. + +[Building guide, models for 3D printing](https://github.com/Eloren1/Elrgo_S) + +* Keyboard Maintainer: [Eloren](https://github.com/Eloren1) +* Hardware Supported: Arduino Pro Micro +* Hardware Availability: [Open Source](https://github.com/Eloren1/Elrgo_S) + +Make example for this keyboard (after setting up your build environment): + + make handwired/elrgo_s:default + +Flashing example for this keyboard: + + make handwired/elrgo_s:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Briefly press the button through the hole on the left side of the case. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/handwired/elrgo_s/rules.mk b/keyboards/handwired/elrgo_s/rules.mk new file mode 100644 index 000000000000..ed3ed34a499f --- /dev/null +++ b/keyboards/handwired/elrgo_s/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes From f4f679779e1404d9dc34c64823b9eb993bfa7ab3 Mon Sep 17 00:00:00 2001 From: GG <72414103+spbgzh@users.noreply.github.com> Date: Thu, 19 Aug 2021 21:17:54 +0300 Subject: [PATCH 300/328] [Keyboard] Add Mammoth20x (#14014) --- keyboards/wuque/mammoth20x/config.h | 54 +++++++++++++++++ keyboards/wuque/mammoth20x/info.json | 41 +++++++++++++ .../wuque/mammoth20x/keymaps/default/keymap.c | 36 +++++++++++ .../mammoth20x/keymaps/default/readme.md | 1 + .../wuque/mammoth20x/keymaps/via/keymap.c | 52 ++++++++++++++++ .../wuque/mammoth20x/keymaps/via/readme.md | 1 + .../wuque/mammoth20x/keymaps/via/rules.mk | 2 + keyboards/wuque/mammoth20x/mammoth20x.c | 59 +++++++++++++++++++ keyboards/wuque/mammoth20x/mammoth20x.h | 36 +++++++++++ keyboards/wuque/mammoth20x/readme.md | 22 +++++++ keyboards/wuque/mammoth20x/rules.mk | 24 ++++++++ 11 files changed, 328 insertions(+) create mode 100644 keyboards/wuque/mammoth20x/config.h create mode 100644 keyboards/wuque/mammoth20x/info.json create mode 100644 keyboards/wuque/mammoth20x/keymaps/default/keymap.c create mode 100644 keyboards/wuque/mammoth20x/keymaps/default/readme.md create mode 100644 keyboards/wuque/mammoth20x/keymaps/via/keymap.c create mode 100644 keyboards/wuque/mammoth20x/keymaps/via/readme.md create mode 100644 keyboards/wuque/mammoth20x/keymaps/via/rules.mk create mode 100644 keyboards/wuque/mammoth20x/mammoth20x.c create mode 100644 keyboards/wuque/mammoth20x/mammoth20x.h create mode 100644 keyboards/wuque/mammoth20x/readme.md create mode 100644 keyboards/wuque/mammoth20x/rules.mk diff --git a/keyboards/wuque/mammoth20x/config.h b/keyboards/wuque/mammoth20x/config.h new file mode 100644 index 000000000000..a29ab2cb218c --- /dev/null +++ b/keyboards/wuque/mammoth20x/config.h @@ -0,0 +1,54 @@ +/* +Copyright 2021 wuquestudio + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xB06B +#define PRODUCT_ID 0x0005 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wuque studio +#define PRODUCT mammoth20x + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +#define MATRIX_ROW_PINS { D5, F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { B0, B1, E6, F7 } + +#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 + +/* Enable encoder */ +#define ENCODERS_PAD_A { D3 } +#define ENCODERS_PAD_B { D2 } + +#define ENCODERS 1 +// Note: array is { col, row ) +#define ENCODERS_CW_KEY { { 3, 2 } } +#define ENCODERS_CCW_KEY { { 3, 4 } } diff --git a/keyboards/wuque/mammoth20x/info.json b/keyboards/wuque/mammoth20x/info.json new file mode 100644 index 000000000000..c889aa36b0fc --- /dev/null +++ b/keyboards/wuque/mammoth20x/info.json @@ -0,0 +1,41 @@ +{ + "keyboard_name": "mammoth20x", + "url": "https://shop.wuquestudio.com/", + "maintainer": "spbgzh", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT_default": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "Pause", "x": 1, "y": 0 }, + { "label": "Delete", "x": 2, "y": 0 }, + { "label": "E", "x": 3.5, "y": 0 }, + + { "label": "Num", "x": 0, "y": 1 }, + { "label": "/", "x": 1, "y": 1 }, + { "label": "*", "x": 2, "y": 1 }, + { "label": "-", "x": 3, "y": 1 }, + + { "label": "7", "x": 0, "y": 2 }, + { "label": "8", "x": 1, "y": 2 }, + { "label": "9", "x": 2, "y": 2 }, + { "label": "LeftEncode", "x": 3, "y": 0, "w": 0.5 }, + + { "label": "4", "x": 0, "y": 3 }, + { "label": "5", "x": 1, "y": 3 }, + { "label": "6", "x": 2, "y": 3 }, + { "label": "+", "x": 3, "y": 2, "h": 2 }, + + { "label": "1", "x": 0, "y": 4 }, + { "label": "2", "x": 1, "y": 4 }, + { "label": "3", "x": 2, "y": 4 }, + { "label": "RightEncode", "x": 4.5, "y": 0, "w" : 0.25 }, + + { "label": "0", "x": 0, "y": 5, "w": 2 }, + { "label": ".", "x": 2, "y": 5 }, + { "label": "Enter", "x": 3, "y": 4,"h":2 } + ] + } + } +} diff --git a/keyboards/wuque/mammoth20x/keymaps/default/keymap.c b/keyboards/wuque/mammoth20x/keymaps/default/keymap.c new file mode 100644 index 000000000000..77946f373dd0 --- /dev/null +++ b/keyboards/wuque/mammoth20x/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 wuquestudio + * + * 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_default( + KC_ESC, KC_PAUS, KC_DEL, KC_MUTE, + KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_VOLU, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_VOLD, + KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_default( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/mammoth20x/keymaps/default/readme.md b/keyboards/wuque/mammoth20x/keymaps/default/readme.md new file mode 100644 index 000000000000..5bad9b4558a5 --- /dev/null +++ b/keyboards/wuque/mammoth20x/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for mammoth20x diff --git a/keyboards/wuque/mammoth20x/keymaps/via/keymap.c b/keyboards/wuque/mammoth20x/keymaps/via/keymap.c new file mode 100644 index 000000000000..c8c434a60b4b --- /dev/null +++ b/keyboards/wuque/mammoth20x/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 wuquestudio + * + * 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_default( + KC_ESC, KC_PAUS, KC_DEL, KC_MUTE, + KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_VOLU, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_VOLD, + KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_default( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______ + ), + [2] = LAYOUT_default( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______ + ), + [3] = LAYOUT_default( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/mammoth20x/keymaps/via/readme.md b/keyboards/wuque/mammoth20x/keymaps/via/readme.md new file mode 100644 index 000000000000..fcd4ba857fb9 --- /dev/null +++ b/keyboards/wuque/mammoth20x/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for mammoth20x diff --git a/keyboards/wuque/mammoth20x/keymaps/via/rules.mk b/keyboards/wuque/mammoth20x/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/wuque/mammoth20x/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/wuque/mammoth20x/mammoth20x.c b/keyboards/wuque/mammoth20x/mammoth20x.c new file mode 100644 index 000000000000..da6ccecd3be5 --- /dev/null +++ b/keyboards/wuque/mammoth20x/mammoth20x.c @@ -0,0 +1,59 @@ +/* Copyright 2021 wuquestudio + * + * 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 "mammoth20x.h" + + +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; +static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; + +void encoder_action_unregister(void) +{ + for (int index = 0; index < ENCODERS; ++index) + { + if (encoder_state[index]) + { + keyevent_t encoder_event = (keyevent_t){ + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1)}; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +} +void encoder_action_register(uint8_t index, bool clockwise) +{ + keyevent_t encoder_event = (keyevent_t){ + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1)}; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); +} + +void matrix_scan_kb(void) +{ + encoder_action_unregister(); + matrix_scan_user(); +} + +bool encoder_update_kb(uint8_t index, bool clockwise) +{ + encoder_action_register(index, clockwise); + return true; +}; diff --git a/keyboards/wuque/mammoth20x/mammoth20x.h b/keyboards/wuque/mammoth20x/mammoth20x.h new file mode 100644 index 000000000000..cd0d8d4789ee --- /dev/null +++ b/keyboards/wuque/mammoth20x/mammoth20x.h @@ -0,0 +1,36 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_default( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43, \ + K50, K52, K53 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, K43 }, \ + { K50, KC_NO, K52, K53 }, \ +} + diff --git a/keyboards/wuque/mammoth20x/readme.md b/keyboards/wuque/mammoth20x/readme.md new file mode 100644 index 000000000000..4b731a159c48 --- /dev/null +++ b/keyboards/wuque/mammoth20x/readme.md @@ -0,0 +1,22 @@ +# mammoth20x +​ +More Info at[wuquestudio](https://shop.wuquestudio.com/). +​ +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: mammoth20x Standard +* Hardware Availability: [mammoth20x](https://shop.wuquestudio.com/) +​ +Make example for this keyboard (after setting up your build environment): + + make wuque/mammoth20x:default + +Flashing example for this keyboard: + + make wuque/mammoth20x:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Tap the Reset switch mounted on the PCB +* Hold the Esc key while connecting the USB cable (also erases persistent settings) + +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). diff --git a/keyboards/wuque/mammoth20x/rules.mk b/keyboards/wuque/mammoth20x/rules.mk new file mode 100644 index 000000000000..8431b9817324 --- /dev/null +++ b/keyboards/wuque/mammoth20x/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Enable Encoder + From a12f3a3fb87374d1c68417b2f58a22bad687f12c Mon Sep 17 00:00:00 2001 From: minibois Date: Thu, 19 Aug 2021 20:44:47 +0200 Subject: [PATCH 301/328] [Keyboard] Minor fixes for mini_elixivy/info.json (#14022) Co-authored-by: Drashna Jaelre --- keyboards/mini_elixivy/info.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/keyboards/mini_elixivy/info.json b/keyboards/mini_elixivy/info.json index 7f452a9b781a..0e1f75cfbc0a 100644 --- a/keyboards/mini_elixivy/info.json +++ b/keyboards/mini_elixivy/info.json @@ -7,21 +7,21 @@ "layouts": { "LAYOUT_65_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":"Dash", "x":11, "y":0},{"label":"Equals", "x":12, "y":0},{"label":"Backspace", "x":13, "y":0, "w":2.00},{"label":"PrintScr", "x":15, "y":0}, - {"label":"Tab", "x":0, "y":1, "w":1.5},{"label":"Q", "x":1.5, "y":0},{"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":"BackSlash", "x":13.5, "y":1, "w":1.5},{"label":"Del", "x":15, "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":"Enter", "x":12.75, "y":2, "w":2.25},{"label":"Ins", "x":15, "y":2}, - {"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":"Up", "x":14, "y":3},{"label":"F5", "x":15, "y":3}, + {"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":"Dash", "x":11, "y":0},{"label":"Equals", "x":12, "y":0},{"label":"Backspace", "x":13, "y":0, "w":2.00},{"label":"Mute", "x":15, "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":"BackSlash", "x":13.5, "y":1, "w":1.5},{"label":"PrintScr", "x":15, "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":"Enter", "x":12.75, "y":2, "w":2.25},{"label":"Del", "x":15, "y":2}, + {"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":"Up", "x":14, "y":3},{"label":"`", "x":15, "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.50, "y":4, "w":1.25},{"label":"", "x":3.75, "y":4, "w":6.25},{"label":"Alt", "x":10, "y":4},{"label":"Fn", "x":11, "y":4},{"label":"Ctrl", "x":12, "y":4},{"label":"Left", "x":13, "y":4},{"label":"Down", "x":14, "y":4},{"label":"Right", "x":15, "y":4} ] - }, + }, "LAYOUT_65_iso": { "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":"Dash", "x":11, "y":0},{"label":"Equals", "x":12, "y":0},{"label":"Backspace", "x":13, "y":0, "w":2.00},{"label":"PrintScr", "x":15, "y":0}, - {"label":"Tab", "x":0, "y":1, "w":1.5},{"label":"Q", "x":1.5, "y":0},{"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":"Enter", "x":13.5, "y":1, "w":1.5, "h":2},{"label":"Del", "x":15, "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":"BackSlash", "x":12.75, "y":2},{"label":"Ins", "x":15, "y":2}, - {"label":"Shift", "x":0, "y":3, "w":1.75},{"label":"BackSlash", "x":1.75, "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":"Up", "x":14, "y":3},{"label":"F5", "x":15, "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.50, "y":4, "w":1.25},{"label":"", "x":3.75, "y":4, "w":6.25},{"label":"Alt", "x":10, "y":4},{"label":"Fn", "x":11, "y":4},{"label":"Ctrl", "x":12, "y":4},{"label":"Left", "x":13, "y":4},{"label":"Down", "x":14, "y":4},{"label":"Right", "x":15, "y":4} - ] - } + {"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":"Dash", "x":11, "y":0},{"label":"Equals", "x":12, "y":0},{"label":"Backspace", "x":13, "y":0, "w":2.00},{"label":"Mute", "x":15, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},{"label":"PrintScr", "x":15, "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":"BackSlash", "x":12.75, "y":2},{"label":"Del", "x":15, "y":2}, + {"label":"Shift", "x":0, "y":3, "w":1.25},{"label":"BackSlash", "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":"Up", "x":14, "y":3},{"label":"`", "x":15, "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.50, "y":4, "w":1.25},{"label":"", "x":3.75, "y":4, "w":6.25},{"label":"Alt", "x":10, "y":4},{"label":"Fn", "x":11, "y":4},{"label":"Ctrl", "x":12, "y":4},{"label":"Left", "x":13, "y":4},{"label":"Down", "x":14, "y":4},{"label":"Right", "x":15, "y":4} + ] + } } } From b724a0dfd5782f81d52fa006466e607d7ba04c5e Mon Sep 17 00:00:00 2001 From: SneakboxKB <67670271+SneakboxKB@users.noreply.github.com> Date: Thu, 19 Aug 2021 13:58:35 -0500 Subject: [PATCH 302/328] [Keyboard] Ava initial commit (#13845) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: SneakboxKB <64090325+mujimanic@users.noreply.github.com> --- keyboards/sneakbox/ava/ava.c | 36 ++++++++++ keyboards/sneakbox/ava/ava.h | 59 +++++++++++++++ keyboards/sneakbox/ava/config.h | 72 +++++++++++++++++++ keyboards/sneakbox/ava/info.json | 27 +++++++ .../sneakbox/ava/keymaps/default/keymap.c | 40 +++++++++++ keyboards/sneakbox/ava/keymaps/via/keymap.c | 55 ++++++++++++++ keyboards/sneakbox/ava/keymaps/via/rules.mk | 1 + keyboards/sneakbox/ava/readme.md | 15 ++++ keyboards/sneakbox/ava/rules.mk | 25 +++++++ 9 files changed, 330 insertions(+) create mode 100644 keyboards/sneakbox/ava/ava.c create mode 100644 keyboards/sneakbox/ava/ava.h create mode 100644 keyboards/sneakbox/ava/config.h create mode 100644 keyboards/sneakbox/ava/info.json create mode 100644 keyboards/sneakbox/ava/keymaps/default/keymap.c create mode 100644 keyboards/sneakbox/ava/keymaps/via/keymap.c create mode 100644 keyboards/sneakbox/ava/keymaps/via/rules.mk create mode 100644 keyboards/sneakbox/ava/readme.md create mode 100644 keyboards/sneakbox/ava/rules.mk diff --git a/keyboards/sneakbox/ava/ava.c b/keyboards/sneakbox/ava/ava.c new file mode 100644 index 000000000000..c1b7c76cda3a --- /dev/null +++ b/keyboards/sneakbox/ava/ava.c @@ -0,0 +1,36 @@ +/* +Copyright 2021 Bryan Ong + +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 "ava.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index,clockwise)) { return false; } + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + return true; +} diff --git a/keyboards/sneakbox/ava/ava.h b/keyboards/sneakbox/ava/ava.h new file mode 100644 index 000000000000..01cdfdd77e8a --- /dev/null +++ b/keyboards/sneakbox/ava/ava.h @@ -0,0 +1,59 @@ +/* +Copyright 2021 Bryan Ong + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_all LAYOUT_alice_split_bs + +#define LAYOUT_alice_split_bs( \ + K020, K000, K001, K002, K003, K004, K005, K006, K010, K011, K012, K013, K014, K015, K016, K017, \ + K040, K021, K022, K023, K024, K025, K026, K030, K031, K032, K033, K034, K035, K036, K037, \ + K060, K041, K042, K043, K044, K045, K046, K050, K051, K052, K053, K054, K055, K056, \ + K007, K061, K062, K063, K064, K065, K066, K070, K071, K072, K073, K074, K075, K076, K077, \ + K027, K047, K057, K067, K081, K083, K085, K086, K087 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007 }, \ + { K010, K011, K012, K013, K014, K015, K016, K017 }, \ + { K020, K021, K022, K023, K024, K025, K026, K027 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037 }, \ + { K040, K041, K042, K043, K044, K045, K046, K047 }, \ + { K050, K051, K052, K053, K054, K055, K056, K057 }, \ + { K060, K061, K062, K063, K064, K065, K066, K067 }, \ + { K070, K071, K072, K073, K074, K075, K076, K077 }, \ + { KC_NO, K081, KC_NO, K083, KC_NO, K085, K086, K087 } \ +} + +#define LAYOUT_alice( \ + K020, K000, K001, K002, K003, K004, K005, K006, K010, K011, K012, K013, K014, K015, K017, \ + K040, K021, K022, K023, K024, K025, K026, K030, K031, K032, K033, K034, K035, K036, K037, \ + K060, K041, K042, K043, K044, K045, K046, K050, K051, K052, K053, K054, K055, K056, \ + K007, K061, K062, K063, K064, K065, K066, K070, K071, K072, K073, K074, K075, K076, K077, \ + K027, K047, K057, K067, K081, K083, K085, K086, K087 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007 }, \ + { K010, K011, K012, K013, K014, K015, KC_NO, K017 }, \ + { K020, K021, K022, K023, K024, K025, K026, K027 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037 }, \ + { K040, K041, K042, K043, K044, K045, K046, K047 }, \ + { K050, K051, K052, K053, K054, K055, K056, K057 }, \ + { K060, K061, K062, K063, K064, K065, K066, K067 }, \ + { K070, K071, K072, K073, K074, K075, K076, K077 }, \ + { KC_NO, K081, KC_NO, K083, KC_NO, K085, K086, K087 } \ +} + diff --git a/keyboards/sneakbox/ava/config.h b/keyboards/sneakbox/ava/config.h new file mode 100644 index 000000000000..81fdf5b374a1 --- /dev/null +++ b/keyboards/sneakbox/ava/config.h @@ -0,0 +1,72 @@ +/* +Copyright 2021 Bryan Ong + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5342 +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Sneakbox +#define PRODUCT AVA + +/*Bootmagic boot button, set to topmost, leftmost key */ +#define BOOTMAGIC_LITE_ROW 2 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* encoder */ +/* #define NUMBER_OF_ENCODERS 1 */ +#define ENCODERS_PAD_A { D3 } +#define ENCODERS_PAD_B { D2 } +#define ENCODER_RESOLUTION 1 + +/* key matrix size */ +#define MATRIX_ROWS 9 +#define MATRIX_COLS 8 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F1, E6, F4, B1, F5, B2, F6, B3, B7 } +#define MATRIX_COL_PINS { F0, D0, C7, C6, B6, B5, B4, D1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + + +#define LED_NUM_LOCK_PIN D4 +#define LED_CAPS_LOCK_PIN D6 + +#define RGB_DI_PIN F7 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 \ No newline at end of file diff --git a/keyboards/sneakbox/ava/info.json b/keyboards/sneakbox/ava/info.json new file mode 100644 index 000000000000..61185ff71d5e --- /dev/null +++ b/keyboards/sneakbox/ava/info.json @@ -0,0 +1,27 @@ +{ + "keyboard_name": "AVA", + "url": "https://sneakbox.com", + "maintainer": "mujimanic", + "width": 18.75, + "height": 5, + "layouts": { + "LAYOUT_alice_split_bs": { + "layout": [ + {"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, + {"x":0, "y":1}, {"x":1.25, "y":1, "w":1.5}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1}, {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, {"x":1.25, "y":2, "w":1.75}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2, "w":2.25}, + {"x":0, "y":3}, {"x":1.25, "y":3, "w":2.25}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":6.5, "y":3}, {"x":7.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.65, "y":3.25}, {"x":16.75, "y":3, "w":1.5}, + {"x":1.25, "y":4, "w":1.5}, {"x":2.75, "y":4}, {"x":5, "y":4, "w":1.5}, {"x":6.5, "y":4, "w":2.25}, {"x":9.75, "y":4, "w":2.75}, {"x":12.5, "y":4, "w":1}, {"x":14.65, "y":4.25}, {"x":15.65, "y":4.25}, {"x":16.65, "y":4.25} + ] + }, + "LAYOUT_alice": { + "layout": [ + {"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0, "w":2}, + {"x":0, "y":1}, {"x":1.25, "y":1, "w":1.5}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1}, {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, {"x":1.25, "y":2, "w":1.75}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2, "w":2.25}, + {"x":0, "y":3}, {"x":1.25, "y":3, "w":2.25}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":6.5, "y":3}, {"x":7.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.65, "y":3.25}, {"x":16.75, "y":3, "w":1.5}, + {"x":1.25, "y":4, "w":1.5}, {"x":2.75, "y":4}, {"x":5, "y":4, "w":1.5}, {"x":6.5, "y":4, "w":2.25}, {"x":9.75, "y":4, "w":2.75}, {"x":12.5, "y":4, "w":1}, {"x":14.65, "y":4.25}, {"x":15.65, "y":4.25}, {"x":16.65, "y":4.25} + ] + } + } +} diff --git a/keyboards/sneakbox/ava/keymaps/default/keymap.c b/keyboards/sneakbox/ava/keymaps/default/keymap.c new file mode 100644 index 000000000000..a76088794d0b --- /dev/null +++ b/keyboards/sneakbox/ava/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2021 Bryan Ong + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_alice_split_bs( + 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_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_END, 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_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, LT(_FN, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT), + [_FN] = LAYOUT_alice_split_bs( + 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_MOD, RGB_TOG, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_SAI, KC_TRNS, RGB_HUI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + diff --git a/keyboards/sneakbox/ava/keymaps/via/keymap.c b/keyboards/sneakbox/ava/keymaps/via/keymap.c new file mode 100644 index 000000000000..4f9274f26e93 --- /dev/null +++ b/keyboards/sneakbox/ava/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* +Copyright 2021 Bryan Ong + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _L3, + _L4 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_alice_split_bs( + 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_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_END, 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_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, LT(_FN, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT), + [_FN] = LAYOUT_alice_split_bs( + 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_MOD, RGB_TOG, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_SAI, KC_TRNS, RGB_HUI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_L3] = LAYOUT_alice_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_L4] = LAYOUT_alice_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/sneakbox/ava/keymaps/via/rules.mk b/keyboards/sneakbox/ava/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/sneakbox/ava/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sneakbox/ava/readme.md b/keyboards/sneakbox/ava/readme.md new file mode 100644 index 000000000000..8f65c143fe87 --- /dev/null +++ b/keyboards/sneakbox/ava/readme.md @@ -0,0 +1,15 @@ +# Sneakbox AVA + +![Sneakbox AVA](https://i.imgur.com/lVaAmfSh.jpg) + +An Alice-like keyboard featuring a blocked arrow cluster in place of the right shift position. The left sided nav cluster contains four keys. Optional pushbutton rotary encoder socket positioned at the top left key position. Firmware covers both soldered and hotswap versions of the PCB. + +* Keyboard Maintainer: [mujimanic](https://github.com/mujimanic) +* Hardware Supported: AVA-compatible keyboard case. This PCB is different from and is not compatible with conventional Alice keyboard cases or Arisu format cases (right sided arrow cluster + right sided nav cluster). +* Hardware Availability: [sneakbox.design](https://sneakbox.com/collections/frontpage/products/infopre-order-ava-keyboard-shell) + +Make example for this keyboard (after setting up your build environment): + + make sneakbox/ava:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/sneakbox/ava/rules.mk b/keyboards/sneakbox/ava/rules.mk new file mode 100644 index 000000000000..f87f3d95b781 --- /dev/null +++ b/keyboards/sneakbox/ava/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes + +LAYOUTS = alice alice_split_bs \ No newline at end of file From cc0ae9cc4ceaf3bdd5d33e1d410b319db617c4eb Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 19 Aug 2021 21:21:00 -0700 Subject: [PATCH 303/328] Revert "[Keyboard] Dumbpad VIA support added (#13512)" --- keyboards/dumbpad/config.h | 23 +-- keyboards/dumbpad/dumbpad.c | 59 ------- keyboards/dumbpad/dumbpad.h | 39 ----- keyboards/dumbpad/info.json | 18 --- keyboards/dumbpad/keymaps/default/keymap.c | 89 ----------- keyboards/dumbpad/keymaps/via/keymap.c | 175 --------------------- keyboards/dumbpad/keymaps/via/rules.mk | 3 - keyboards/dumbpad/rules.mk | 26 +-- 8 files changed, 5 insertions(+), 427 deletions(-) delete mode 100644 keyboards/dumbpad/dumbpad.c delete mode 100644 keyboards/dumbpad/dumbpad.h delete mode 100644 keyboards/dumbpad/info.json delete mode 100644 keyboards/dumbpad/keymaps/default/keymap.c delete mode 100644 keyboards/dumbpad/keymaps/via/keymap.c delete mode 100644 keyboards/dumbpad/keymaps/via/rules.mk diff --git a/keyboards/dumbpad/config.h b/keyboards/dumbpad/config.h index 7322d1bbb582..5a1a1c92b872 100644 --- a/keyboards/dumbpad/config.h +++ b/keyboards/dumbpad/config.h @@ -21,29 +21,14 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0913 -#define DEVICE_VER 0x0007 #define MANUFACTURER imchipwood #define PRODUCT dumbpad /* Column/Row IO definitions */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 5 -#define MATRIX_ROW_PINS { F4, F5, F6, F7 } -#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 } -#define UNUSED_PINS - -/* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -/* Single rotary encoder */ -#define ENCODERS_PAD_A { B2, D0 } -#define ENCODERS_PAD_B { D4, D1 } -#define ENCODER_RESOLUTIONS { 4, 4 } - -/* Onboard LEDs */ -#define LED_00 B3 -#define LED_01 B1 +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 -/* Bootmagic - hold down rotary encoder pushbutton while plugging in to enter bootloader */ -#define BOOTMAGIC_LITE_ROW 3 -#define BOOTMAGIC_LITE_COLUMN 0 +/* Reduce tapdance required taps from 5 to 2 */ +#define TAPPING_TOGGLE 2 diff --git a/keyboards/dumbpad/dumbpad.c b/keyboards/dumbpad/dumbpad.c deleted file mode 100644 index b575662a8786..000000000000 --- a/keyboards/dumbpad/dumbpad.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright 2019 Chip - * - * 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 "dumbpad.h" - -void keyboard_pre_init_kb(void) { - // Set LED IO as outputs - setPinOutput(LED_00); - setPinOutput(LED_01); - keyboard_pre_init_user(); -} - -void shutdown_user() { - // Shutdown LEDs - writePinLow(LED_00); - writePinLow(LED_01); -} - -layer_state_t layer_state_set_kb(layer_state_t state) { - // Layer LEDs act as binary indication of current layer - uint8_t layer = get_highest_layer(state); - writePin(LED_00, layer & 0b1); - writePin(LED_01, (layer >> 1) & 0b1); - return layer_state_set_user(state); -} - -// Optional override functions below. -// You can leave any or all of these undefined. -// These are only required if you want to perform custom actions. - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - uint8_t led_delay_ms = 80; - for (int i = 0; i < 2; i++) { - writePinHigh(LED_00); - writePinHigh(LED_01); - wait_ms(led_delay_ms); - writePinLow(LED_00); - writePinLow(LED_01); - if (i < 1) { - wait_ms(led_delay_ms); - } - } - - matrix_init_user(); -} diff --git a/keyboards/dumbpad/dumbpad.h b/keyboards/dumbpad/dumbpad.h deleted file mode 100644 index b7c7694e30b5..000000000000 --- a/keyboards/dumbpad/dumbpad.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2019 Chip - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#include "quantum.h" - -/* This a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ -#define LAYOUT( \ - k01, k02, k03, k04, \ - k11, k12, k13, k14, \ - k21, k22, k23, k24, \ - k30, k31, k32, k33, k34 \ -) \ -{ \ - { KC_NO, k01, k02, k03, k04 }, \ - { KC_NO, k11, k12, k13, k14 }, \ - { KC_NO, k21, k22, k23, k24 }, \ - { k30, k31, k32, k33, k34 }, \ -} diff --git a/keyboards/dumbpad/info.json b/keyboards/dumbpad/info.json deleted file mode 100644 index 82a53d852b28..000000000000 --- a/keyboards/dumbpad/info.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "keyboard_name": "dumbpad", - "keyboard_folder": "dumbpad", - "url": "https://www.github.com/imchipwood/dumbpad", - "maintainer": "imchipwood", - "width": 5, - "height": 4, - "layouts": { - "LAYOUT": { - "layout": [ - {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, - {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, - {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, - {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3} - ] - } - } -} diff --git a/keyboards/dumbpad/keymaps/default/keymap.c b/keyboards/dumbpad/keymaps/default/keymap.c deleted file mode 100644 index 9263af428df9..000000000000 --- a/keyboards/dumbpad/keymaps/default/keymap.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright 2020 imchipwood - * - * 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] = { - /* - BASE LAYER - /-----------------------------------------------------` - | | 7 | 8 | 9 | Bkspc | - | |---------|---------|---------|---------| - | | 4 | 5 | 6 | Esc | - | |---------|---------|---------|---------| - | | 1 | 2 | 3 | Tab | - |-------------|---------|---------|---------|---------| - | Left mouse | TT(1) | 0 | . | Enter | - \-----------------------------------------------------' - */ - [0] = LAYOUT( - KC_7, KC_8, KC_9, KC_BSPC, - KC_4, KC_5, KC_6, KC_ESC, - KC_1, KC_2, KC_3, KC_TAB, - KC_BTN1, TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER - ), - /* - SUB LAYER - /-----------------------------------------------------` - | | | | | Reset | - | |---------|---------|---------|---------| - | | | | | + | - | |---------|---------|---------|---------| - | | | | | - | - |-------------|---------|---------|---------|---------| - | LOCK | | | | = | - \-----------------------------------------------------' - */ - [1] = LAYOUT( - _______, _______, _______, RESET, - _______, _______, _______, KC_KP_PLUS, - _______, _______, _______, KC_KP_MINUS, - KC_LOCK, _______, _______, _______, KC_EQL - ), -}; - -bool encoder_update_user(uint8_t index, bool clockwise) { - /* Custom encoder control - handles CW/CCW turning of encoder - * Default behavior: - * main layer: - * CW: move mouse right - * CCW: move mouse left - * other layers: - * CW: = (equals/plus - increase slider in Adobe products) - * CCW: - (minus/underscore - decrease slider in adobe products) - */ - if (index == 0) { - switch (get_highest_layer(layer_state)) { - case 0: - // main layer - move mouse right (CW) and left (CCW) - if (clockwise) { - tap_code(KC_MS_R); - } else { - tap_code(KC_MS_L); - } - break; - - default: - // other layers - =/+ (quals/plus) (CW) and -/_ (minus/underscore) (CCW) - if (clockwise) { - tap_code(KC_EQL); - } else { - tap_code(KC_MINS); - } - break; - } - } - return true; -} diff --git a/keyboards/dumbpad/keymaps/via/keymap.c b/keyboards/dumbpad/keymaps/via/keymap.c deleted file mode 100644 index d9f997531afa..000000000000 --- a/keyboards/dumbpad/keymaps/via/keymap.c +++ /dev/null @@ -1,175 +0,0 @@ -/* Copyright 2019 imchipwood - * - * 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] = { - /* - BASE LAYER - /-----------------------------------------------------` - | | 7 | 8 | 9 | Bkspc | - | |---------|---------|---------|---------| - | | 4 | 5 | 6 | Esc | - | |---------|---------|---------|---------| - | | 1 | 2 | 3 | Tab | - |-------------|---------|---------|---------|---------| - | Left mouse | MO(1) | 0 | . | Enter | - \-----------------------------------------------------' - */ - [0] = LAYOUT( - KC_7, KC_8, KC_9, KC_BSPC, - KC_4, KC_5, KC_6, KC_ESC, - KC_1, KC_2, KC_3, KC_TAB, - KC_BTN1, MO(1), KC_0, KC_PDOT, KC_ENTER - ), - /* - SUB LAYER - /-----------------------------------------------------` - | | | | | Reset | - | |---------|---------|---------|---------| - | | | | | + | - | |---------|---------|---------|---------| - | | | | | - | - |-------------|---------|---------|---------|---------| - | LOCK | | MO(2) | | = | - \-----------------------------------------------------' - */ - [1] = LAYOUT( - _______, _______, _______, RESET, - _______, _______, _______, KC_KP_PLUS, - _______, _______, _______, KC_KP_MINUS, - KC_MUTE, _______, MO(2) , _______, KC_EQL - ), - - /* - DEBUG LAYER - /-----------------------------------------------------` - | | | | | Reset | - | |---------|---------|---------|---------| - | | | | | | - | |---------|---------|---------|---------| - | | | | | | - |-------------|---------|---------|---------|---------| - | | | | | | - \-----------------------------------------------------' - */ - [2] = LAYOUT( - _______, _______, _______, RESET, - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, MO(3) , _______ - ), - - /* - EXTRA LAYER - /-----------------------------------------------------` - | | | | | | - | |---------|---------|---------|---------| - | | | | | | - | |---------|---------|---------|---------| - | | | | | | - |-------------|---------|---------|---------|---------| - | | | | | | - \-----------------------------------------------------' - */ - [3] = LAYOUT( - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, _______ - ), -}; - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - switch (get_highest_layer(layer_state)) { - case 0: - // sub layer - Scroll - if (clockwise) { - tap_code(KC_MS_WH_DOWN); - } else { - tap_code(KC_MS_WH_UP); - } - break; - - case 1: - // main layer - Volume - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - - case 2: - // debug layer - Change track - if (clockwise) { - tap_code(KC_MNXT); - } else { - tap_code(KC_MPRV); - } - break; - - default: - // any other layer Scroll - if (clockwise) { - tap_code(KC_MS_WH_DOWN); - } else { - tap_code(KC_MS_WH_UP); - } - break; - } - } - else if (index == 1) { - switch (get_highest_layer(layer_state)) { - case 0: - // sub layer - Volume - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - - case 1: - // main layer - Scroll - if (clockwise) { - tap_code(KC_MS_WH_DOWN); - } else { - tap_code(KC_MS_WH_UP); - } - break; - - case 2: - // debug layer - Brightness - if (clockwise) { - tap_code(KC_BRID); - } else { - tap_code(KC_BRIU); - } - break; - - default: - // any other layer Scroll - if (clockwise) { - tap_code(KC_MS_WH_DOWN); - } else { - tap_code(KC_MS_WH_UP); - } - break; - } - } - return true; -} diff --git a/keyboards/dumbpad/keymaps/via/rules.mk b/keyboards/dumbpad/keymaps/via/rules.mk deleted file mode 100644 index 4650c471e537..000000000000 --- a/keyboards/dumbpad/keymaps/via/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -CONSOLE_ENABLE = no -LTO_ENABLE = yes -VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/dumbpad/rules.mk b/keyboards/dumbpad/rules.mk index 309e3d48c047..87ec1ab01b4e 100644 --- a/keyboards/dumbpad/rules.mk +++ b/keyboards/dumbpad/rules.mk @@ -1,25 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output - -ENCODER_ENABLE = yes -KEY_LOCK_ENABLE = yes +DEFAULT_FOLDER = dumbpad/v0x From 37b5ead17d55d893d8639acd402cb4907ff4cc2c Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 19 Aug 2021 21:26:37 -0700 Subject: [PATCH 304/328] [Keyboard] Fix space_space rev1 keyboard files (#14087) --- keyboards/space_space/rev1/{space_space.c => rev1.c} | 2 +- keyboards/space_space/rev1/{space_space.h => rev1.h} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename keyboards/space_space/rev1/{space_space.c => rev1.c} (96%) rename keyboards/space_space/rev1/{space_space.h => rev1.h} (100%) diff --git a/keyboards/space_space/rev1/space_space.c b/keyboards/space_space/rev1/rev1.c similarity index 96% rename from keyboards/space_space/rev1/space_space.c rename to keyboards/space_space/rev1/rev1.c index 5fb853a0184d..e639552cfb91 100644 --- a/keyboards/space_space/rev1/space_space.c +++ b/keyboards/space_space/rev1/rev1.c @@ -14,4 +14,4 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "space_space.h" +#include "rev1.h" diff --git a/keyboards/space_space/rev1/space_space.h b/keyboards/space_space/rev1/rev1.h similarity index 100% rename from keyboards/space_space/rev1/space_space.h rename to keyboards/space_space/rev1/rev1.h From fd54992e1f65713a93115a0a1737e97d3e2d8522 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 19 Aug 2021 21:35:29 -0700 Subject: [PATCH 305/328] [Keyboard] Fix Feels65 Via keymap (#14086) --- keyboards/feels/feels65/keymaps/via/keymap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/keyboards/feels/feels65/keymaps/via/keymap.c b/keyboards/feels/feels65/keymaps/via/keymap.c index a8b859e9e260..a325a8410432 100644 --- a/keyboards/feels/feels65/keymaps/via/keymap.c +++ b/keyboards/feels/feels65/keymaps/via/keymap.c @@ -16,6 +16,7 @@ #include QMK_KEYBOARD_H +// clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, @@ -34,14 +35,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), From 90ff4fe749346c3b92aa8ca6461f5091fabfa99e Mon Sep 17 00:00:00 2001 From: tiltowait <208040+tiltowait@users.noreply.github.com> Date: Fri, 20 Aug 2021 06:13:59 -0700 Subject: [PATCH 306/328] [Keyboard] Add IBM Model M SSK configuration (#14050) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/converter/modelm_ssk/config.h | 76 +++ keyboards/converter/modelm_ssk/info.json | 457 ++++++++++++++++++ .../modelm_ssk/keymaps/default/keymap.c | 114 +++++ .../modelm_ssk/keymaps/default/readme.md | 1 + .../modelm_ssk/keymaps/tiltowait/config.h | 21 + .../modelm_ssk/keymaps/tiltowait/keymap.c | 116 +++++ .../modelm_ssk/keymaps/tiltowait/readme.md | 11 + keyboards/converter/modelm_ssk/modelm_ssk.c | 19 + keyboards/converter/modelm_ssk/modelm_ssk.h | 45 ++ keyboards/converter/modelm_ssk/readme.md | 55 +++ keyboards/converter/modelm_ssk/rules.mk | 23 + 11 files changed, 938 insertions(+) create mode 100644 keyboards/converter/modelm_ssk/config.h create mode 100644 keyboards/converter/modelm_ssk/info.json create mode 100644 keyboards/converter/modelm_ssk/keymaps/default/keymap.c create mode 100644 keyboards/converter/modelm_ssk/keymaps/default/readme.md create mode 100644 keyboards/converter/modelm_ssk/keymaps/tiltowait/config.h create mode 100644 keyboards/converter/modelm_ssk/keymaps/tiltowait/keymap.c create mode 100644 keyboards/converter/modelm_ssk/keymaps/tiltowait/readme.md create mode 100644 keyboards/converter/modelm_ssk/modelm_ssk.c create mode 100644 keyboards/converter/modelm_ssk/modelm_ssk.h create mode 100644 keyboards/converter/modelm_ssk/readme.md create mode 100644 keyboards/converter/modelm_ssk/rules.mk diff --git a/keyboards/converter/modelm_ssk/config.h b/keyboards/converter/modelm_ssk/config.h new file mode 100644 index 000000000000..74d549ba492a --- /dev/null +++ b/keyboards/converter/modelm_ssk/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2019-2021 iw0rm3r, tiltowait + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER tiltowait +#define PRODUCT IBM Model M Space-Saving Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +/* + * 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_COL_PINS { C7, C6, C5, C4, C3, C2, C1, C0, E1, E0, D7, D5, D4, D3, D2, D1 } +#define MATRIX_ROW_PINS { F0, F1, F2, F3, F4, F5, F6, F7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed (5 is default) */ +#define DEBOUNCE 5 + +/* The Model M does not have NKRO */ +#define MATRIX_HAS_GHOST + +#define LED_NUM_LOCK_PIN B4 +#define LED_CAPS_LOCK_PIN B6 +#define LED_SCROLL_LOCK_PIN B5 + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/converter/modelm_ssk/info.json b/keyboards/converter/modelm_ssk/info.json new file mode 100644 index 000000000000..e347d667222b --- /dev/null +++ b/keyboards/converter/modelm_ssk/info.json @@ -0,0 +1,457 @@ +{ + "keyboard_name": "IBM Model M Space-Saving Keyboard", + "url": "https://github.com/tiltowait/qmk_firmware/tree/modelm_ssk/keyboards/converter/modelm_ssk", + "maintainer": "tiltowait", + "width": 17.75, + "height": 6.5, + "layouts": + { + "LAYOUT": + { + "layout": + [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 2, + "y": 0 + }, + { + "label": "F2", + "x": 3, + "y": 0 + }, + { + "label": "F3", + "x": 4, + "y": 0 + }, + { + "label": "F4", + "x": 5, + "y": 0 + }, + { + "label": "F5", + "x": 6.5, + "y": 0 + }, + { + "label": "F6", + "x": 7.5, + "y": 0 + }, + { + "label": "F7", + "x": 8.5, + "y": 0 + }, + { + "label": "F8", + "x": 9.5, + "y": 0 + }, + { + "label": "F9", + "x": 11, + "y": 0 + }, + { + "label": "F10", + "x": 12, + "y": 0 + }, + { + "label": "F11", + "x": 13, + "y": 0 + }, + { + "label": "F12", + "x": 14, + "y": 0 + }, + { + "label": "PrtSc", + "x": 15.25, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 16.25, + "y": 0 + }, + { + "label": "Pause", + "x": 17.25, + "y": 0 + }, + { + "label": "~", + "x": 0, + "y": 1.5 + }, + { + "label": "!", + "x": 1, + "y": 1.5 + }, + { + "label": "@", + "x": 2, + "y": 1.5 + }, + { + "label": "#", + "x": 3, + "y": 1.5 + }, + { + "label": "$", + "x": 4, + "y": 1.5 + }, + { + "label": "%", + "x": 5, + "y": 1.5 + }, + { + "label": "^", + "x": 6, + "y": 1.5 + }, + { + "label": "&", + "x": 7, + "y": 1.5 + }, + { + "label": "*", + "x": 8, + "y": 1.5 + }, + { + "label": "(", + "x": 9, + "y": 1.5 + }, + { + "label": ")", + "x": 10, + "y": 1.5 + }, + { + "label": "_", + "x": 11, + "y": 1.5 + }, + { + "label": "+", + "x": 12, + "y": 1.5 + }, + { + "label": "Backspace", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.5 + }, + { + "label": "Home", + "x": 16.25, + "y": 1.5 + }, + { + "label": "PgUp", + "x": 17.25, + "y": 1.5 + }, + { + "label": "Tab", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 2.5 + }, + { + "label": "W", + "x": 2.5, + "y": 2.5 + }, + { + "label": "E", + "x": 3.5, + "y": 2.5 + }, + { + "label": "R", + "x": 4.5, + "y": 2.5 + }, + { + "label": "T", + "x": 5.5, + "y": 2.5 + }, + { + "label": "Y", + "x": 6.5, + "y": 2.5 + }, + { + "label": "U", + "x": 7.5, + "y": 2.5 + }, + { + "label": "I", + "x": 8.5, + "y": 2.5 + }, + { + "label": "O", + "x": 9.5, + "y": 2.5 + }, + { + "label": "P", + "x": 10.5, + "y": 2.5 + }, + { + "label": "{", + "x": 11.5, + "y": 2.5 + }, + { + "label": "}", + "x": 12.5, + "y": 2.5 + }, + { + "label": "|", + "x": 13.5, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Delete", + "x": 15.25, + "y": 2.5 + }, + { + "label": "End", + "x": 16.25, + "y": 2.5 + }, + { + "label": "PgDn", + "x": 17.25, + "y": 2.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 3.5, + "w": 1.5 + }, + { + "label": "A", + "x": 1.75, + "y": 3.5 + }, + { + "label": "S", + "x": 2.75, + "y": 3.5 + }, + { + "label": "D", + "x": 3.75, + "y": 3.5 + }, + { + "label": "F", + "x": 4.75, + "y": 3.5 + }, + { + "label": "G", + "x": 5.75, + "y": 3.5 + }, + { + "label": "H", + "x": 6.75, + "y": 3.5 + }, + { + "label": "J", + "x": 7.75, + "y": 3.5 + }, + { + "label": "K", + "x": 8.75, + "y": 3.5 + }, + { + "label": "L", + "x": 9.75, + "y": 3.5 + }, + { + "label": ":", + "x": 10.75, + "y": 3.5 + }, + { + "label": "\"", + "x": 11.75, + "y": 3.5 + }, + { + "label": "~", + "x": 12.75, + "y": 3.5 + }, + { + "label": "Enter", + "x": 13.75, + "y": 3.5, + "w": 1.25 + }, + { + "label": "Shift", + "x": 0, + "y": 4.5, + "w": 1.25 + }, + { + "label": "|", + "x": 1.25, + "y": 4.5 + }, + { + "label": "Z", + "x": 2.25, + "y": 4.5 + }, + { + "label": "X", + "x": 3.25, + "y": 4.5 + }, + { + "label": "C", + "x": 4.25, + "y": 4.5 + }, + { + "label": "V", + "x": 5.25, + "y": 4.5 + }, + { + "label": "B", + "x": 6.25, + "y": 4.5 + }, + { + "label": "N", + "x": 7.25, + "y": 4.5 + }, + { + "label": "M", + "x": 8.25, + "y": 4.5 + }, + { + "label": "<", + "x": 9.25, + "y": 4.5 + }, + { + "label": ">", + "x": 10.25, + "y": 4.5 + }, + { + "label": "?", + "x": 11.25, + "y": 4.5 + }, + { + "label": "Shift", + "x": 12.25, + "y": 4.5, + "w": 2.75 + }, + { + "label": "↑", + "x": 16.25, + "y": 4.5 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Alt", + "x": 2.5, + "y": 5.5, + "w": 1.5 + }, + { + "x": 4, + "y": 5.5, + "w": 7 + }, + { + "label": "Alt", + "x": 11, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Ctrl", + "x": 13.5, + "y": 5.5, + "w": 1.5 + }, + { + "label": "←", + "x": 15.25, + "y": 5.5 + }, + { + "label": "↓", + "x": 16.25, + "y": 5.5 + }, + { + "label": "→", + "x": 17.25, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/converter/modelm_ssk/keymaps/default/keymap.c b/keyboards/converter/modelm_ssk/keymaps/default/keymap.c new file mode 100644 index 000000000000..adf557b268eb --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/default/keymap.c @@ -0,0 +1,114 @@ +/* Copyright 2019-2021 iw0rm3r, tiltowait + * + * 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 custom_layers { + _BASE, + _NUMPAD, +}; + +enum custom_keycodes { + NUM_SCRL = SAFE_RANGE +}; + +void toggle_numpad_layer(int set_state); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( /* Base layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, NUM_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_NUMPAD] = LAYOUT( /* Numpad Layer */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_TRNS, KC_KP_MINUS, KC_KP_PLUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ASTERISK, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_SLASH, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint16_t last_num_scroll = 0; /* For unregistering the proper key */ + + switch (keycode) { + case NUM_SCRL: /* Numlock / Scroll Lock */ + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + /* Remove the shift modifiers */ + uint8_t shift_mods = get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + del_mods(MOD_MASK_SHIFT); + + last_num_scroll = KC_NUMLOCK; + register_code(last_num_scroll); + toggle_numpad_layer(-1); + + /* Reset the shift modifiers */ + set_mods(shift_mods); + } else { + last_num_scroll = KC_SCROLLLOCK; + register_code(last_num_scroll); + } + } else { + unregister_code(last_num_scroll); + } + break; + } + return true; +} + +void toggle_numpad_layer(int set_state) { + static uint8_t numlock_enabled = 0; + + /* set_state allows us to explicitly change the numlock state + rather than merely toggling it. */ + if (set_state == -1) { + numlock_enabled = !numlock_enabled; + } else { + numlock_enabled = set_state; + } + + if (numlock_enabled) { + layer_on(_NUMPAD); + } + else { + layer_off(_NUMPAD); + } +} + +bool led_update_user(led_t led_state) { + /* In rare and unlikely conditions, it's possible for numlock + state to change externally from the keyboard. If this happens, + we want to match the new state. + + On Windows and Linux, this means that the keyboard will technically + toggle the numpad layer twice. + */ + + static int8_t numlock_state = -1; /* Unknown state at default */ + + if (led_state.num_lock != numlock_state) { + numlock_state = led_state.num_lock; + toggle_numpad_layer(led_state.num_lock); + } + return true; +} + diff --git a/keyboards/converter/modelm_ssk/keymaps/default/readme.md b/keyboards/converter/modelm_ssk/keymaps/default/readme.md new file mode 100644 index 000000000000..bc829be26628 --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for modelm_ssk diff --git a/keyboards/converter/modelm_ssk/keymaps/tiltowait/config.h b/keyboards/converter/modelm_ssk/keymaps/tiltowait/config.h new file mode 100644 index 000000000000..151118fdf675 --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/tiltowait/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 tiltowait + * + * 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 + +// place overrides here + +#define PERMISSIVE_HOLD diff --git a/keyboards/converter/modelm_ssk/keymaps/tiltowait/keymap.c b/keyboards/converter/modelm_ssk/keymaps/tiltowait/keymap.c new file mode 100644 index 000000000000..58726fec86f5 --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/tiltowait/keymap.c @@ -0,0 +1,116 @@ +/* Copyright 2021 tiltowait + * + * 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 custom_layers { + _BASE, + _SECOND, + _NUMPAD, +}; + +enum custom_keycodes { + NUM_SCRL = SAFE_RANGE /* Dual-purpose Scroll Lock / Numlock button as on original hardware */ +}; + +void toggle_numlock_layer(int set_state); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( /* Base layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_MUTE, KC_F10, KC_VOLD, KC_VOLU, S(G(KC_4)), NUM_SCRL, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_INS, KC_HOME, KC_PGUP, + LT(_SECOND,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, KC_END, KC_PGDN, + 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LALT, LGUI_T(KC_ENT), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_SECOND] = LAYOUT( /* Layer 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(A(KC_MINS)), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(KC_LEFT), C(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_LEFT, KC_DOWN, KC_UP, KC_RGHT, S(A(KC_M)), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, C(KC_SPC), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_NUMPAD] = LAYOUT( /* Numpad Layer */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_TRNS, KC_KP_MINUS, KC_KP_PLUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ASTERISK, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_SLASH, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint16_t last_num_scroll = 0; /* For unregistering the proper key */ + + switch (keycode) { + case NUM_SCRL: + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + /* Remove the shift modifiers */ + uint8_t shift_mods = get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + set_mods(get_mods() & ~(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) ); + + last_num_scroll = KC_NUMLOCK; + register_code(last_num_scroll); + toggle_numlock_layer(-1); + + /* Reset the shift modifiers */ + set_mods(shift_mods); + } else { + last_num_scroll = KC_SCROLLLOCK; + register_code(last_num_scroll); + } + } else { + unregister_code(last_num_scroll); + } + break; + } + return true; +} + +void toggle_numlock_layer(int set_state) { + static uint8_t numlock_enabled = 0; + + /* set_state allows us to explicitly change the numlock state + rather than merely toggling it. */ + if (set_state == -1) { + numlock_enabled = !numlock_enabled; + } else { + numlock_enabled = set_state; + } + + if (numlock_enabled) { + layer_on(_NUMPAD); + } + else { + layer_off(_NUMPAD); + } +} + +bool led_update_kb(led_t led_state) { + static int8_t numlock_state = -1; + + if (led_state.num_lock != numlock_state) { + numlock_state = led_state.num_lock; + toggle_numlock_layer(led_state.num_lock); + } + return true; +} diff --git a/keyboards/converter/modelm_ssk/keymaps/tiltowait/readme.md b/keyboards/converter/modelm_ssk/keymaps/tiltowait/readme.md new file mode 100644 index 000000000000..aecdd89b82da --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/tiltowait/readme.md @@ -0,0 +1,11 @@ +# The maintainer's personal keymap for modelm_ssk + +This is a keymap suitable for macOS use. + +* Backspace and backslash have been swapped (HHKB style) +* Capslock is LCTRL +* LCTRL is LALT +* LALT is LGUI +* Tab shifts to layer 1 on hold +* Layer 1 has a couple of Mac shortcuts, plus Vim-style arrow keys +* Shift+Numlock enables numlock diff --git a/keyboards/converter/modelm_ssk/modelm_ssk.c b/keyboards/converter/modelm_ssk/modelm_ssk.c new file mode 100644 index 000000000000..1b01115e5db4 --- /dev/null +++ b/keyboards/converter/modelm_ssk/modelm_ssk.c @@ -0,0 +1,19 @@ +/* Copyright 2019 iw0rm3r + * + * 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 "modelm_ssk.h" + + + diff --git a/keyboards/converter/modelm_ssk/modelm_ssk.h b/keyboards/converter/modelm_ssk/modelm_ssk.h new file mode 100644 index 000000000000..5c4b9b80eac0 --- /dev/null +++ b/keyboards/converter/modelm_ssk/modelm_ssk.h @@ -0,0 +1,45 @@ +/* Copyright 2019-2021 iw0rm3r, tiltowait + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * The first section contains "names" for physical keys of the keyboard + * and defines their position on the board. + * The second section defines position of the keys on the switch matrix + * (where COLUMNS and ROWS crosses). */ + +#define LAYOUT( \ + K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5P, \ + \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, K4P, K4Q, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K3O, K3P, K3Q, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, \ + K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1M, K1N, \ + K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H \ +) \ +{ \ +/* 00 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K1G, K0C, K1H, KC_NO, KC_NO, K1L, K0G, K0H, KC_NO, K0F, K0D }, \ +/* 01 */ { K0E, K1M, K1C, K1D, K1E, K1F, K2N, K1I, K1J, K1K, KC_NO, KC_NO, KC_NO, KC_NO, K5P, KC_NO }, \ +/* 02 */ { KC_NO, KC_NO, K2B, K2C, K2D, K2E, K3N, K2H, K2I, K2J, K2K, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ +/* 03 */ { KC_NO, KC_NO, K3B, K3C, K3D, K3E, KC_NO, K3H, K3I, K3J, K3K, KC_NO, KC_NO, KC_NO, KC_NO, K5O }, \ +/* 04 */ { KC_NO, KC_NO, K4B, K4C, K4D, K4E, K5K, K4H, K4I, K4J, K4K, K5L, K5M, K3Q, K3P, K5N }, \ +/* 05 */ { K0A, KC_NO, K4A, K5B, K5C, K4F, K5J, K4G, K4M, K5I, K4L, K3O, K4O, K4Q, K4P, KC_NO }, \ +/* 06 */ { KC_NO, K1A, K3A, K2A, K5D, K3F, K4N, K3G, K3M, K5H, K3L, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ +/* 07 */ { KC_NO, KC_NO, K5A, KC_NO, K5E, K2F, K5F, K2G, K5G, KC_NO, K2L, KC_NO, KC_NO, KC_NO, K1N, K0B }, \ +} +/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ diff --git a/keyboards/converter/modelm_ssk/readme.md b/keyboards/converter/modelm_ssk/readme.md new file mode 100644 index 000000000000..8105a0c2dfd3 --- /dev/null +++ b/keyboards/converter/modelm_ssk/readme.md @@ -0,0 +1,55 @@ +# modelm_ssk + +![IBM Model M Space-Saving Keyboard](https://i.imgur.com/CSXrQI5.jpg) + +This is a QMK firmware configuration for the IBM Model M Space-Saving Keyboard (SSK). Based on [this project](https://github.com/qmk/qmk_firmware/tree/master/keyboards/converter/modelm101), it features a few slight improvements and, most importantly, a full remapping to match the SSK's matrix, which differs from its full-sized cousins. The modification is easily reversible, as no part of the keyboard is permanently changed. Just take out the replacement controller and reinstall the original, should you desire. + +The numpad layer (accessed with Shift + Scroll Lock as with the original controller) is mapped to layer 7 by default. All non-numpad keys are transparent. + +**Note:** As of this writing, this configuration has only been tested on the 1392464 SSK. It's possible other models differ in their internal matrices. Should the provided matrix not work for you (and you are certain of your connections), you can enable debugging with `CONSOLE_ENABLE = yes` in `rules.mk` and by following the directions in `default/keymap.c`. Once done, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) will display row/col information to help you remap `modelm_ssk.h`. + +## Requirements + +* [Teensy++ 2.0](https://www.pjrc.com/store/teensypp.html) - I recommend buying one with pins already attached +* A Trio-Mate 16-pin ribbon connector (6-520315-6 or 6-520415-6) +* A Trio-Mate 8-pin ribbon connector (5-120628-8 or 5-520314-8). Alternatively, two 16-pin connectors can be used if the 8-pin is out of stock. Just be sure to line up your pins correctly +* Breadboard or perfboard. A perfboard is recommended due to its reduced height and low clearance inside the chassis +* Mini-B to USB-A cable +* Jumper wires and wire strippers/cutters +* Soldering iron if not using a breadboard + +## Setup + +![Finished controller](https://i.imgur.com/m1yuo4F.jpg) + +The controller uses the following mapping (in zero-indexed hex): + +``` +Column: 0 1 2 3 4 5 6 7 8 9 A B C D E F +Pin: C7 C6 C5 C4 C3 C2 C1 C0 E1 E0 D7 D5 D4 D3 D2 D1 +-------------------------------------------------------- +Row: 0 1 2 3 4 5 6 7 +Pin: F0 F1 F2 F3 F4 F5 F6 F7 +``` + +**IMPORTANT:** It is necessary to skip pin D6 on the Teensy. There is an LED attached to this pin, which can cause interference with registering keys. Alternatively, you can remove the LED from the board, which is likely to be a permanent modification of the Teensy. The choice is yours. I am not responsible for any damage to your Teensy or keyboard. + +## A note on the Unicomp Mini M + +This configuration will not work out of the box with the [Unicomp Mini M](https://www.pckeyboard.com/page/product/MINI_M). That keyboard uses a 16x12 matrix rather than the SSK's 16x8 in order to reduce occurrences of 2KRO lockup. It also features lock lights, which the SSK lacks. However, it should be possible to map out the Mini M's matrix to get it working. + +## Maintainer + +* Keyboard Maintainer: [tiltowait](https://github.com/tiltowait), original work by [iw0rm3r](https://github.com/iw0rm3r) +* Hardware Supported: Teensy 2.0++ board by PJRC +* Hardware Availability: https://www.pjrc.com/store/teensypp.html + +## Building + +Make example for this keyboard (after setting up your build environment): + + make converter/modelm_ssk:default + +You must press the button on the Teensy to enter the bootloader the first time. Afterward, so long as you keep `COMMAND_ENABLE = yes` in `rules.mk` (enabled by default), you can use `Left Shift + Right Shift + B` to enter the bootloader. With this method, you can omit `:teensy` from the end of the `make` command. + +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). diff --git a/keyboards/converter/modelm_ssk/rules.mk b/keyboards/converter/modelm_ssk/rules.mk new file mode 100644 index 000000000000..31dbac78be34 --- /dev/null +++ b/keyboards/converter/modelm_ssk/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = at90usb1286 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# Do not enable NKRO_ENABLE. The SSK lacks diodes and cannot support it +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From c1add5d0e278da55128964dc305b833fb0bbc063 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 20 Aug 2021 16:16:59 +0100 Subject: [PATCH 307/328] Restore layout count validation (#14068) --- lib/python/qmk/info.py | 41 ++++++----------------------------------- 1 file changed, 6 insertions(+), 35 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index d23b3592eea2..5fc14dc859e9 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -341,39 +341,6 @@ def _extract_rules_mk(info_data): return info_data -def _merge_layouts(info_data, new_info_data): - """Merge new_info_data into info_data in an intelligent way. - """ - for layout_name, layout_json in new_info_data['layouts'].items(): - if layout_name in info_data['layouts']: - # Pull in layouts we have a macro for - if len(info_data['layouts'][layout_name]['layout']) != len(layout_json['layout']): - msg = '%s: %s: Number of elements in info.json does not match! info.json:%s != %s:%s' - _log_error(info_data, msg % (info_data['keyboard_folder'], layout_name, len(layout_json['layout']), layout_name, len(info_data['layouts'][layout_name]['layout']))) - else: - for i, key in enumerate(info_data['layouts'][layout_name]['layout']): - key.update(layout_json['layout'][i]) - else: - # Pull in layouts that have matrix data - missing_matrix = False - for key in layout_json.get('layout', {}): - if 'matrix' not in key: - missing_matrix = True - - if not missing_matrix: - if layout_name in info_data['layouts']: - # Update an existing layout with new data - for i, key in enumerate(info_data['layouts'][layout_name]['layout']): - key.update(layout_json['layout'][i]) - - else: - # Copy in the new layout wholesale - layout_json['c_macro'] = False - info_data['layouts'][layout_name] = layout_json - - return info_data - - def _search_keyboard_h(path): current_path = Path('keyboards/') aliases = {} @@ -511,8 +478,12 @@ def merge_info_jsons(keyboard, info_data): layout_name = info_data['layout_aliases'][layout_name] if layout_name in info_data['layouts']: - for new_key, existing_key in zip(layout['layout'], info_data['layouts'][layout_name]['layout']): - existing_key.update(new_key) + if len(info_data['layouts'][layout_name]['layout']) != len(layout['layout']): + msg = '%s: %s: Number of elements in info.json does not match! info.json:%s != %s:%s' + _log_error(info_data, msg % (info_data['keyboard_folder'], layout_name, len(layout['layout']), layout_name, len(info_data['layouts'][layout_name]['layout']))) + else: + for new_key, existing_key in zip(layout['layout'], info_data['layouts'][layout_name]['layout']): + existing_key.update(new_key) else: layout['c_macro'] = False info_data['layouts'][layout_name] = layout From 30bb807c13a5787164bd63fa17a97c0870a60198 Mon Sep 17 00:00:00 2001 From: Weirdo <1248314361@qq.com> Date: Sat, 21 Aug 2021 01:32:53 +0800 Subject: [PATCH 308/328] [Keyboard] Add Naiping series keyboard (#14040) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/naiping/np64/chconf.h | 24 ++++++ keyboards/naiping/np64/config.h | 52 ++++++++++++ keyboards/naiping/np64/info.json | 77 ++++++++++++++++++ .../naiping/np64/keymaps/default/keymap.c | 38 +++++++++ keyboards/naiping/np64/keymaps/via/keymap.c | 47 +++++++++++ keyboards/naiping/np64/keymaps/via/rules.mk | 1 + keyboards/naiping/np64/np64.c | 16 ++++ keyboards/naiping/np64/np64.h | 31 ++++++++ keyboards/naiping/np64/readme.md | 17 ++++ keyboards/naiping/np64/rules.mk | 23 ++++++ keyboards/naiping/nphhkb/chconf.h | 24 ++++++ keyboards/naiping/nphhkb/config.h | 52 ++++++++++++ keyboards/naiping/nphhkb/info.json | 75 ++++++++++++++++++ .../naiping/nphhkb/keymaps/default/keymap.c | 40 ++++++++++ keyboards/naiping/nphhkb/keymaps/via/keymap.c | 51 ++++++++++++ keyboards/naiping/nphhkb/keymaps/via/rules.mk | 1 + keyboards/naiping/nphhkb/nphhkb.c | 16 ++++ keyboards/naiping/nphhkb/nphhkb.h | 32 ++++++++ keyboards/naiping/nphhkb/readme.md | 17 ++++ keyboards/naiping/nphhkb/rules.mk | 23 ++++++ keyboards/naiping/npminila/chconf.h | 24 ++++++ keyboards/naiping/npminila/config.h | 51 ++++++++++++ keyboards/naiping/npminila/info.json | 79 +++++++++++++++++++ .../naiping/npminila/keymaps/default/keymap.c | 39 +++++++++ .../naiping/npminila/keymaps/via/keymap.c | 47 +++++++++++ .../naiping/npminila/keymaps/via/rules.mk | 1 + keyboards/naiping/npminila/npminila.c | 16 ++++ keyboards/naiping/npminila/npminila.h | 30 +++++++ keyboards/naiping/npminila/readme.md | 17 ++++ keyboards/naiping/npminila/rules.mk | 23 ++++++ 30 files changed, 984 insertions(+) create mode 100644 keyboards/naiping/np64/chconf.h create mode 100644 keyboards/naiping/np64/config.h create mode 100644 keyboards/naiping/np64/info.json create mode 100644 keyboards/naiping/np64/keymaps/default/keymap.c create mode 100644 keyboards/naiping/np64/keymaps/via/keymap.c create mode 100644 keyboards/naiping/np64/keymaps/via/rules.mk create mode 100644 keyboards/naiping/np64/np64.c create mode 100644 keyboards/naiping/np64/np64.h create mode 100644 keyboards/naiping/np64/readme.md create mode 100644 keyboards/naiping/np64/rules.mk create mode 100644 keyboards/naiping/nphhkb/chconf.h create mode 100644 keyboards/naiping/nphhkb/config.h create mode 100644 keyboards/naiping/nphhkb/info.json create mode 100644 keyboards/naiping/nphhkb/keymaps/default/keymap.c create mode 100644 keyboards/naiping/nphhkb/keymaps/via/keymap.c create mode 100644 keyboards/naiping/nphhkb/keymaps/via/rules.mk create mode 100644 keyboards/naiping/nphhkb/nphhkb.c create mode 100644 keyboards/naiping/nphhkb/nphhkb.h create mode 100644 keyboards/naiping/nphhkb/readme.md create mode 100644 keyboards/naiping/nphhkb/rules.mk create mode 100644 keyboards/naiping/npminila/chconf.h create mode 100644 keyboards/naiping/npminila/config.h create mode 100644 keyboards/naiping/npminila/info.json create mode 100644 keyboards/naiping/npminila/keymaps/default/keymap.c create mode 100644 keyboards/naiping/npminila/keymaps/via/keymap.c create mode 100644 keyboards/naiping/npminila/keymaps/via/rules.mk create mode 100644 keyboards/naiping/npminila/npminila.c create mode 100644 keyboards/naiping/npminila/npminila.h create mode 100644 keyboards/naiping/npminila/readme.md create mode 100644 keyboards/naiping/npminila/rules.mk diff --git a/keyboards/naiping/np64/chconf.h b/keyboards/naiping/np64/chconf.h new file mode 100644 index 000000000000..5884dd8b0bde --- /dev/null +++ b/keyboards/naiping/np64/chconf.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Weirdo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// Need to override the SysTick timer to use TIM3 -- this is a 16-bit timer on F303 +// so we need to change resolution and frequency to match. +#define CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next diff --git a/keyboards/naiping/np64/config.h b/keyboards/naiping/np64/config.h new file mode 100644 index 000000000000..f2eb83a9a00b --- /dev/null +++ b/keyboards/naiping/np64/config.h @@ -0,0 +1,52 @@ + /* Copyright 2021 Weirdo + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7764 +#define PRODUCT_ID 0x7064 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Weirdo +#define PRODUCT NP64 + + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { E6, B7, F7, F4, F5 } +#define MATRIX_COL_PINS { F6, B0, F1, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1 } +#define DIODE_DIRECTION ROW2COL +#define DEBOUNCE 5 + + + +#define RGB_DI_PIN B1 +#define RGBLED_NUM 80 +//#define RGBLIGHT_DISABLE_KEYCODES + + + + +/* 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/naiping/np64/info.json b/keyboards/naiping/np64/info.json new file mode 100644 index 000000000000..853ffcbcc028 --- /dev/null +++ b/keyboards/naiping/np64/info.json @@ -0,0 +1,77 @@ +{ + "keyboard_name": "np64", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0E", "x":13, "y":0, "w":2}, + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K12", "x":1.5, "y":1}, + {"label":"K13", "x":2.5, "y":1}, + {"label":"K14", "x":3.5, "y":1}, + {"label":"K15", "x":4.5, "y":1}, + {"label":"K16", "x":5.5, "y":1}, + {"label":"K17", "x":6.5, "y":1}, + {"label":"K18", "x":7.5, "y":1}, + {"label":"K19", "x":8.5, "y":1}, + {"label":"K1A", "x":9.5, "y":1}, + {"label":"K1B", "x":10.5, "y":1}, + {"label":"K1C", "x":11.5, "y":1}, + {"label":"K1D", "x":12.5, "y":1}, + {"label":"K1E", "x":13.5, "y":1, "w":1.5}, + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K22", "x":1.75, "y":2}, + {"label":"K23", "x":2.75, "y":2}, + {"label":"K24", "x":3.75, "y":2}, + {"label":"K25", "x":4.75, "y":2}, + {"label":"K26", "x":5.75, "y":2}, + {"label":"K27", "x":6.75, "y":2}, + {"label":"K28", "x":7.75, "y":2}, + {"label":"K29", "x":8.75, "y":2}, + {"label":"K2A", "x":9.75, "y":2}, + {"label":"K2B", "x":10.75, "y":2}, + {"label":"K2C", "x":11.75, "y":2}, + {"label":"K2E", "x":12.75, "y":2, "w":2.25}, + {"label":"K30", "x":0, "y":3, "w":2}, + {"label":"K32", "x":2, "y":3}, + {"label":"K33", "x":3, "y":3}, + {"label":"K34", "x":4, "y":3}, + {"label":"K35", "x":5, "y":3}, + {"label":"K36", "x":6, "y":3}, + {"label":"K37", "x":7, "y":3}, + {"label":"K38", "x":8, "y":3}, + {"label":"K39", "x":9, "y":3}, + {"label":"K3A", "x":10, "y":3}, + {"label":"K3B", "x":11, "y":3}, + {"label":"K3C", "x":12, "y":3}, + {"label":"K3D", "x":13, "y":3}, + {"label":"K3E", "x":14, "y":3}, + {"label":"K40", "x":0, "y":4, "w":1.25}, + {"label":"K41", "x":1.25, "y":4, "w":1.25}, + {"label":"K42", "x":2.5, "y":4, "w":1.25}, + {"label":"K46", "x":3.75, "y":4, "w":6.25}, + {"label":"K4A", "x":10, "y":4}, + {"label":"K4B", "x":11, "y":4}, + {"label":"K4C", "x":12, "y":4}, + {"label":"K4D", "x":13, "y":4}, + {"label":"K4E", "x":14, "y":4} + ] + } + } +} diff --git a/keyboards/naiping/np64/keymaps/default/keymap.c b/keyboards/naiping/np64/keymaps/default/keymap.c new file mode 100644 index 000000000000..18a40b45b7c6 --- /dev/null +++ b/keyboards/naiping/np64/keymaps/default/keymap.c @@ -0,0 +1,38 @@ + /* Copyright 2021 Weirdo + * + * 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 + + +// [Keymaps] -----------------------------------------------------------------// +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + + [_FN] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // +}; diff --git a/keyboards/naiping/np64/keymaps/via/keymap.c b/keyboards/naiping/np64/keymaps/via/keymap.c new file mode 100644 index 000000000000..01d0cba548d4 --- /dev/null +++ b/keyboards/naiping/np64/keymaps/via/keymap.c @@ -0,0 +1,47 @@ + /* Copyright 2021 Weirdo + * + * 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 + + +// [Keymaps] -----------------------------------------------------------------// +enum layer_names { _BASE, _FN ,_FN1 ,_FN2 }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + + [_FN] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // + + [_FN1] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_FN2] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/naiping/np64/keymaps/via/rules.mk b/keyboards/naiping/np64/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/naiping/np64/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/naiping/np64/np64.c b/keyboards/naiping/np64/np64.c new file mode 100644 index 000000000000..c5602d55f3ba --- /dev/null +++ b/keyboards/naiping/np64/np64.c @@ -0,0 +1,16 @@ + /* Copyright 2021 Weirdo + * + * 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 "np64.h" diff --git a/keyboards/naiping/np64/np64.h b/keyboards/naiping/np64/np64.h new file mode 100644 index 000000000000..a854712228c3 --- /dev/null +++ b/keyboards/naiping/np64/np64.h @@ -0,0 +1,31 @@ +/* +Copyright 2021 Weirdo +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#include "quantum.h" + + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E}, \ + {K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E}, \ + {K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E}, \ + {K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E}, \ + {K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO,KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E} \ +} diff --git a/keyboards/naiping/np64/readme.md b/keyboards/naiping/np64/readme.md new file mode 100644 index 000000000000..03b16c4bcca1 --- /dev/null +++ b/keyboards/naiping/np64/readme.md @@ -0,0 +1,17 @@ +# NP_64 + +![NP_64](https://i.imgur.com/DzLy87M.png) + +A 60% keyboard based on STM32f303 + +* Keyboard Maintainer: [Weirdo](https://weirdo-f.github.io)(https://github.com/1248314361) +* Hardware Supported: NP_64 +* Hardware Availability: Not yet + +Make example for this keyboard (after setting up your build environment): + + make naiping/np64:default + +The RST pin and GND pin on the board can be quickly shortened twice to enter DFU mode, and then the program can be written. + +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). diff --git a/keyboards/naiping/np64/rules.mk b/keyboards/naiping/np64/rules.mk new file mode 100644 index 000000000000..c8646b2f9133 --- /dev/null +++ b/keyboards/naiping/np64/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/naiping/nphhkb/chconf.h b/keyboards/naiping/nphhkb/chconf.h new file mode 100644 index 000000000000..5884dd8b0bde --- /dev/null +++ b/keyboards/naiping/nphhkb/chconf.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Weirdo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// Need to override the SysTick timer to use TIM3 -- this is a 16-bit timer on F303 +// so we need to change resolution and frequency to match. +#define CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next diff --git a/keyboards/naiping/nphhkb/config.h b/keyboards/naiping/nphhkb/config.h new file mode 100644 index 000000000000..26993eeb7ff3 --- /dev/null +++ b/keyboards/naiping/nphhkb/config.h @@ -0,0 +1,52 @@ + /* Copyright 2021 Weirdo + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7764 +#define PRODUCT_ID 0x7068 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Weirdo +#define PRODUCT NPhhkb + + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_COL_PINS { A4, C15, C14, A5, A6, A15, B1, B10, B12, B13, B14, B15, B6, A8, B5} +#define MATRIX_ROW_PINS { B7, B8, B9, C13, B4} +#define DIODE_DIRECTION ROW2COL +#define DEBOUNCE 5 + + + +#define RGB_DI_PIN A7 +#define RGBLED_NUM 78 +//#define RGBLIGHT_DISABLE_KEYCODES + + + + +/* 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/naiping/nphhkb/info.json b/keyboards/naiping/nphhkb/info.json new file mode 100644 index 000000000000..3e7f23efcef9 --- /dev/null +++ b/keyboards/naiping/nphhkb/info.json @@ -0,0 +1,75 @@ +{ + "keyboard_name": "NP_hhkb", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00)", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0}, + {"label":"K0E ", "x":14, "y":0}, + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K11", "x":1.5, "y":1}, + {"label":"K12", "x":2.5, "y":1}, + {"label":"K13", "x":3.5, "y":1}, + {"label":"K14", "x":4.5, "y":1}, + {"label":"K15", "x":5.5, "y":1}, + {"label":"K16", "x":6.5, "y":1}, + {"label":"K17", "x":7.5, "y":1}, + {"label":"K18", "x":8.5, "y":1}, + {"label":"K19", "x":9.5, "y":1}, + {"label":"K1A", "x":10.5, "y":1}, + {"label":"K1B", "x":11.5, "y":1}, + {"label":"K1C", "x":12.5, "y":1}, + {"label":"K1D", "x":13.5, "y":1, "w":1.5}, + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K21", "x":1.75, "y":2}, + {"label":"K22", "x":2.75, "y":2}, + {"label":"K23", "x":3.75, "y":2}, + {"label":"K24", "x":4.75, "y":2}, + {"label":"K25", "x":5.75, "y":2}, + {"label":"K26", "x":6.75, "y":2}, + {"label":"K27", "x":7.75, "y":2}, + {"label":"K28", "x":8.75, "y":2}, + {"label":"K29", "x":9.75, "y":2}, + {"label":"K2A", "x":10.75, "y":2}, + {"label":"K2B", "x":11.75, "y":2}, + {"label":"K2D", "x":12.75, "y":2, "w":2.25}, + {"label":"K30", "x":0, "y":3, "w":2.25}, + {"label":"K31", "x":2.25, "y":3}, + {"label":"K32", "x":3.25, "y":3}, + {"label":"K33", "x":4.25, "y":3}, + {"label":"K34", "x":5.25, "y":3}, + {"label":"K35", "x":6.25, "y":3}, + {"label":"K36", "x":7.25, "y":3}, + {"label":"K37", "x":8.25, "y":3}, + {"label":"K38", "x":9.25, "y":3}, + {"label":"K39", "x":10.25, "y":3}, + {"label":"K3A", "x":11.25, "y":3}, + {"label":"K3B", "x":12.25, "y":3, "w":1.75}, + {"label":"K3D", "x":14, "y":3}, + {"label":"K40", "x":0, "y":4, "w":1.5}, + {"label":"K41", "x":1.5, "y":4}, + {"label":"K42", "x":2.5, "y":4, "w":1.5}, + {"label":"K46", "x":4, "y":4, "w":7}, + {"label":"K4A", "x":11, "y":4, "w":1.5}, + {"label":"K4B", "x":12.5, "y":4}, + {"label":"K4D", "x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/naiping/nphhkb/keymaps/default/keymap.c b/keyboards/naiping/nphhkb/keymaps/default/keymap.c new file mode 100644 index 000000000000..cf482ff21eaa --- /dev/null +++ b/keyboards/naiping/nphhkb/keymaps/default/keymap.c @@ -0,0 +1,40 @@ + /* Copyright 2021 Weirdo + * + * 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 + + +// [Keymaps] -----------------------------------------------------------------// +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_TRNS, KC_LALT, KC_LCTL, KC_SPC, KC_RCTL, KC_RALT, KC_TRNS ), + + + [_FN] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/naiping/nphhkb/keymaps/via/keymap.c b/keyboards/naiping/nphhkb/keymaps/via/keymap.c new file mode 100644 index 000000000000..39c81024e8c0 --- /dev/null +++ b/keyboards/naiping/nphhkb/keymaps/via/keymap.c @@ -0,0 +1,51 @@ + /* Copyright 2021 Weirdo + * + * 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 + + +// [Keymaps] -----------------------------------------------------------------// +enum layer_names { _BASE, _FN ,_FN1 ,_FN2 }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_TRNS, KC_LALT, KC_LCTL, KC_SPC, KC_RCTL, KC_RALT, KC_TRNS ), + + + [_FN] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), // + + [_FN1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + + [_FN2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/naiping/nphhkb/keymaps/via/rules.mk b/keyboards/naiping/nphhkb/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/naiping/nphhkb/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/naiping/nphhkb/nphhkb.c b/keyboards/naiping/nphhkb/nphhkb.c new file mode 100644 index 000000000000..881522c0b3ad --- /dev/null +++ b/keyboards/naiping/nphhkb/nphhkb.c @@ -0,0 +1,16 @@ + /* Copyright 2021 Weirdo + * + * 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 "nphhkb.h" diff --git a/keyboards/naiping/nphhkb/nphhkb.h b/keyboards/naiping/nphhkb/nphhkb.h new file mode 100644 index 000000000000..3898abf776f4 --- /dev/null +++ b/keyboards/naiping/nphhkb/nphhkb.h @@ -0,0 +1,32 @@ +/* +Copyright 2021 Weirdo +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + 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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K46, K4A, K4B, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { 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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, ___ }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, ___ } \ +} diff --git a/keyboards/naiping/nphhkb/readme.md b/keyboards/naiping/nphhkb/readme.md new file mode 100644 index 000000000000..e16f0e3fec99 --- /dev/null +++ b/keyboards/naiping/nphhkb/readme.md @@ -0,0 +1,17 @@ +# NP_hhkb + +![NP_hhkb](https://i.imgur.com/XnA4qVU.png) + +A 60% keyboard based on STM32f303 + +* Keyboard Maintainer: [Weirdo](https://weirdo-f.github.io)(https://github.com/1248314361) +* Hardware Supported: NP_hhkb +* Hardware Availability: Not yet + +Make example for this keyboard (after setting up your build environment): + + make naiping/nphhkb:default + +The RST pin and GND pin on the board can be quickly shortened twice to enter DFU mode, and then the program can be written. + +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). diff --git a/keyboards/naiping/nphhkb/rules.mk b/keyboards/naiping/nphhkb/rules.mk new file mode 100644 index 000000000000..c8646b2f9133 --- /dev/null +++ b/keyboards/naiping/nphhkb/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/naiping/npminila/chconf.h b/keyboards/naiping/npminila/chconf.h new file mode 100644 index 000000000000..5884dd8b0bde --- /dev/null +++ b/keyboards/naiping/npminila/chconf.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Weirdo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// Need to override the SysTick timer to use TIM3 -- this is a 16-bit timer on F303 +// so we need to change resolution and frequency to match. +#define CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next diff --git a/keyboards/naiping/npminila/config.h b/keyboards/naiping/npminila/config.h new file mode 100644 index 000000000000..f18b36d8e7c1 --- /dev/null +++ b/keyboards/naiping/npminila/config.h @@ -0,0 +1,51 @@ + /* Copyright 2021 Weirdo + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7764 +#define PRODUCT_ID 0x706D +#define DEVICE_VER 0x0001 +#define MANUFACTURER Weirdo +#define PRODUCT NPminila + + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_ROW_PINS { E6, B7, F7, F4, F5 } +#define MATRIX_COL_PINS { F6, B0, F1, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2 } +#define DIODE_DIRECTION ROW2COL +#define DEBOUNCE 5 + + +#define RGB_DI_PIN D1 +#define RGBLED_NUM 82 +//#define RGBLIGHT_DISABLE_KEYCODES + + + + +/* 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/naiping/npminila/info.json b/keyboards/naiping/npminila/info.json new file mode 100644 index 000000000000..866a72459c5e --- /dev/null +++ b/keyboards/naiping/npminila/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "NP_minila", + "url": "", + "maintainer": "qmk", + "width": 14, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0, "w":2}, + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K11", "x":1.5, "y":1}, + {"label":"K12", "x":2.5, "y":1}, + {"label":"K13", "x":3.5, "y":1}, + {"label":"K14", "x":4.5, "y":1}, + {"label":"K15", "x":5.5, "y":1}, + {"label":"K16", "x":6.5, "y":1}, + {"label":"K17", "x":7.5, "y":1}, + {"label":"K18", "x":8.5, "y":1}, + {"label":"K19", "x":9.5, "y":1}, + {"label":"K1A", "x":10.5, "y":1}, + {"label":"K1B", "x":11.5, "y":1}, + {"label":"K1C", "x":12.5, "y":1}, + {"label":"K1D", "x":13.5, "y":1, "w":1.5}, + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K21", "x":1.75, "y":2}, + {"label":"K22", "x":2.75, "y":2}, + {"label":"K23", "x":3.75, "y":2}, + {"label":"K24", "x":4.75, "y":2}, + {"label":"K25", "x":5.75, "y":2}, + {"label":"K26", "x":6.75, "y":2}, + {"label":"K27", "x":7.75, "y":2}, + {"label":"K28", "x":8.75, "y":2}, + {"label":"K29", "x":9.75, "y":2}, + {"label":"K2A", "x":10.75, "y":2}, + {"label":"K2B", "x":11.75, "y":2}, + {"label":"K2D", "x":12.75, "y":2, "w":2.25}, + {"label":"K30", "x":0, "y":3, "w":2}, + {"label":"K31", "x":2, "y":3}, + {"label":"K32", "x":3, "y":3}, + {"label":"K33", "x":4, "y":3}, + {"label":"K34", "x":5, "y":3}, + {"label":"K35", "x":6, "y":3}, + {"label":"K36", "x":7, "y":3}, + {"label":"K37", "x":8, "y":3}, + {"label":"K38", "x":9, "y":3}, + {"label":"K39", "x":10, "y":3}, + {"label":"K3A", "x":11, "y":3}, + {"label":"K3B", "x":12, "y":3}, + {"label":"K3C", "x":13, "y":3}, + {"label":"K3D", "x":14, "y":3}, + {"label":"K40", "x":0, "y":4, "w":1.75}, + {"label":"K41", "x":1.75, "y":4, "w":1.25}, + {"label":"K42", "x":3, "y":4, "w":1.25}, + {"label":"K43", "x":4.25, "y":4, "w":1.25}, + {"label":"K46", "x":5.5, "y":4, "w":2.75}, + {"label":"K48", "x":8.25, "y":4, "w":1.25}, + {"label":"K49", "x":9.5, "y":4, "w":1.25}, + {"label":"K4A", "x":10.75, "y":4, "w":1.25}, + {"label":"K4B", "x":12, "y":4}, + {"label":"K4C", "x":13, "y":4}, + {"label":"K4D", "x":14, "y":4} + ] + } + } +} diff --git a/keyboards/naiping/npminila/keymaps/default/keymap.c b/keyboards/naiping/npminila/keymaps/default/keymap.c new file mode 100644 index 000000000000..30d6bf291e32 --- /dev/null +++ b/keyboards/naiping/npminila/keymaps/default/keymap.c @@ -0,0 +1,39 @@ + /* Copyright 2021 Weirdo + * + * 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 + + +// [Keymaps] -----------------------------------------------------------------// +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LWIN, KC_LALT, MO(1), KC_SPACE, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + + [_FN] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/naiping/npminila/keymaps/via/keymap.c b/keyboards/naiping/npminila/keymaps/via/keymap.c new file mode 100644 index 000000000000..10ec385de9ae --- /dev/null +++ b/keyboards/naiping/npminila/keymaps/via/keymap.c @@ -0,0 +1,47 @@ + /* Copyright 2021 Weirdo + * + * 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 + + +// [Keymaps] -----------------------------------------------------------------// +enum layer_names { _BASE, _FN ,_FN1 ,_FN2 }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LWIN, KC_LALT, MO(1), KC_SPACE, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + + [_FN] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // + + [_FN1] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_FN2] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/naiping/npminila/keymaps/via/rules.mk b/keyboards/naiping/npminila/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/naiping/npminila/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/naiping/npminila/npminila.c b/keyboards/naiping/npminila/npminila.c new file mode 100644 index 000000000000..ab9ebb45d7bd --- /dev/null +++ b/keyboards/naiping/npminila/npminila.c @@ -0,0 +1,16 @@ + /* Copyright 2021 Weirdo + * + * 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 "npminila.h" diff --git a/keyboards/naiping/npminila/npminila.h b/keyboards/naiping/npminila/npminila.h new file mode 100644 index 000000000000..423e45a9e772 --- /dev/null +++ b/keyboards/naiping/npminila/npminila.h @@ -0,0 +1,30 @@ +/* +Copyright 2021 Weirdo +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + 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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K43, K46, K48, K49, K4A, K4B, K4C, K4D) \ + { \ + {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, KC_NO, K2D}, \ + {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D}, \ + {K40, K41, K42, K43, KC_NO, KC_NO, K46, KC_NO,K48, K49, K4A, K4B, K4C, K4D} \ + } \ No newline at end of file diff --git a/keyboards/naiping/npminila/readme.md b/keyboards/naiping/npminila/readme.md new file mode 100644 index 000000000000..335e12508db8 --- /dev/null +++ b/keyboards/naiping/npminila/readme.md @@ -0,0 +1,17 @@ +# NP_minila + +![NP_minila](https://i.imgur.com/Cuy5W1H.png) + +A 60% keyboard based on STM32f303 + +* Keyboard Maintainer: [Weirdo](https://weirdo-f.github.io)(https://github.com/1248314361) +* Hardware Supported: NP_minila +* Hardware Availability: Not yet + +Make example for this keyboard (after setting up your build environment): + + make naiping/npminila:default + +The RST pin and GND pin on the board can be quickly shortened twice to enter DFU mode, and then the program can be written. + +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). diff --git a/keyboards/naiping/npminila/rules.mk b/keyboards/naiping/npminila/rules.mk new file mode 100644 index 000000000000..c8646b2f9133 --- /dev/null +++ b/keyboards/naiping/npminila/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From c71d67ba3f4bdedbd5ec1e931e6ea9568fcd0d98 Mon Sep 17 00:00:00 2001 From: Spaceman Date: Fri, 20 Aug 2021 18:31:26 -0400 Subject: [PATCH 309/328] [Core] [Docs] Remove travis-ci references (#13916) --- .travis.yml | 38 -------------------- docs/breaking_changes.md | 1 - docs/contributing.md | 2 +- docs/de/README.md | 1 - docs/es/README.md | 1 - docs/fr-fr/README.md | 1 - docs/fr-fr/breaking_changes.md | 1 - docs/fr-fr/contributing.md | 2 +- docs/he-il/README.md | 1 - docs/ja/README.md | 1 - docs/ja/breaking_changes.md | 1 - docs/ja/contributing.md | 2 +- docs/ja/other_vscode.md | 1 - docs/ko-kr/README.md | 1 - docs/other_vscode.md | 1 - docs/pt-br/README.md | 1 - docs/ru-ru/README.md | 1 - docs/zh-cn/README.md | 1 - readme.md | 1 - util/travis_build.sh | 40 --------------------- util/travis_compiled_push.sh | 63 ---------------------------------- util/travis_push.sh | 14 -------- util/travis_test.sh | 19 ---------- util/travis_utils.sh | 25 -------------- 24 files changed, 3 insertions(+), 217 deletions(-) delete mode 100644 .travis.yml delete mode 100755 util/travis_build.sh delete mode 100755 util/travis_compiled_push.sh delete mode 100755 util/travis_push.sh delete mode 100644 util/travis_test.sh delete mode 100755 util/travis_utils.sh diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 17f401da45c7..000000000000 --- a/.travis.yml +++ /dev/null @@ -1,38 +0,0 @@ -os: linux -dist: trusty -group: edge -language: c -branches: - except: - - /^.*-automated-build$/ - - /^[0-9]+\.[0-9]+\.[0-9]+/ -env: - global: - - secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM= - - MAKEFLAGS="-j3 --output-sync" -services: - - docker -addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-7 - packages: - - diffutils - - clang-format-7 - - libstdc++-7-dev -script: - - git fetch --depth=50 origin $TRAVIS_BRANCH:$TRAVIS_BRANCH - - git rev-parse --short HEAD - - git diff --name-only HEAD $TRAVIS_BRANCH - - bash util/travis_test.sh - - bash util/travis_build.sh -after_script: - bash util/travis_compiled_push.sh -notifications: - webhooks: - urls: - - https://webhooks.gitter.im/e/afce403d65f143dfac09 - on_success: always # options: [always|never|change] default: always - on_failure: always # options: [always|never|change] default: always - on_start: never # options: [always|never|change] default: always diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index b0d56a81bd29..754e6ec97d93 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -93,7 +93,6 @@ This happens immediately after the previous `develop` branch is merged. * [ ] `git push upstream develop` * GitHub Actions * [ ] Create a PR for `develop` - * [ ] Make sure travis comes back clean * [ ] **Turn off 'Automatically delete head branches' for the repository** -- confirm with @qmk/directors that it is done before continuing * `qmk_firmware` git commands * [ ] `git checkout master` diff --git a/docs/contributing.md b/docs/contributing.md index fe48619e4180..1d68d22d9f0e 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -148,7 +148,7 @@ Feature and Bug Fix PR's affect all keyboards. We are also in the process of res Here are some things to keep in mind when working on your feature or bug fix. * **Disabled by default** - memory is a pretty limited on most chips QMK supports, and it's important that current keymaps aren't broken, so please allow your feature to be turned **on**, rather than being turned off. If you think it should be on by default, or reduces the size of the code, please talk with us about it. -* **Compile locally before submitting** - hopefully this one is obvious, but things need to compile! Our Travis system will catch any issues, but it's generally faster for you to compile a few keyboards locally instead of waiting for the results to come back. +* **Compile locally before submitting** - hopefully this one is obvious, but things need to compile! You should always make sure your changes compile before opening a pull request. * **Consider revisions and different chip-bases** - there are several keyboards that have revisions that allow for slightly different configurations, and even different chip-bases. Try to make a feature supported in ARM and AVR, or automatically disabled on platforms it doesn't work on. * **Explain your feature** - Document it in `docs/`, either as a new file or as part of an existing file. If you don't document it other people won't be able to benefit from your hard work. diff --git a/docs/de/README.md b/docs/de/README.md index 5de496a201f4..f5f35d9d1c0d 100644 --- a/docs/de/README.md +++ b/docs/de/README.md @@ -1,7 +1,6 @@ # Quantum Mechanical Keyboard Firmware [![Aktuelle Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/docs/es/README.md b/docs/es/README.md index be063ad7c018..0d504fad05d2 100644 --- a/docs/es/README.md +++ b/docs/es/README.md @@ -1,7 +1,6 @@ # Firmware Quantum Mechanical Keyboard [![Versión actual](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Estado de Build](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Estado de la documentación](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![Contribuyentes en GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/docs/fr-fr/README.md b/docs/fr-fr/README.md index dfb9dcda4e94..3d1f740abb9a 100644 --- a/docs/fr-fr/README.md +++ b/docs/fr-fr/README.md @@ -1,7 +1,6 @@ # Quantum Mechanical Keyboard Firmware [![Version courante](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Statut du build](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Statut de la doc](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![Contributeurs GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/docs/fr-fr/breaking_changes.md b/docs/fr-fr/breaking_changes.md index 2dbb26e5a5bc..4c3817d2ef66 100644 --- a/docs/fr-fr/breaking_changes.md +++ b/docs/fr-fr/breaking_changes.md @@ -103,5 +103,4 @@ Ceci est fait immédiatement après la fusion de la branche `future` précédent * [ ] `git push origin future` * Actions sur GitHub * [ ] Crée un PR pour `future` - * [ ] S'assurer que Travis ne relève aucun problème * [ ] Fusion le PR `future` diff --git a/docs/fr-fr/contributing.md b/docs/fr-fr/contributing.md index 58931cf1f63f..d13587105542 100644 --- a/docs/fr-fr/contributing.md +++ b/docs/fr-fr/contributing.md @@ -134,7 +134,7 @@ Les PR de nouvelles fonctionnalités de de correction de bug affectent tous les Voici quelques choses à garder en tête lorsque vous travaillez sur une fonctionnalité ou un bug fix. * **Désactivé par défaut** - la mémoire est plutôt limitée sur la plupart des puces que QMK supporte, et il est important que les keymaps courantes ne soient pas cassées. S'il vous plaît faites que vos features doivent être **activées** plutôt que désactivées. Si vous pensez qu'elle devrait être activée par défaut, ou que cela réduit la taille du code, parlez-nous-en. -* **Compilez localement avant de soumettre** - Cela devrait aller sans dire, mais votre code doit compiler! Notre système Travis devrait relever les problèmes, mais il est généralement plus rapide de compiler quelques claviers en local plutôt que d'attendre le retour des résultats +* **Compilez localement avant de soumettre** - Cela devrait aller sans dire, mais votre code doit compiler! Vous devriez toujours faire gaffe à ce que vos changements compilent avant d'ouvrir une pull request. * **Faites attention aux révisions et différentes bases de puces** - beaucoup de claviers ont des révisions qui permettent des changements de configuration mineurs, voir des bases de chip différentes. Essayez de faire que votre fonctionnalité soit supportée à la fois sur ARM et AVR, ou désactivez-là automatiquement sur les plateformes non supportées. * **Expliquez votre fonctionnalité** - Documentez-là dans `docs/`, soit dans un nouveau fichier, ou dans une partie d'un fichier existant. Si vous ne la documentez pas, personne ne pourra bénéficier de votre dur labeur. diff --git a/docs/he-il/README.md b/docs/he-il/README.md index 3b0ff146185f..5c113eb498df 100644 --- a/docs/he-il/README.md +++ b/docs/he-il/README.md @@ -2,7 +2,6 @@ # קושחה עבור Quantum Mechanical Keyboard [![גירסה נוכחית](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![מצב הבניה](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![ערוץ דיסקורד](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![מצב מסמכים](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![תומכי GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/docs/ja/README.md b/docs/ja/README.md index c02a14b487ce..aefacbc414aa 100644 --- a/docs/ja/README.md +++ b/docs/ja/README.md @@ -6,7 +6,6 @@ --> [![現在のバージョン](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![ビルド状態](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![ドキュメントの状態](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub 貢献者](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/docs/ja/breaking_changes.md b/docs/ja/breaking_changes.md index 0f7256e684d6..35f583789733 100644 --- a/docs/ja/breaking_changes.md +++ b/docs/ja/breaking_changes.md @@ -117,5 +117,4 @@ git push --force * [ ] `git push origin develop` * GitHub Actions * [ ] `develop`の PR を作成します - * [ ] travis がクリーンに戻ったことを確認します * [ ] `develop` PR をマージします diff --git a/docs/ja/contributing.md b/docs/ja/contributing.md index cafdda21bce4..14ef598ea910 100644 --- a/docs/ja/contributing.md +++ b/docs/ja/contributing.md @@ -153,7 +153,7 @@ enum my_keycodes { 機能やバグの修正に取り組む時に留意すべき幾つかの事があります。 * **デフォルトで無効** - QMK がサポートするほとんどのチップでメモリがかなり制限されており、現在のキーマップが壊れていないことが重要です。ですので、あなたの機能をオフにするのではなく**オン**にするようにしてください。デフォルトでオンにすべき場合、あるいはコードのサイズを小さくする必要がある場合は、相談してください。 -* **サブミットする前にローカルでコンパイル** - これが明白であることを願っていますが、コンパイルする必要があります。私たちの Travis システムは全ての問題をキャッチしますが、結果が返ってくるのを待つ代わりに幾つかのキーボードをローカルでコンパイルする方が一般的に速いです。 +* **サブミットする前にローカルでコンパイル** - これが明白であることを願っていますが、コンパイルする必要があります。プルリクエストを作成する前に、変更した内容がコンパイルできるかどうかを常に確認する必要があります。 * **リビジョンと異なるチップベースを考慮** - 僅かに異なる設定、さらには異なるチップベースを可能にするリビジョンを持つキーボードが幾つかあります。ARM および AVR でサポートされる機能を作成する、あるいは動作しないプラットフォームでは自動的に無効化するようにしてください。 * **機能の説明** - 新しいファイルあるいは既存のファイルの一部として、`docs/` の中に文章化します。文章化しないと、他の人はあなたの苦労から利益を得ることができません。 diff --git a/docs/ja/other_vscode.md b/docs/ja/other_vscode.md index 906d6626daef..9250e16276bd 100644 --- a/docs/ja/other_vscode.md +++ b/docs/ja/other_vscode.md @@ -110,7 +110,6 @@ VS Code のようなフル機能のエディタの使用は、プレーンテキ * [GitHub Markdown Preview](https://marketplace.visualstudio.com/items?itemName=bierner.github-markdown-preview) - _[オプション]_ - VS Code の markdown プレビューを GithHub のようにします。 * [VS Live Share Extension Pack](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack) - _[オプション]_ - この拡張により、他の誰かがあなたのワークスペースにアクセスし(あるいは、あなたが他の誰かのワークスペースにアクセスし)、手伝うことができます。あなたが問題を抱えており、他の誰かの助けが必要な場合に便利です。 * [VIM Keymap](https://marketplace.visualstudio.com/items?itemName=GiuseppeCesarano.vim-keymap) - _[オプション]_ - VIM スタイルのキーバインドを好む人向け。これには他のオプションもあります。 -* [Travis CI Status](https://marketplace.visualstudio.com/items?itemName=felixrieseberg.vsc-travis-ci-status) - _[オプション]_ - セットアップした場合、現在の Travis CI の状態を表示します。 いずれかの拡張機能をインストールしたら、再起動します。 diff --git a/docs/ko-kr/README.md b/docs/ko-kr/README.md index 82e2be96187c..a3b5b9101117 100644 --- a/docs/ko-kr/README.md +++ b/docs/ko-kr/README.md @@ -1,7 +1,6 @@ # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/docs/other_vscode.md b/docs/other_vscode.md index 2de3c8cb453d..6af0a6f7b409 100644 --- a/docs/other_vscode.md +++ b/docs/other_vscode.md @@ -108,7 +108,6 @@ This installs a bunch of Git related tools that may make using Git with QMK Firm * [GitHub Markdown Preview](https://marketplace.visualstudio.com/items?itemName=bierner.github-markdown-preview) - _[Optional]_ - Makes the markdown preview in VS Code more like GitHub's. * [VS Live Share Extension Pack](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack) - _[Optional]_ - This extension allows somebody else to access your workspace (or you to access somebody else's workspace) and help out. This is great if you're having issues and need some help from somebody. * [VIM Keymap](https://marketplace.visualstudio.com/items?itemName=GiuseppeCesarano.vim-keymap) - _[Optional]_ - For those that prefer VIM style keybindings. There are other options for this, too. -* [Travis CI Status](https://marketplace.visualstudio.com/items?itemName=felixrieseberg.vsc-travis-ci-status) - _[Optional]_ - This shows the current Travis CI status, if you have it set up. Restart once you've installed any extensions diff --git a/docs/pt-br/README.md b/docs/pt-br/README.md index a8ba93f33a8e..bf8ec974eb97 100644 --- a/docs/pt-br/README.md +++ b/docs/pt-br/README.md @@ -1,7 +1,6 @@ # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/docs/ru-ru/README.md b/docs/ru-ru/README.md index d3c28fa44043..7218781540ec 100644 --- a/docs/ru-ru/README.md +++ b/docs/ru-ru/README.md @@ -1,7 +1,6 @@ # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/docs/zh-cn/README.md b/docs/zh-cn/README.md index 560b0a8ee69c..b42818d582f2 100644 --- a/docs/zh-cn/README.md +++ b/docs/zh-cn/README.md @@ -1,7 +1,6 @@ # QMK机械键盘固件 [![当前版本](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![开发状态](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![异议](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![文档状态](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub贡献者](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/readme.md b/readme.md index 6092f209be1a..5649ddfa097a 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,6 @@ # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/util/travis_build.sh b/util/travis_build.sh deleted file mode 100755 index a96cfcb57529..000000000000 --- a/util/travis_build.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash - -source util/travis_utils.sh - -if [[ "$TRAVIS_COMMIT_MESSAGE" == *"[skip build]"* ]]; then - echo "Skipping due to commit message" - exit 0 -fi - -if [ "$LOCAL_BRANCH" == "master" ] || [ "$NUM_CORE_CHANGES" != "0" ]; then - echo "Making default keymaps for all keyboards" - make all:default - exit $? -fi - -exit_code=0 - -for KB in $(make list-keyboards); do - KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)') - if [[ -z "$KEYBOARD_CHANGES" ]]; then - # skip as no changes for this keyboard - continue - fi - - KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/) - if [[ $KEYMAP_ONLY -gt 0 ]]; then - echo "Making all keymaps for $KB" - make ${KB}:all - : $((exit_code = $exit_code + $?)) - else - CHANGED_KEYMAPS=$(echo "$KEYBOARD_CHANGES" | grep -oP '(?<=keyboards/'${KB}'/keymaps/)([a-zA-Z0-9_-]+)(?=\/)') - for KM in $CHANGED_KEYMAPS ; do - echo "Making $KM for $KB" - make ${KB}:${KM} - : $((exit_code = $exit_code + $?)) - done - fi -done - -exit $exit_code diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh deleted file mode 100755 index 73a9e3bc4840..000000000000 --- a/util/travis_compiled_push.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env bash - -source util/travis_utils.sh -source util/travis_push.sh - -set -o errexit -o nounset - -rev=$(git rev-parse --short HEAD) -echo "Using git hash ${rev}" - -if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then - -git checkout master - -git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} - -if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then - make generate-keyboards-file SILENT=true > .keyboards - cd .. - git clone git@github.com:qmk/qmk.fm.git - cd qmk.fm - mv ../qmk_firmware/id_rsa_qmk.fm id_rsa_qmk.fm - mv ../qmk_firmware/.keyboards . - ssh-add -D - eval `ssh-agent -s` - ssh-add id_rsa_qmk.fm - - # don't delete files in case not all keyboards are built - # rm -f compiled/*.hex - - # ignore errors here - # In theory, this is more flexible, and will allow for additional expansion of additional types of files and other names - mv ../qmk_firmware/*_default.*{hex,bin} ./compiled/ || true - - # get the list of keyboards - readarray -t keyboards < .keyboards - - # replace / with _ - keyboards=("${keyboards[@]//[\/]/_}") - - # remove all binaries that don't belong to a keyboard in .keyboards - for file in "./compiled"/* ; do - match=0 - for keyboard in "${keyboards[@]}" ; do - if [[ ${file##*/} = "${keyboard}_default.bin" ]] || [[ ${file##*/} = "${keyboard}_default.hex" ]]; then - match=1 - break - fi - done - if [[ $match = 0 ]]; then - echo "Removing deprecated binary: $file" - rm "$file" - fi - done - - bash _util/generate_keyboard_page.sh - git add -A - git commit -m "generated from qmk/qmk_firmware@${rev}" - git push git@github.com:qmk/qmk.fm.git - -fi - -fi diff --git a/util/travis_push.sh b/util/travis_push.sh deleted file mode 100755 index 7f7d4c2c647d..000000000000 --- a/util/travis_push.sh +++ /dev/null @@ -1,14 +0,0 @@ -# Use this by sourcing it in your script. - -if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then - git config --global user.name "QMK Bot" - git config --global user.email "hello@qmk.fm" - - openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in secrets.tar.enc -out secrets.tar -d - tar xvf secrets.tar - - chmod 600 id_rsa_qmk_firmware - chmod 600 id_rsa_qmk.fm - eval `ssh-agent -s` - ssh-add id_rsa_qmk_firmware -fi diff --git a/util/travis_test.sh b/util/travis_test.sh deleted file mode 100644 index 9156147ca606..000000000000 --- a/util/travis_test.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -source util/travis_utils.sh - -if [[ "$TRAVIS_COMMIT_MESSAGE" == *"[skip test]"* ]]; then - echo "Skipping due to commit message" - exit 0 -fi - -exit_code=0 - -if [ "$LOCAL_BRANCH" == "master" ] || [ "$NUM_CORE_CHANGES" != "0" ]; then - echo "Running tests." - make test:all - : $((exit_code = $exit_code + $?)) - -fi - -exit $exit_code diff --git a/util/travis_utils.sh b/util/travis_utils.sh deleted file mode 100755 index e949946e222b..000000000000 --- a/util/travis_utils.sh +++ /dev/null @@ -1,25 +0,0 @@ -# Use this by sourcing it in your script. - -# Provide sane defaults for travis environment -TRAVIS_BRANCH="${TRAVIS_BRANCH:master}" -TRAVIS_PULL_REQUEST="${TRAVIS_PULL_REQUEST:false}" -TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}" -TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}" - -# test force push -#TRAVIS_COMMIT_RANGE="c287f1bfc5c8...81f62atc4c1d" - -# Extra variables -LOCAL_BRANCH=$(git rev-parse --abbrev-ref HEAD) -QMK_CHANGES=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}) -NUM_CORE_CHANGES=$(echo "$QMK_CHANGES" | grep -Ec -e '^Makefile' -e '^[^/]*.mk' -e '^drivers/' -e '^lib/atsam' -e '^lib/lib8tion/' -e '^platforms' -e '^quantum' -e '^tests' -e '^tmk_core') - -# if docker is installed - patch calls to within the qmk docker image -if command -v docker >/dev/null; then - function make() { - docker run --rm -e MAKEFLAGS="$MAKEFLAGS" -w /qmk_firmware/ -v "$PWD":/qmk_firmware --user $(id -u):$(id -g) qmkfm/base_container make "$@" - } - function qmk() { - docker run --rm -w /qmk_firmware/ -v "$PWD":/qmk_firmware --user $(id -u):$(id -g) qmkfm/base_container bin/qmk "$@" - } -fi From c1cad5b7516af745cc0a3ffde8c0cc9af63e5a1d Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 20 Aug 2021 21:13:02 -0700 Subject: [PATCH 310/328] [Keyboard] Fix naiping/npminila layout macro (#14098) --- keyboards/naiping/npminila/npminila.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/naiping/npminila/npminila.h b/keyboards/naiping/npminila/npminila.h index 423e45a9e772..3d0d927a0b66 100644 --- a/keyboards/naiping/npminila/npminila.h +++ b/keyboards/naiping/npminila/npminila.h @@ -27,4 +27,4 @@ along with this program. If not, see . {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D}, \ {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D}, \ {K40, K41, K42, K43, KC_NO, KC_NO, K46, KC_NO,K48, K49, K4A, K4B, K4C, K4D} \ - } \ No newline at end of file + } From b1b6fe1c3da1de17e56fc65499c61886cb0a298a Mon Sep 17 00:00:00 2001 From: Conor Burns Date: Sun, 22 Aug 2021 07:11:15 +0200 Subject: [PATCH 311/328] [Keymap] added bongocat keymap to 0xCB Static (#14093) Co-authored-by: Drashna Jaelre --- .../0xcb/static/keymaps/bongocat/keymap.c | 297 ++++++++++++++++++ .../0xcb/static/keymaps/bongocat/rules.mk | 2 + 2 files changed, 299 insertions(+) create mode 100644 keyboards/0xcb/static/keymaps/bongocat/keymap.c create mode 100644 keyboards/0xcb/static/keymaps/bongocat/rules.mk diff --git a/keyboards/0xcb/static/keymaps/bongocat/keymap.c b/keyboards/0xcb/static/keymaps/bongocat/keymap.c new file mode 100644 index 000000000000..d7f6db08cc9c --- /dev/null +++ b/keyboards/0xcb/static/keymaps/bongocat/keymap.c @@ -0,0 +1,297 @@ +/* +Copyright 2021 0xCB - Conor Burns + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H +// clang-format off +enum my_keycodes { + WPM = SAFE_RANGE, +}; +enum layer_names { + _HOME, + _FN2, + _FN3, + _FN4 +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_HOME] = LAYOUT_all( + KC_MPLY, + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) +), +[_FN2] = LAYOUT_all( + RESET, + 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[_FN3] = LAYOUT_all( + EEP_RST, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[_FN4] = LAYOUT_all( + _______, + WPM, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, + _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +}; +// clang-format on +/* WPM toggle key bongocat hehe */ +bool wpm = false; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case WPM: + if (record->event.pressed) { + wpm = !wpm; + } + return false; + default: + return true; + } +} +/*layer switcher */ +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _FN2, _FN3, _FN4); + return state; +} +/* rotary encoder (MX12) - add different functions for layers here */ +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (IS_LAYER_ON(_FN4)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (IS_LAYER_ON(_FN3)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (IS_LAYER_ON(_FN2)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +/* oled stuff :) */ +#ifdef OLED_DRIVER_ENABLE +#define IDLE_FRAMES 5 +#define IDLE_SPEED 20 // below this wpm value your animation will idle +#define TAP_FRAMES 2 +#define TAP_SPEED 40 // above this wpm value typing animation to trigger +#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms +#define ANIM_SIZE 636 // number of bytes in array + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +uint16_t startup_timer = 0; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 8, 0,192,194,192,192, 60, 60, 44, 60,188, 60, 60, 60, 60, 44, 61, 60,192,192,192,208, 1, 0,252,252,180,252, 60, 60, 44, 60,252,253,252,252, 60, 60, 44, 60,244,220,252,252, 0, 0, 16, 0, 0, 0,192,192, 65,192, 60, 60, 52, 60,192,193,192,192, 16, 0, 0,144, 4, 0,252,125,244, 60, 60, 60, 60, 61,252,252,244,252, 60, 60, 60, 61,248,108,252, 0, 0, 61, 60,188, 60, 52,252,252,220,252, 61, 60, 60, 52, 0, 0,192,210, 64,192, 60, 60, 44, 61, 60, 60, 60, 61, 52, 60, 60, 60,192,192, 64,196, 0, 4, 0, + 0, 16, 0, 61, 63, 55, 63,192, 64,192,196,192,192,192,200,192,196,192,192, 3, 3, 2, 11, 0, 0, 35, 3, 3, 3, 0, 64, 2, 0,255,255,253,247, 0, 0, 0, 32, 1, 0, 1, 65, 8, 0,189,244,252,236, 3,130, 3, 1, 0, 68, 0, 0, 3, 34,131, 3,252,252,236,252, 0, 32, 17, 1, 1, 0, 0, 32, 0, 2,255,255,127,247, 0, 1, 0, 8, 1, 1, 1, 0, 0, 0, 16, 0, 64, 0,255,191,255,251, 0,129, 0, 2, 32, 0,255,255,239,255, 0, 0, 2, 0, 0, 0, 8, 64, 0, 1, 0, 0, 3, 35, 3, 3, 0, 8, 0, + 1, 16, 0,192, 64,194,192, 3, 67, 3, 3, 9, 3, 3, 3, 3, 2, 83, 3,252,252,188,244, 0, 2, 32, 0, 0, 2, 0,144, 0, 0,255,255,237,255, 0, 16, 0, 0, 0, 64, 2, 0,128, 0,255,123,255,255, 60, 52, 60, 60, 60, 60, 60, 60, 44, 60, 56, 60,239,255,126,255, 0, 2, 32, 0, 0, 34, 0, 0, 16, 0,255,255,255,223, 0, 0, 4, 0, 0, 0, 33, 0, 0, 17, 0, 0, 0, 0,255,255,239,255, 0,128, 0, 0, 72, 0,255,253,247,255, 0, 0, 1, 0,144, 0, 4, 0, 32, 0, 0, 2,192,192,192,200, 0, 16, 0, + 64, 4, 0, 3, 7, 3, 3, 60, 60, 52,188, 60, 61, 60, 60, 60, 60, 44, 60, 67, 3, 3, 3, 0, 0, 64, 0, 0, 4, 0, 0, 16, 0, 47, 63, 62, 63, 0, 0,132, 0, 0, 0, 0,128, 8, 0,255,255,111,127, 0, 0, 0, 2,128, 0, 0, 0, 64, 4, 0,128,127,127,107,127, 0, 32, 0, 0, 0, 66, 0, 0, 0,136, 55, 63, 61, 63, 0, 0, 0, 2, 0, 64, 0,136, 0, 0, 60, 44,189, 60, 63, 63, 63, 59, 60, 60,172, 60, 0, 64, 3, 2, 3,131, 60, 44, 60, 60, 60, 60,188, 60, 56, 44, 60, 60, 3, 3,131, 2, 0, 32, 2, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} +/* Shows the name of the current layer and locks for the host (CAPS etc.) */ +static void render_layer(void) { + led_t led_state = host_keyboard_led_state(); + // clang-format off + static const char PROGMEM logo[][3][7] = { + {{0x97, 0x98, 0x99, 0x9A, 0}, {0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0}, {0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0}}, /* l num CB */ + {{0xB7, 0xB8, 0xB9, 0xBA, 0}, {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0}, {0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0}}, /* 1 num CB */ + {{0xD7, 0xD8, 0xD9, 0xDA, 0}, {0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0}, {0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0}}, /* 1 cap CB */ + {{0xF7, 0xF8, 0xF9, 0xFA, 0}, {0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0}, {0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0}}, /* l cap CB */ + {{0xB7, 0xC0, 0xC1, 0xBA, 0}, {0xB7, 0xC2, 0xC3, 0xBA, 0}, {0xB7, 0xC4, 0xC5, 0xBA, 0}}, /* 2 3 4 */ + {{0xD7, 0xE0, 0xE1, 0xDA, 0}, {0xD7, 0xE2, 0xE3, 0xDA, 0}, {0xD7, 0xE4, 0xE5, 0xDA, 0}}, /* 2 3 4 */ + }; + // clang-format on + oled_set_cursor(0, 0); + oled_write_P(logo[0][0], false); + oled_set_cursor(0, 3); + oled_write_P(logo[3][0], false); + switch (get_highest_layer(layer_state)) { + case _HOME: + oled_set_cursor(0, 1); + oled_write_P(logo[1][0], false); + oled_set_cursor(0, 2); + oled_write_P(logo[2][0], false); + break; + case _FN2: + oled_set_cursor(0, 1); + oled_write_P(logo[4][0], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][0], false); + break; + case _FN3: + oled_set_cursor(0, 1); + oled_write_P(logo[4][1], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][1], false); + break; + case _FN4: + oled_set_cursor(0, 1); + oled_write_P(logo[4][2], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][2], false); + break; + default: + oled_set_cursor(0, 1); + oled_write_P(PSTR(" "), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR(" "), false); + } + oled_set_cursor(8, 0); + oled_write_P(led_state.num_lock ? logo[0][1] : PSTR(" "), false); + oled_set_cursor(8, 1); + oled_write_P(led_state.num_lock ? logo[1][1] : PSTR(" "), false); + oled_set_cursor(8, 2); + oled_write_P(led_state.caps_lock ? logo[2][1] : PSTR(" "), false); + oled_set_cursor(8, 3); + oled_write_P(led_state.caps_lock ? logo[3][1] : PSTR(" "), false); + + oled_set_cursor(16, 0); + oled_write_P(logo[0][2], false); + oled_set_cursor(16, 1); + oled_write_P(logo[1][2], false); + oled_set_cursor(16, 2); + oled_write_P(logo[2][2], false); + oled_set_cursor(16, 3); + oled_write_P(logo[3][2], false); + + /* Fill empty space to clear animation */ + oled_set_cursor(4, 0); + oled_write_P(PSTR(" "), false); + oled_set_cursor(4, 1); + oled_write_P(PSTR(" "), false); + oled_set_cursor(4, 2); + oled_write_P(PSTR(" "), false); + oled_set_cursor(4, 3); + oled_write_P(PSTR(" "), false); + + oled_set_cursor(14, 0); + oled_write_P(PSTR(" "), false); + oled_set_cursor(14, 1); + oled_write_P(PSTR(" "), false); + oled_set_cursor(14, 2); + oled_write_P(PSTR(" "), false); + oled_set_cursor(14, 3); + oled_write_P(PSTR(" "), false); +} + +static void render_cat(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM prep[][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x00, 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, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + }; + + void animation_phase(void) { + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + oled_write_raw_P(prep[0], ANIM_SIZE); + } + if (get_current_wpm() >= TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + if (get_current_wpm() != 000) { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } +} + +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + if (wpm) { + render_cat(); + oled_set_cursor(0, 0); + char string[10]; + uint16_t m = get_current_wpm(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("WPM:"), false); + oled_write(string, false); + } else { + render_layer(); + } + } +} +#endif + +/* Resets via on eep reset - thank you drashna! */ +void eeconfig_init_kb(void) { + via_eeprom_set_valid(false); + via_init(); + eeconfig_init_user(); +} diff --git a/keyboards/0xcb/static/keymaps/bongocat/rules.mk b/keyboards/0xcb/static/keymaps/bongocat/rules.mk new file mode 100644 index 000000000000..d03b5f1ca758 --- /dev/null +++ b/keyboards/0xcb/static/keymaps/bongocat/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +WPM_ENABLE = yes \ No newline at end of file From 9a51076859f00c28749bc8e1627e7f09263f3a88 Mon Sep 17 00:00:00 2001 From: Christian Sandven Date: Sun, 22 Aug 2021 07:11:56 +0200 Subject: [PATCH 312/328] [Keyboard] Keyprez bison (#14100) Co-authored-by: Ryan --- keyboards/keyprez/bison/bison.c | 35 ++ keyboards/keyprez/bison/bison.h | 99 ++++++ keyboards/keyprez/bison/config.h | 158 +++++++++ keyboards/keyprez/bison/info.json | 308 ++++++++++++++++++ .../keyprez/bison/keymaps/default/keymap.c | 226 +++++++++++++ .../keyprez/bison/keymaps/default/readme.md | 1 + .../bison/keymaps/default_6_6/keymap.c | 226 +++++++++++++ .../bison/keymaps/default_6_6/readme.md | 1 + .../bison/keymaps/default_6_8/keymap.c | 226 +++++++++++++ .../bison/keymaps/default_6_8/readme.md | 1 + .../bison/keymaps/default_8_6/keymap.c | 226 +++++++++++++ .../bison/keymaps/default_8_6/readme.md | 1 + keyboards/keyprez/bison/readme.md | 21 ++ keyboards/keyprez/bison/rules.mk | 25 ++ 14 files changed, 1554 insertions(+) create mode 100644 keyboards/keyprez/bison/bison.c create mode 100644 keyboards/keyprez/bison/bison.h create mode 100644 keyboards/keyprez/bison/config.h create mode 100644 keyboards/keyprez/bison/info.json create mode 100644 keyboards/keyprez/bison/keymaps/default/keymap.c create mode 100644 keyboards/keyprez/bison/keymaps/default/readme.md create mode 100644 keyboards/keyprez/bison/keymaps/default_6_6/keymap.c create mode 100644 keyboards/keyprez/bison/keymaps/default_6_6/readme.md create mode 100644 keyboards/keyprez/bison/keymaps/default_6_8/keymap.c create mode 100644 keyboards/keyprez/bison/keymaps/default_6_8/readme.md create mode 100644 keyboards/keyprez/bison/keymaps/default_8_6/keymap.c create mode 100644 keyboards/keyprez/bison/keymaps/default_8_6/readme.md create mode 100644 keyboards/keyprez/bison/readme.md create mode 100644 keyboards/keyprez/bison/rules.mk diff --git a/keyboards/keyprez/bison/bison.c b/keyboards/keyprez/bison/bison.c new file mode 100644 index 000000000000..66b86dfc901c --- /dev/null +++ b/keyboards/keyprez/bison/bison.c @@ -0,0 +1,35 @@ +/* Copyright 2021 csandven + * + * 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 "bison.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(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDOWN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} diff --git a/keyboards/keyprez/bison/bison.h b/keyboards/keyprez/bison/bison.h new file mode 100644 index 000000000000..74b7bae985ed --- /dev/null +++ b/keyboards/keyprez/bison/bison.h @@ -0,0 +1,99 @@ +/* Copyright 2021 csandven + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R06, R07, \ + L10, L11, L12, L13, L14, L15, L16, L17, R10, R11, R12, R13, R14, R15, R16, R17, \ + L20, L21, L22, L23, L24, L25, L26, L27, R20, R21, R22, R23, R24, R25, R26, R27, \ + L30, L31, L32, L33, L34, L35, L36, L37, L44, R40, R30, R31, R32, R33, R34, R35, R36, R37, \ + L40, L41, L42, L43, R41, R42, R43, R44 \ + ) \ + { \ + { L07, L06, L05, L04, L03, L02, L01, L00 }, \ + { L17, L16, L15, L14, L13, L12, L11, L10 }, \ + { L27, L26, L25, L24, L23, L22, L21, L20 }, \ + { L37, L36, L35, L34, L33, L32, L31, L30 }, \ + { L43, L42, L41, L40, L44, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, R06, R07 }, \ + { R10, R11, R12, R13, R14, R15, R16, R17 }, \ + { R20, R21, R22, R23, R24, R25, R26, R27 }, \ + { R30, R31, R32, R33, R34, R35, R36, R37 }, \ + { R41, R42, R43, R44, R40, KC_NO, KC_NO } \ + } + +#define LAYOUT_6_8( \ + L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R06, R07, \ + L12, L13, L14, L15, L16, L17, R10, R11, R12, R13, R14, R15, R16, R17, \ + L22, L23, L24, L25, L26, L27, R20, R21, R22, R23, R24, R25, R26, R27, \ + L32, L33, L34, L35, L36, L37, L44, R40, R30, R31, R32, R33, R34, R35, R36, R37, \ + L40, L41, L42, L43, R41, R42, R43, R44 \ + ) \ + { \ + { L07, L06, L05, L04, L03, L02, KC_NO, KC_NO }, \ + { L17, L16, L15, L14, L13, L12, KC_NO, KC_NO }, \ + { L27, L26, L25, L24, L23, L22, KC_NO, KC_NO }, \ + { L37, L36, L35, L34, L33, L32, KC_NO, KC_NO }, \ + { L43, L42, L41, L40, L44, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, R06, R07 }, \ + { R10, R11, R12, R13, R14, R15, R16, R17 }, \ + { R20, R21, R22, R23, R24, R25, R26, R27 }, \ + { R30, R31, R32, R33, R34, R35, R36, R37 }, \ + { R41, R42, R43, R44, R40, KC_NO, KC_NO } \ + } + +#define LAYOUT_8_6( \ + L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, L16, L17, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, L26, L27, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, L36, L37, L44, R40, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, R41, R42, R43, R44 \ + ) \ + { \ + { L07, L06, L05, L04, L03, L02, L01, L00 }, \ + { L17, L16, L15, L14, L13, L12, L11, L10 }, \ + { L27, L26, L25, L24, L23, L22, L21, L20 }, \ + { L37, L36, L35, L34, L33, L32, L31, L30 }, \ + { L43, L42, L41, L40, L44, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, KC_NO, KC_NO }, \ + { R10, R11, R12, R13, R14, R15, KC_NO, KC_NO }, \ + { R20, R21, R22, R23, R24, R25, KC_NO, KC_NO }, \ + { R30, R31, R32, R33, R34, R35, KC_NO, KC_NO }, \ + { R41, R42, R43, R44, R40, KC_NO, KC_NO } \ + } + +#define LAYOUT_6_6( \ + L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, \ + L12, L13, L14, L15, L16, L17, R10, R11, R12, R13, R14, R15, \ + L22, L23, L24, L25, L26, L27, R20, R21, R22, R23, R24, R25, \ + L32, L33, L34, L35, L36, L37, L44, R40, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, R41, R42, R43, R44 \ + ) \ + { \ + { L07, L06, L05, L04, L03, L02, KC_NO, KC_NO }, \ + { L17, L16, L15, L14, L13, L12, KC_NO, KC_NO }, \ + { L27, L26, L25, L24, L23, L22, KC_NO, KC_NO }, \ + { L37, L36, L35, L34, L33, L32, KC_NO, KC_NO }, \ + { L43, L42, L41, L40, L44, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, KC_NO, KC_NO }, \ + { R10, R11, R12, R13, R14, R15, KC_NO, KC_NO }, \ + { R20, R21, R22, R23, R24, R25, KC_NO, KC_NO }, \ + { R30, R31, R32, R33, R34, R35, KC_NO, KC_NO }, \ + { R41, R42, R43, R44, R40, KC_NO, KC_NO } \ + } diff --git a/keyboards/keyprez/bison/config.h b/keyboards/keyprez/bison/config.h new file mode 100644 index 000000000000..a85e33c7e963 --- /dev/null +++ b/keyboards/keyprez/bison/config.h @@ -0,0 +1,158 @@ +/* +Copyright 2021 csandven + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER csandven +#define PRODUCT bison + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +/* + * 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 { D2, F7, B1, B3, D7 } +#define MATRIX_COL_PINS { D3, E6, B2, B4, D4, F6, F5, F4 } +#define UNUSED_PINS + +/* 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# 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 */ +/*== 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 +/*== 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 + +#define ENCODERS_PAD_A { B6 } +#define ENCODERS_PAD_B { B5 } +#define ENCODERS_PAD_A_RIGHT { B5 } +#define ENCODERS_PAD_B_RIGHT { B6 } +#define ENCODER_RESOLUTION 4 + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/keyprez/bison/info.json b/keyboards/keyprez/bison/info.json new file mode 100644 index 000000000000..58de9b1ae8e2 --- /dev/null +++ b/keyboards/keyprez/bison/info.json @@ -0,0 +1,308 @@ +{ + "keyboard_name": "bison", + "url": "", + "maintainer": "Christian Sandven", + "width": 18, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "F1", "x": 0, "y": 0}, + {"label": "F2", "x": 1, "y": 0}, + {"label": "~", "x": 2, "y": 0}, + {"label": "1", "x": 3, "y": 0}, + {"label": "2", "x": 4, "y": 0}, + {"label": "3", "x": 5, "y": 0}, + {"label": "4", "x": 6, "y": 0}, + {"label": "5", "x": 7, "y": 0}, + {"label": "6", "x": 10, "y": 0}, + {"label": "7", "x": 11, "y": 0}, + {"label": "8", "x": 12, "y": 0}, + {"label": "9", "x": 13, "y": 0}, + {"label": "0", "x": 14, "y": 0}, + {"label": "-", "x": 15, "y": 0}, + {"label": "=", "x": 16, "y": 0}, + {"label": "Del", "x": 17, "y": 0}, + + {"label": "F3", "x": 0, "y": 1}, + {"label": "F4", "x": 1, "y": 1}, + {"label": "Tab", "x": 2, "y": 1}, + {"label": "Q", "x": 3, "y": 1}, + {"label": "W", "x": 4, "y": 1}, + {"label": "E", "x": 5, "y": 1}, + {"label": "R", "x": 6, "y": 1}, + {"label": "T", "x": 7, "y": 1}, + {"label": "Y", "x": 10, "y": 1}, + {"label": "U", "x": 11, "y": 1}, + {"label": "I", "x": 12, "y": 1}, + {"label": "O", "x": 13, "y": 1}, + {"label": "P", "x": 14, "y": 1}, + {"label": "[", "x": 15, "y": 1}, + {"label": "]", "x": 16, "y": 1}, + {"label": "\\", "x": 17, "y": 1}, + + {"label": "F5", "x": 0, "y": 2}, + {"label": "F6", "x": 1, "y": 2}, + {"label": "Esc", "x": 2, "y": 2}, + {"label": "A", "x": 3, "y": 2}, + {"label": "S", "x": 4, "y": 2}, + {"label": "D", "x": 5, "y": 2}, + {"label": "F", "x": 6, "y": 2}, + {"label": "G", "x": 7, "y": 2}, + {"label": "H", "x": 10, "y": 2}, + {"label": "J", "x": 11, "y": 2}, + {"label": "K", "x": 12, "y": 2}, + {"label": "L", "x": 13, "y": 2}, + {"label": ";", "x": 14, "y": 2}, + {"label": "'", "x": 15, "y": 2}, + {"label": "BS", "x": 16, "y": 2}, + {"label": "FN", "x": 17, "y": 2}, + + {"label": "F7", "x": 0, "y": 3}, + {"label": "F8", "x": 1, "y": 3}, + {"label": "Shift", "x": 2, "y": 3}, + {"label": "Z", "x": 3, "y": 3}, + {"label": "X", "x": 4, "y": 3}, + {"label": "C", "x": 5, "y": 3}, + {"label": "V", "x": 6, "y": 3}, + {"label": "B", "x": 7, "y": 3}, + {"label": "Mute", "x": 8, "y": 3}, + {"label": "MPLY", "x": 9, "y": 3}, + {"label": "N", "x": 10, "y": 3}, + {"label": "M", "x": 11, "y": 3}, + {"label": ",", "x": 12, "y": 3}, + {"label": ".", "x": 13, "y": 3}, + {"label": "/", "x": 14, "y": 3}, + {"label": "Enter", "x": 15, "y": 3}, + {"label": "Home", "x": 16, "y": 3}, + {"label": "End", "x": 17, "y": 3}, + + {"label": "OS", "x": 1.75, "y": 4}, + {"label": "Alt", "x": 2.75, "y": 4}, + {"label": "Lower", "x": 3.75, "y": 4}, + {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, + {"label": "", "x": 7.75, "y": 4, "w": 1.5}, + {"label": "Raise", "x": 9.25, "y": 4}, + {"label": "Alt", "x": 10.25, "y": 4}, + {"label": "OS", "x": 11.25, "y": 4} + ] + }, + + "LAYOUT_6_8": { + "layout": [ + {"label": "~", "x": 2, "y": 0}, + {"label": "1", "x": 3, "y": 0}, + {"label": "2", "x": 4, "y": 0}, + {"label": "3", "x": 5, "y": 0}, + {"label": "4", "x": 6, "y": 0}, + {"label": "5", "x": 7, "y": 0}, + {"label": "6", "x": 10, "y": 0}, + {"label": "7", "x": 11, "y": 0}, + {"label": "8", "x": 12, "y": 0}, + {"label": "9", "x": 13, "y": 0}, + {"label": "0", "x": 14, "y": 0}, + {"label": "-", "x": 15, "y": 0}, + {"label": "=", "x": 16, "y": 0}, + {"label": "Del", "x": 17, "y": 0}, + + {"label": "Tab", "x": 2, "y": 1}, + {"label": "Q", "x": 3, "y": 1}, + {"label": "W", "x": 4, "y": 1}, + {"label": "E", "x": 5, "y": 1}, + {"label": "R", "x": 6, "y": 1}, + {"label": "T", "x": 7, "y": 1}, + {"label": "Y", "x": 10, "y": 1}, + {"label": "U", "x": 11, "y": 1}, + {"label": "I", "x": 12, "y": 1}, + {"label": "O", "x": 13, "y": 1}, + {"label": "P", "x": 14, "y": 1}, + {"label": "[", "x": 15, "y": 1}, + {"label": "]", "x": 16, "y": 1}, + {"label": "\\", "x": 17, "y": 1}, + + {"label": "Esc", "x": 2, "y": 2}, + {"label": "A", "x": 3, "y": 2}, + {"label": "S", "x": 4, "y": 2}, + {"label": "D", "x": 5, "y": 2}, + {"label": "F", "x": 6, "y": 2}, + {"label": "G", "x": 7, "y": 2}, + {"label": "H", "x": 10, "y": 2}, + {"label": "J", "x": 11, "y": 2}, + {"label": "K", "x": 12, "y": 2}, + {"label": "L", "x": 13, "y": 2}, + {"label": ";", "x": 14, "y": 2}, + {"label": "'", "x": 15, "y": 2}, + {"label": "BS", "x": 16, "y": 2}, + {"label": "FN", "x": 17, "y": 2}, + + {"label": "Shift", "x": 2, "y": 3}, + {"label": "Z", "x": 3, "y": 3}, + {"label": "X", "x": 4, "y": 3}, + {"label": "C", "x": 5, "y": 3}, + {"label": "V", "x": 6, "y": 3}, + {"label": "B", "x": 7, "y": 3}, + {"label": "Mute", "x": 8, "y": 3}, + {"label": "MPLY", "x": 9, "y": 3}, + {"label": "N", "x": 10, "y": 3}, + {"label": "M", "x": 11, "y": 3}, + {"label": ",", "x": 12, "y": 3}, + {"label": ".", "x": 13, "y": 3}, + {"label": "/", "x": 14, "y": 3}, + {"label": "Enter", "x": 15, "y": 3}, + {"label": "Home", "x": 16, "y": 3}, + {"label": "End", "x": 17, "y": 3}, + + {"label": "OS", "x": 1.75, "y": 4}, + {"label": "Alt", "x": 2.75, "y": 4}, + {"label": "Lower", "x": 3.75, "y": 4}, + {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, + {"label": "", "x": 7.75, "y": 4, "w": 1.5}, + {"label": "Raise", "x": 9.25, "y": 4}, + {"label": "Alt", "x": 10.25, "y": 4}, + {"label": "OS", "x": 11.25, "y": 4} + ] + }, + + "LAYOUT_8_6": { + "layout": [ + {"label": "F1", "x": 0, "y": 0}, + {"label": "F2", "x": 1, "y": 0}, + {"label": "~", "x": 2, "y": 0}, + {"label": "1", "x": 3, "y": 0}, + {"label": "2", "x": 4, "y": 0}, + {"label": "3", "x": 5, "y": 0}, + {"label": "4", "x": 6, "y": 0}, + {"label": "5", "x": 7, "y": 0}, + {"label": "6", "x": 10, "y": 0}, + {"label": "7", "x": 11, "y": 0}, + {"label": "8", "x": 12, "y": 0}, + {"label": "9", "x": 13, "y": 0}, + {"label": "0", "x": 14, "y": 0}, + {"label": "Del", "x": 15, "y": 0}, + + {"label": "F3", "x": 0, "y": 1}, + {"label": "F4", "x": 1, "y": 1}, + {"label": "Tab", "x": 2, "y": 1}, + {"label": "Q", "x": 3, "y": 1}, + {"label": "W", "x": 4, "y": 1}, + {"label": "E", "x": 5, "y": 1}, + {"label": "R", "x": 6, "y": 1}, + {"label": "T", "x": 7, "y": 1}, + {"label": "Y", "x": 10, "y": 1}, + {"label": "U", "x": 11, "y": 1}, + {"label": "I", "x": 12, "y": 1}, + {"label": "O", "x": 13, "y": 1}, + {"label": "P", "x": 14, "y": 1}, + {"label": "BS", "x": 15, "y": 1}, + + {"label": "F5", "x": 0, "y": 2}, + {"label": "F6", "x": 1, "y": 2}, + {"label": "Esc", "x": 2, "y": 2}, + {"label": "A", "x": 3, "y": 2}, + {"label": "S", "x": 4, "y": 2}, + {"label": "D", "x": 5, "y": 2}, + {"label": "F", "x": 6, "y": 2}, + {"label": "G", "x": 7, "y": 2}, + {"label": "H", "x": 10, "y": 2}, + {"label": "J", "x": 11, "y": 2}, + {"label": "K", "x": 12, "y": 2}, + {"label": "L", "x": 13, "y": 2}, + {"label": ";", "x": 14, "y": 2}, + {"label": "'", "x": 15, "y": 2}, + + {"label": "F7", "x": 0, "y": 3}, + {"label": "F8", "x": 1, "y": 3}, + {"label": "Shift", "x": 2, "y": 3}, + {"label": "Z", "x": 3, "y": 3}, + {"label": "X", "x": 4, "y": 3}, + {"label": "C", "x": 5, "y": 3}, + {"label": "V", "x": 6, "y": 3}, + {"label": "B", "x": 7, "y": 3}, + {"label": "Mute", "x": 8, "y": 3}, + {"label": "MPLY", "x": 9, "y": 3}, + {"label": "N", "x": 10, "y": 3}, + {"label": "M", "x": 11, "y": 3}, + {"label": ",", "x": 12, "y": 3}, + {"label": ".", "x": 13, "y": 3}, + {"label": "/", "x": 14, "y": 3}, + {"label": "Enter", "x": 15, "y": 3}, + + {"label": "OS", "x": 1.75, "y": 4}, + {"label": "Alt", "x": 2.75, "y": 4}, + {"label": "Lower", "x": 3.75, "y": 4}, + {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, + {"label": "", "x": 7.75, "y": 4, "w": 1.5}, + {"label": "Raise", "x": 9.25, "y": 4}, + {"label": "Alt", "x": 10.25, "y": 4}, + {"label": "FN", "x": 11.25, "y": 4} + ] + }, + + "LAYOUT_6_6": { + "layout": [ + {"label": "~", "x": 2, "y": 0}, + {"label": "1", "x": 3, "y": 0}, + {"label": "2", "x": 4, "y": 0}, + {"label": "3", "x": 5, "y": 0}, + {"label": "4", "x": 6, "y": 0}, + {"label": "5", "x": 7, "y": 0}, + {"label": "6", "x": 10, "y": 0}, + {"label": "7", "x": 11, "y": 0}, + {"label": "8", "x": 12, "y": 0}, + {"label": "9", "x": 13, "y": 0}, + {"label": "0", "x": 14, "y": 0}, + {"label": "Del", "x": 15, "y": 0}, + + {"label": "Tab", "x": 2, "y": 1}, + {"label": "Q", "x": 3, "y": 1}, + {"label": "W", "x": 4, "y": 1}, + {"label": "E", "x": 5, "y": 1}, + {"label": "R", "x": 6, "y": 1}, + {"label": "T", "x": 7, "y": 1}, + {"label": "Y", "x": 10, "y": 1}, + {"label": "U", "x": 11, "y": 1}, + {"label": "I", "x": 12, "y": 1}, + {"label": "O", "x": 13, "y": 1}, + {"label": "P", "x": 14, "y": 1}, + {"label": "BS", "x": 15, "y": 1}, + + {"label": "Esc", "x": 2, "y": 2}, + {"label": "A", "x": 3, "y": 2}, + {"label": "S", "x": 4, "y": 2}, + {"label": "D", "x": 5, "y": 2}, + {"label": "F", "x": 6, "y": 2}, + {"label": "G", "x": 7, "y": 2}, + {"label": "H", "x": 10, "y": 2}, + {"label": "J", "x": 11, "y": 2}, + {"label": "K", "x": 12, "y": 2}, + {"label": "L", "x": 13, "y": 2}, + {"label": ";", "x": 14, "y": 2}, + {"label": "'", "x": 15, "y": 2}, + + {"label": "Shift", "x": 2, "y": 3}, + {"label": "Z", "x": 3, "y": 3}, + {"label": "X", "x": 4, "y": 3}, + {"label": "C", "x": 5, "y": 3}, + {"label": "V", "x": 6, "y": 3}, + {"label": "B", "x": 7, "y": 3}, + {"label": "Mute", "x": 8, "y": 3}, + {"label": "MPLY", "x": 9, "y": 3}, + {"label": "N", "x": 10, "y": 3}, + {"label": "M", "x": 11, "y": 3}, + {"label": ",", "x": 12, "y": 3}, + {"label": ".", "x": 13, "y": 3}, + {"label": "/", "x": 14, "y": 3}, + {"label": "Enter", "x": 15, "y": 3}, + + {"label": "OS", "x": 1.75, "y": 4}, + {"label": "Alt", "x": 2.75, "y": 4}, + {"label": "Lower", "x": 3.75, "y": 4}, + {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, + {"label": "", "x": 7.75, "y": 4, "w": 1.5}, + {"label": "Raise", "x": 9.25, "y": 4}, + {"label": "Alt", "x": 10.25, "y": 4}, + {"label": "FN", "x": 11.25, "y": 4} + ] + } + } +} diff --git a/keyboards/keyprez/bison/keymaps/default/keymap.c b/keyboards/keyprez/bison/keymaps/default/keymap.c new file mode 100644 index 000000000000..fc1f346647ac --- /dev/null +++ b/keyboards/keyprez/bison/keymaps/default/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2021 csandven + * + * 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, + _COLEMAK, + _LOWER, + _RAISE, + _HRM, + _FN, +}; + +enum custom_keycodes { + KC_QWRTY = SAFE_RANGE, + KC_COLMK, + KC_HRM, + KC_PRVWD, + KC_NXTWD +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define FN MO(_FN) +#define ESC_CTL MT(MOD_LCTL, KC_ESC) +#define HRM_LG MT(MOD_LGUI, KC_A) +#define HRM_LA MT(MOD_LALT, KC_S) +#define HRM_LC MT(MOD_LCTL, KC_D) +#define HRM_LS MT(MOD_LSFT, KC_F) +#define HRM_RG MT(MOD_RGUI, KC_SCLN) +#define HRM_RA MT(MOD_RALT, KC_L) +#define HRM_RC MT(MOD_RCTL, KC_K) +#define HRM_RS MT(MOD_RSFT, KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * QWERTY + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | F1 | F2 | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | = | DEL | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | F3 | F4 | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | F5 | F6 | ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | BS | Fn | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | F7 | F8 |LShift| Z | X | C | V | B | | | | N | M | , | . | / | Enter| Home | End | + * `-------------------------------------------------------/-------/ \------\-------------------------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | BS / \Space |RAISE | RCTR | RAlt | RGUI | + * | | | | | / \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_QWERTY] = LAYOUT( + KC_F1, KC_F2, 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_F3, KC_F4, 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_F5, KC_F6, ESC_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSPC, FN, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_HOME, KC_END, + KC_LGUI,KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RALT, KC_RGUI + ), + + /* + * COLEMAK + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | F1 | F2 | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | = | DEL | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | F3 | F4 | Tab | Q | W | F | P | G | | J | L | U | Y | ; | [ | ] | \ | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | F5 | F6 | ESC | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | BS | Fn | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | F7 | F8 |LShift| Z | X | C | V | B | | | | K | M | , | . | / | Enter| Home | End | + * `-------------------------------------------------------/-------/ \------\-------------------------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | BS / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_COLEMAK] = LAYOUT( + KC_F1, KC_F2, 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_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F5, KC_F6, ESC_CTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_BSPC, FN, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_HOME, KC_END, + KC_LGUI,KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RALT, KC_RGUI + ), + + /* + * LOWER + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | F1 | F2 | F3 | F4 | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | F5 | F6 | F7 | F8 | |-------. ,-------| LEFT | DOWN | UP | RIGHT| | | | | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | | F9 | F10 | F11 | F12 | | | | | | | | | | | | | + * `-------------------------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, + _______, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * RAISE + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | F1 | F2 | F3 | F4 | | | | | PrevW| UP | NextW| | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | F5 | F6 | F7 | F8 | |-------. ,-------| | | LEFT | DOWN | RIGHT| | | | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | | F9 | F10 | F11 | F12 | | | | | | | | | | | | | + * `-------------------------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______,KC_PRVWD, KC_UP,KC_NXTWD, _______, _______, _______, + _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______, _______, + _______, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * HRM + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | |HRM_LG|HRM_LA|HRM_LC|HRM_LS| |-------. ,-------| |HRM_RS|HRM_RC|HRM_RA|HRM_RG| | | | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | | | | | + * `-------------------------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_HRM] = LAYOUT( + _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, HRM_LG, HRM_LA, HRM_LC, HRM_LS, _______, _______, HRM_RS, HRM_RC, HRM_RA, HRM_RG, _______, _______, _______, + _______, _______, _______, _______, _______, _______,_______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * FN + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | |QWERTY| | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | | | | | |-------. ,-------|KC_HRM| | | | | | | | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | | | |COLEMAK| | | | | | | | | | | | | | + * `-------------------------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______,KC_QWRTY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HRM, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______,KC_COLMK, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWRTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLMK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_HRM: + if (record->event.pressed) { + set_single_persistent_default_layer(_HRM); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + break; + case KC_NXTWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + break; + } + return true; +} diff --git a/keyboards/keyprez/bison/keymaps/default/readme.md b/keyboards/keyprez/bison/keymaps/default/readme.md new file mode 100644 index 000000000000..b8557bbc8e50 --- /dev/null +++ b/keyboards/keyprez/bison/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for bison diff --git a/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c b/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c new file mode 100644 index 000000000000..816cd2fda6ef --- /dev/null +++ b/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2021 csandven + * + * 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, + _COLEMAK, + _LOWER, + _RAISE, + _HRM, + _FN, +}; + +enum custom_keycodes { + KC_QWRTY = SAFE_RANGE, + KC_COLMK, + KC_HRM, + KC_PRVWD, + KC_NXTWD +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define FN MO(_FN) +#define ESC_CTL MT(MOD_LCTL, KC_ESC) +#define HRM_LG MT(MOD_LGUI, KC_A) +#define HRM_LA MT(MOD_LALT, KC_S) +#define HRM_LC MT(MOD_LCTL, KC_D) +#define HRM_LS MT(MOD_LSFT, KC_F) +#define HRM_RG MT(MOD_RGUI, KC_SCLN) +#define HRM_RA MT(MOD_RALT, KC_L) +#define HRM_RC MT(MOD_RCTL, KC_K) +#define HRM_RS MT(MOD_RSFT, KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | DEL | + * |------+------+------+------+------+------| |------+------+------+------+------+------+ + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | BS | + * |------+------+------+------+------+------| |------+------+------+------+------+------+ + * | ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+ + * |LShift| Z | X | C | V | B | | | | N | M | , | . | / | Enter| + * `-----------------------------------------/-------/ \------\-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | BS / \Space |RAISE | RCTR | RAlt | FN | + * | | | | | / \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_QWERTY] = LAYOUT_6_6( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + ESC_CTL, 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_MUTE, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI,KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RALT, FN + ), + + /* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | DEL | + * |------+------+------+------+------+------| |------+------+------+------+------+------+ + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | BS | + * |------+------+------+------+------+------| |------+------+------+------+------+------+ + * | ESC | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+ + * |LShift| Z | X | C | V | B | | | | K | M | , | . | / | Enter| + * `-----------------------------------------/-------/ \------\-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | BS / \Space \ |RAISE | RCTR | RAlt | FN | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_COLEMAK] = LAYOUT_6_6( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + ESC_CTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI,KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RALT, FN + ), + + /* + * LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+ + * | | F1 | F2 | F3 | F4 | | | | | | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------+ + * | | F5 | F6 | F7 | F8 | |-------. ,-------| LEFT | DOWN | UP | RIGHT| | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+ + * | | F9 | F10 | F11 | F12 | | | | | Home | | | End | | | + * `-----------------------------------------/-------/ \------\-----------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_LOWER] = LAYOUT_6_6( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,KC_HOME, _______, _______, KC_END, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * RAISE + * ,-----------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | | | | | PrevW| UP | NextW| | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | F5 | F6 | F7 | F8 | |-------. ,-------| | | LEFT | DOWN | RIGHT| | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | F9 | F10 | F11 | F12 | | | | | | | | | | | | | + * `-----------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_RAISE] = LAYOUT_6_6( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______,KC_PRVWD, KC_UP,KC_NXTWD, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,_______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * HRM + * ,-----------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | |HRM_LG|HRM_LA|HRM_LC|HRM_LS| |-------. ,-------| |HRM_RS|HRM_RC|HRM_RA|HRM_RG| | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | | | + * `-----------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_HRM] = LAYOUT_6_6( + _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______, HRM_LG, HRM_LA, HRM_LC, HRM_LS, _______, _______, HRM_RS, HRM_RC, HRM_RA, HRM_RG, _______, + _______, _______, _______, _______,_______, _______, _______, _______,_______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * FN + * ,-----------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | |QWERTY| | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | | | |-------. ,-------|KC_HRM| | | | | | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | |COLEMAK| | | | | | | | | | | | | | + * `-----------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_FN] = LAYOUT_6_6( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______,KC_QWRTY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_HRM, _______, _______, _______, _______, _______, + _______, _______, _______,KC_COLMK, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWRTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLMK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_HRM: + if (record->event.pressed) { + set_single_persistent_default_layer(_HRM); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + break; + case KC_NXTWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + break; + } + return true; +} diff --git a/keyboards/keyprez/bison/keymaps/default_6_6/readme.md b/keyboards/keyprez/bison/keymaps/default_6_6/readme.md new file mode 100644 index 000000000000..b8557bbc8e50 --- /dev/null +++ b/keyboards/keyprez/bison/keymaps/default_6_6/readme.md @@ -0,0 +1 @@ +# The default keymap for bison diff --git a/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c b/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c new file mode 100644 index 000000000000..c42ee631dbc5 --- /dev/null +++ b/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2021 csandven + * + * 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, + _COLEMAK, + _LOWER, + _RAISE, + _HRM, + _FN, +}; + +enum custom_keycodes { + KC_QWRTY = SAFE_RANGE, + KC_COLMK, + KC_HRM, + KC_PRVWD, + KC_NXTWD +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define FN MO(_FN) +#define ESC_CTL MT(MOD_LCTL, KC_ESC) +#define HRM_LG MT(MOD_LGUI, KC_A) +#define HRM_LA MT(MOD_LALT, KC_S) +#define HRM_LC MT(MOD_LCTL, KC_D) +#define HRM_LS MT(MOD_LSFT, KC_F) +#define HRM_RG MT(MOD_RGUI, KC_SCLN) +#define HRM_RA MT(MOD_RALT, KC_L) +#define HRM_RC MT(MOD_RCTL, KC_K) +#define HRM_RS MT(MOD_RSFT, KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * QWERTY + * ,-----------------------------------------. ,-------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | = | DEL | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | BS | Fn | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * |LShift| Z | X | C | V | B | | | | N | M | , | . | / | Enter| Home | End | + * `----------------------------------------/-------/ \------\-------------------------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | BS / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_QWERTY] = LAYOUT_6_8( + 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_BSLS, + ESC_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSPC, FN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_HOME, KC_END, + KC_LGUI,KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RALT, KC_RGUI + ), + + /* + * COLEMAK + * ,-----------------------------------------. ,-------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | = | DEL | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | ESC | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | BS | Fn | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * |LShift| Z | X | C | V | B | | | | K | M | , | . | / | Enter| Home | End | + * `-----------------------------------------/-------/ \------\-------------------------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | BS / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_COLEMAK] = LAYOUT_6_8( + 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_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, + ESC_CTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_BSPC, FN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_HOME, KC_END, + KC_LGUI,KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RALT, KC_RGUI + ), + + /* + * LOWER + * ,-----------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | F5 | F6 | F7 | F8 | |-------. ,-------| LEFT | DOWN | UP | RIGHT| | | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | F9 | F10 | F11 | F12 | | | | | | | | | | | | | + * `-----------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_LOWER] = LAYOUT_6_8( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * RAISE + * ,-----------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | | | | | PrevW| UP | NextW| | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | F5 | F6 | F7 | F8 | |-------. ,-------| | | LEFT | DOWN | RIGHT| | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | F9 | F10 | F11 | F12 | | | | | | | | | | | | | + * `-----------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_RAISE] = LAYOUT_6_8( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______,KC_PRVWD, KC_UP,KC_NXTWD, _______, _______, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * HRM + * ,-----------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | |HRM_LG|HRM_LA|HRM_LC|HRM_LS| |-------. ,-------| |HRM_RS|HRM_RC|HRM_RA|HRM_RG| | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | | | + * `-----------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_HRM] = LAYOUT_6_8( + _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, HRM_LG, HRM_LA, HRM_LC, HRM_LS, _______, _______, HRM_RS, HRM_RC, HRM_RA, HRM_RG, _______, _______, _______, + _______, _______, _______, _______,_______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * FN + * ,-----------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | |QWERTY| | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | | | |-------. ,-------|KC_HRM| | | | | | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | |COLEMAK| | | | | | | | | | | | | | + * `-----------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_FN] = LAYOUT_6_8( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______,KC_QWRTY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_HRM, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______,KC_COLMK, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWRTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLMK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_HRM: + if (record->event.pressed) { + set_single_persistent_default_layer(_HRM); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + break; + case KC_NXTWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + break; + } + return true; +} diff --git a/keyboards/keyprez/bison/keymaps/default_6_8/readme.md b/keyboards/keyprez/bison/keymaps/default_6_8/readme.md new file mode 100644 index 000000000000..b8557bbc8e50 --- /dev/null +++ b/keyboards/keyprez/bison/keymaps/default_6_8/readme.md @@ -0,0 +1 @@ +# The default keymap for bison diff --git a/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c b/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c new file mode 100644 index 000000000000..173b9bc38714 --- /dev/null +++ b/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2021 csandven + * + * 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, + _COLEMAK, + _LOWER, + _RAISE, + _HRM, + _FN, +}; + +enum custom_keycodes { + KC_QWRTY = SAFE_RANGE, + KC_COLMK, + KC_HRM, + KC_PRVWD, + KC_NXTWD +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define FN MO(_FN) +#define ESC_CTL MT(MOD_LCTL, KC_ESC) +#define HRM_LG MT(MOD_LGUI, KC_A) +#define HRM_LA MT(MOD_LALT, KC_S) +#define HRM_LC MT(MOD_LCTL, KC_D) +#define HRM_LS MT(MOD_LSFT, KC_F) +#define HRM_RG MT(MOD_RGUI, KC_SCLN) +#define HRM_RA MT(MOD_RALT, KC_L) +#define HRM_RC MT(MOD_RCTL, KC_K) +#define HRM_RS MT(MOD_RSFT, KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * QWERTY + * ,-------------------------------------------------------. ,-----------------------------------------. + * | F1 | F2 | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | DEL | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+ + * | F3 | F4 | Tab | Q | W | E | R | T | | Y | U | I | O | P | BS | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+ + * | F5 | F6 | ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+ + * | F7 | F8 |LShift| Z | X | C | V | B | | | | N | M | , | . | / | Enter| + * `-------------------------------------------------------/-------/ \------\-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | BS / \Space |RAISE | RCTR | RAlt | FN | + * | | | | | / \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_QWERTY] = LAYOUT_8_6( + KC_F1, KC_F2, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_F3, KC_F4, 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_F5, KC_F6, ESC_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI,KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RALT, FN + ), + + /* + * COLEMAK + * ,-------------------------------------------------------. ,-----------------------------------------. + * | F1 | F2 | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | DEL | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+ + * | F3 | F4 | Tab | Q | W | F | P | G | | J | L | U | Y | ; | BS | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+ + * | F5 | F6 | ESC | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+ + * | F7 | F8 |LShift| Z | X | C | V | B | | | | K | M | , | . | / | Enter| + * `-------------------------------------------------------/-------/ \------\-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | BS / \Space \ |RAISE | RCTR | RAlt | FN | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_COLEMAK] = LAYOUT_8_6( + KC_F1, KC_F2, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_F5, KC_F6, ESC_CTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI,KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RALT, FN + ), + + /* + * LOWER + * ,-------------------------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+ + * | | | | F1 | F2 | F3 | F4 | | | | | | [ | ] | \ | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+ + * | | | | F5 | F6 | F7 | F8 | |-------. ,-------| LEFT | DOWN | UP | RIGHT| | | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+ + * | | | | F9 | F10 | F11 | F12 | | | | | Home | | | End | | | + * `-------------------------------------------------------/-------/ \------\-----------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_LOWER] = LAYOUT_8_6( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, + _______, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,KC_HOME, _______, _______, KC_END, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * RAISE + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | F1 | F2 | F3 | F4 | | | | | PrevW| UP | NextW| | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | F5 | F6 | F7 | F8 | |-------. ,-------| | | LEFT | DOWN | RIGHT| | | | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | | F9 | F10 | F11 | F12 | | | | | | | | | | | | | + * `-------------------------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_RAISE] = LAYOUT_8_6( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______,KC_PRVWD, KC_UP,KC_NXTWD, _______, + _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT, _______, + _______, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,_______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * HRM + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | |HRM_LG|HRM_LA|HRM_LC|HRM_LS| |-------. ,-------| |HRM_RS|HRM_RC|HRM_RA|HRM_RG| | | | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | | | | | + * `-------------------------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_HRM] = LAYOUT_8_6( + _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, HRM_LG, HRM_LA, HRM_LC, HRM_LS, _______, _______, HRM_RS, HRM_RC, HRM_RA, HRM_RG, _______, + _______, _______, _______, _______, _______, _______,_______, _______, _______, _______,_______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), + + /* + * FN + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | |QWERTY| | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | | | | | | | | |-------. ,-------|KC_HRM| | | | | | | | + * |------+------+------+------+------+------+------+------| | | |------+------+------+------+------+------+------+------| + * | | | | | |COLEMAK| | | | | | | | | | | | | | + * `-------------------------------------------------------/-------/ \------\-------------------------------------------------------' + * | | | | | / \ \ | | | | | + * | | | | | / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_FN] = LAYOUT_8_6( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______,KC_QWRTY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HRM, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______,KC_COLMK, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, + _______,_______, _______, _______, _______, _______, _______, _______ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWRTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLMK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_HRM: + if (record->event.pressed) { + set_single_persistent_default_layer(_HRM); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + break; + case KC_NXTWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + break; + } + return true; +} diff --git a/keyboards/keyprez/bison/keymaps/default_8_6/readme.md b/keyboards/keyprez/bison/keymaps/default_8_6/readme.md new file mode 100644 index 000000000000..b8557bbc8e50 --- /dev/null +++ b/keyboards/keyprez/bison/keymaps/default_8_6/readme.md @@ -0,0 +1 @@ +# The default keymap for bison diff --git a/keyboards/keyprez/bison/readme.md b/keyboards/keyprez/bison/readme.md new file mode 100644 index 000000000000..d537d98673e4 --- /dev/null +++ b/keyboards/keyprez/bison/readme.md @@ -0,0 +1,21 @@ +# bison + +![Imgur](https://i.imgur.com/FTOUHTqh.jpg) + +A split 60% ergonomic keyboard with a slight columnar stagger. Should provide an easy transition from a ortholinear keyboard to a split ergonomic keyboard. + +* Keyboard Maintainer: [csandven](https://github.com/csandven) +* Hardware Supported: Pro micro compatible boards +* Hardware Availability: *TBA* + +Make example for this keyboard (after setting up your build environment): + + make bison:default + +Flashing example for this keyboard: + + make bison:default:flash + +Simply click the reset button on the keyboard. Only the left button is needed if it is only a keymap update. + +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). diff --git a/keyboards/keyprez/bison/rules.mk b/keyboards/keyprez/bison/rules.mk new file mode 100644 index 000000000000..632119a25d31 --- /dev/null +++ b/keyboards/keyprez/bison/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +SPLIT_KEYBOARD = yes +ENCODER_ENABLE = yes From 46fb8742692b546901555ffc544e954801ff5340 Mon Sep 17 00:00:00 2001 From: npspears <40127181+npspears@users.noreply.github.com> Date: Sun, 22 Aug 2021 01:04:20 -0500 Subject: [PATCH 313/328] =?UTF-8?q?[Keyboard]=20add=20support=20for=20Quar?= =?UTF-8?q?k=C2=B2=20(#14109)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quark² is a hotswap version of the Quark PCB --- .../checkerboards/quark_squared/config.h | 55 ++++++++++ .../checkerboards/quark_squared/info.json | 15 +++ .../quark_squared/keymaps/2u/config.h | 19 ++++ .../quark_squared/keymaps/2u/keymap.c | 80 ++++++++++++++ .../quark_squared/keymaps/default/config.h | 19 ++++ .../quark_squared/keymaps/default/keymap.c | 80 ++++++++++++++ .../quark_squared/keymaps/via/config.h | 19 ++++ .../quark_squared/keymaps/via/keymap.c | 102 ++++++++++++++++++ .../quark_squared/keymaps/via/rules.mk | 1 + .../quark_squared/quark_squared.c | 17 +++ .../quark_squared/quark_squared.h | 46 ++++++++ .../checkerboards/quark_squared/readme.md | 15 +++ .../checkerboards/quark_squared/rules.mk | 27 +++++ 13 files changed, 495 insertions(+) create mode 100644 keyboards/checkerboards/quark_squared/config.h create mode 100644 keyboards/checkerboards/quark_squared/info.json create mode 100644 keyboards/checkerboards/quark_squared/keymaps/2u/config.h create mode 100644 keyboards/checkerboards/quark_squared/keymaps/2u/keymap.c create mode 100644 keyboards/checkerboards/quark_squared/keymaps/default/config.h create mode 100644 keyboards/checkerboards/quark_squared/keymaps/default/keymap.c create mode 100644 keyboards/checkerboards/quark_squared/keymaps/via/config.h create mode 100644 keyboards/checkerboards/quark_squared/keymaps/via/keymap.c create mode 100644 keyboards/checkerboards/quark_squared/keymaps/via/rules.mk create mode 100644 keyboards/checkerboards/quark_squared/quark_squared.c create mode 100644 keyboards/checkerboards/quark_squared/quark_squared.h create mode 100644 keyboards/checkerboards/quark_squared/readme.md create mode 100644 keyboards/checkerboards/quark_squared/rules.mk diff --git a/keyboards/checkerboards/quark_squared/config.h b/keyboards/checkerboards/quark_squared/config.h new file mode 100644 index 000000000000..89e7eb072553 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/config.h @@ -0,0 +1,55 @@ +/* Copyright 2021 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7070 +#define PRODUCT_ID 0x5342 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nasp +#define PRODUCT QUARK² + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { C5, C4, C6, C7 } +#define MATRIX_COL_PINS { B4, B5, B6, B3, C2, B2, D6, D2, D3, D4, D5, B1 } +#define UNUSED_PINS + +/* 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 + +// ws2812 options +#define RGB_DI_PIN D0 // pin the DI on the ws2812 is hooked-up to +#define RGBLIGHT_ANIMATIONS // run RGB animations +#define RGBLED_NUM 14 // number of LEDs +#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) diff --git a/keyboards/checkerboards/quark_squared/info.json b/keyboards/checkerboards/quark_squared/info.json new file mode 100644 index 000000000000..eb9383deba2f --- /dev/null +++ b/keyboards/checkerboards/quark_squared/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Quark_Squared", + "url": "", + "maintainer": "nasp", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_ortho_2x225u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"label":"Super", "x":9.5, "y":3, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":3, "w":1.25}] + }, + "LAYOUT_ortho_2u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Alt", "x":1.25, "y":3, "w":1.25}, {"label":"Super", "x":2.5, "y":3, "w":1.25}, {"label":"⇓", "x":3.75, "y":3, "w":1.25}, {"x":5, "y":3, "w":2}, {"label":"←", "x":7, "y":3, "w":1.25}, {"label":"↓", "x":8.25, "y":3, "w":1.25}, {"label":"↑", "x":9.5, "y":3, "w":1.25}, {"label":"→", "x":10.75, "y":3, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/checkerboards/quark_squared/keymaps/2u/config.h b/keyboards/checkerboards/quark_squared/keymaps/2u/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/2u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 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_squared/keymaps/2u/keymap.c b/keyboards/checkerboards/quark_squared/keymaps/2u/keymap.c new file mode 100644 index 000000000000..0892729cf3a1 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/2u/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2021 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_2u( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_GRV, KC_LGUI, KC_LALT, TT(1), KC_SPC, TT(2), CALTDEL, KC_RALT, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_2u( + 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_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_2u( + _______, _______, _______, 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, + RESET, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/quark_squared/keymaps/default/config.h b/keyboards/checkerboards/quark_squared/keymaps/default/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 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_squared/keymaps/default/keymap.c b/keyboards/checkerboards/quark_squared/keymaps/default/keymap.c new file mode 100644 index 000000000000..88922f86cd06 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/default/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2021 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_2x225u2u( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, CALTDEL, KC_RALT, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_2x225u( + 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_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_2x225u( + _______, _______, _______, 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, + RESET, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/quark_squared/keymaps/via/config.h b/keyboards/checkerboards/quark_squared/keymaps/via/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 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_squared/keymaps/via/keymap.c b/keyboards/checkerboards/quark_squared/keymaps/via/keymap.c new file mode 100644 index 000000000000..928965f97381 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/via/keymap.c @@ -0,0 +1,102 @@ +/* Copyright 2021 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] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | 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 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_2x225u( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, CALTDEL, KC_RALT, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + + [1] = LAYOUT_ortho_2x225u( + 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_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + + [2] = LAYOUT_ortho_2x225u( + _______, _______, _______, 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, + RESET, _______, _______, _______, _______, _______, _______, _______ + ), + + /* [3] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + + [3] = LAYOUT_ortho_2x225u( + _______, _______, _______, 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, + RESET, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/quark_squared/keymaps/via/rules.mk b/keyboards/checkerboards/quark_squared/keymaps/via/rules.mk new file mode 100644 index 000000000000..69de2e4c5a0c --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/checkerboards/quark_squared/quark_squared.c b/keyboards/checkerboards/quark_squared/quark_squared.c new file mode 100644 index 000000000000..fbd7346cc0d5 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/quark_squared.c @@ -0,0 +1,17 @@ +/* Copyright 2021 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 "quark_squared.h" diff --git a/keyboards/checkerboards/quark_squared/quark_squared.h b/keyboards/checkerboards/quark_squared/quark_squared.h new file mode 100644 index 000000000000..d3d88422124f --- /dev/null +++ b/keyboards/checkerboards/quark_squared/quark_squared.h @@ -0,0 +1,46 @@ +/* Copyright 2021 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 + +#include "quantum.h" + +#define XXX KC_NO + + +#define LAYOUT_ortho_2x225u( \ + 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, k33, k34, k36, k38, k39, k3B \ +) { \ + { 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, XXX, k33, k34, XXX, k36, XXX, k38, k39, XXX, k3B } \ +} + +#define LAYOUT_ortho_2u( \ + 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, k33, k34, k35, k36, k38, k39, k3B \ +) { \ + { 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, XXX, k33, k34, k35, k36, XXX, k38, k39, XXX, k3B } \ +} diff --git a/keyboards/checkerboards/quark_squared/readme.md b/keyboards/checkerboards/quark_squared/readme.md new file mode 100644 index 000000000000..bbbe2bfb5b3b --- /dev/null +++ b/keyboards/checkerboards/quark_squared/readme.md @@ -0,0 +1,15 @@ +# Quark_Squared + +![Quark_Squared](https://i.imgur.com/zYH25zQ.png) + +The Quark² PCB is a hotswap version of the Quark PCB. Just like the OG, it has a modified layout than a traditonal 4x12 ortholinear keyboard. + +* Keyboard Maintainer: [Nasp](https://github.com/npspears) +* Hardware Supported: Planck +* Hardware Availability: https://www.checkerboards.xyz/Quark2_p_35.html + +Make example for this keyboard (after setting up your build environment): + + make checkerboards:quark_squared:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/checkerboards/quark_squared/rules.mk b/keyboards/checkerboards/quark_squared/rules.mk new file mode 100644 index 000000000000..5e96711c408a --- /dev/null +++ b/keyboards/checkerboards/quark_squared/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes # Unicode + +# Disable unsupported hardware +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no From 5319727b7086f9e73e423054eed4886d8de2750b Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 23 Aug 2021 02:28:48 +1000 Subject: [PATCH 314/328] Fix line endings for `quark_squared` info.json (#14113) --- .../checkerboards/quark_squared/info.json | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/keyboards/checkerboards/quark_squared/info.json b/keyboards/checkerboards/quark_squared/info.json index eb9383deba2f..2b97b34854b7 100644 --- a/keyboards/checkerboards/quark_squared/info.json +++ b/keyboards/checkerboards/quark_squared/info.json @@ -1,15 +1,15 @@ -{ - "keyboard_name": "Quark_Squared", - "url": "", - "maintainer": "nasp", - "width": 12, - "height": 4, - "layouts": { - "LAYOUT_ortho_2x225u": { - "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"label":"Super", "x":9.5, "y":3, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":3, "w":1.25}] - }, - "LAYOUT_ortho_2u": { - "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Alt", "x":1.25, "y":3, "w":1.25}, {"label":"Super", "x":2.5, "y":3, "w":1.25}, {"label":"⇓", "x":3.75, "y":3, "w":1.25}, {"x":5, "y":3, "w":2}, {"label":"←", "x":7, "y":3, "w":1.25}, {"label":"↓", "x":8.25, "y":3, "w":1.25}, {"label":"↑", "x":9.5, "y":3, "w":1.25}, {"label":"→", "x":10.75, "y":3, "w":1.25}] - } - } -} \ No newline at end of file +{ + "keyboard_name": "Quark_Squared", + "url": "", + "maintainer": "nasp", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_ortho_2x225u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"label":"Super", "x":9.5, "y":3, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":3, "w":1.25}] + }, + "LAYOUT_ortho_2u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Alt", "x":1.25, "y":3, "w":1.25}, {"label":"Super", "x":2.5, "y":3, "w":1.25}, {"label":"⇓", "x":3.75, "y":3, "w":1.25}, {"x":5, "y":3, "w":2}, {"label":"←", "x":7, "y":3, "w":1.25}, {"label":"↓", "x":8.25, "y":3, "w":1.25}, {"label":"↑", "x":9.5, "y":3, "w":1.25}, {"label":"→", "x":10.75, "y":3, "w":1.25}] + } + } +} From aa28335651a5a76d89054509186500c3af6147e7 Mon Sep 17 00:00:00 2001 From: Bror Winther Date: Sun, 22 Aug 2021 23:42:34 +0200 Subject: [PATCH 315/328] Add fix for brew upgrade (#12921) Add a fix for `brew upgrade` so only formulae is upgraded and not casks --- util/install/macos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/install/macos.sh b/util/install/macos.sh index 3ce8ddbfd3e0..870b4bec9451 100755 --- a/util/install/macos.sh +++ b/util/install/macos.sh @@ -9,7 +9,7 @@ _qmk_install_prepare() { return 1 fi - brew update && brew upgrade --ignore-pinned + brew update && brew upgrade --formulae --ignore-pinned } _qmk_install() { From 5cd7999bc4b9e7c049bc80e0f812676528a07209 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Mon, 23 Aug 2021 12:10:23 +1000 Subject: [PATCH 316/328] [Keyboard] Update rgb matrix config in kbdfans/kbd67/mkiirgb/v3/v3.c (#14094) This patch corrects 2 issues with the LED matrix of the KDBFans KBD67 Lite (v3) * Incorrect mapping of the right-shift, down-arrow, and right-arrow. (i.e. `NO_LED` positions of the `g_led_config` key matrix in the .c file do not match the `LAYOUT_65_ansi_blocker` matrix in the .h file. * Remapping of the *LED Index to Physical Position* using physical measurements from actual keyboard and accounting for the southpaw LED position to define the true centre of the keyboard (more relevant to circular animations). --- keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c index a082f36ba315..585ae39b6f12 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c @@ -94,19 +94,22 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { }; led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED,55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 } + // Key Matrix to LED Index + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, + { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 } }, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } + // LED Index to Physical Position + {6,10},{20,10},{34,10},{48,10},{62,10},{76,10},{90,10},{104,10},{118,10},{132,10},{146,10},{160,10},{174,10}, {196,10},{217,10}, + {9,23}, {27,23},{41,23},{55,23},{69,23},{83,23},{97,23},{111,23},{125,23},{139,23},{153,23},{167,23},{181,23}, {199,23},{217,23}, + {11,36},{30,36},{44,36},{58,36},{72,36},{86,36},{101,36},{115,36},{129,36},{143,36},{157,36},{171,36}, {194,36},{217,36}, + {15,49}, {38,49},{52,49},{66,49},{80,49},{94,49},{108,49},{122,49},{136,49},{150,49},{164,49}, {184,49},{203,49},{217,49}, + {8,62},{25,62},{43,62}, {95,62}, {149,62},{166,62}, {189,62},{203,62},{217,62} }, { + // LED Index to Flag 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, From a72b5621418bebf253865ed19f92a860b5b9039a Mon Sep 17 00:00:00 2001 From: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Mon, 23 Aug 2021 22:25:51 +0800 Subject: [PATCH 317/328] [Keyboard] update default and via keymap for ocean/wang_v2 (#14122) --- keyboards/ocean/wang_v2/keymaps/default/keymap.c | 2 +- keyboards/ocean/wang_v2/keymaps/via/keymap.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ocean/wang_v2/keymaps/default/keymap.c b/keyboards/ocean/wang_v2/keymaps/default/keymap.c index 876e5f7a5c26..b30e0d7a4eb3 100644 --- a/keyboards/ocean/wang_v2/keymaps/default/keymap.c +++ b/keyboards/ocean/wang_v2/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, MO(1), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(1), KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), diff --git a/keyboards/ocean/wang_v2/keymaps/via/keymap.c b/keyboards/ocean/wang_v2/keymaps/via/keymap.c index 876e5f7a5c26..b30e0d7a4eb3 100644 --- a/keyboards/ocean/wang_v2/keymaps/via/keymap.c +++ b/keyboards/ocean/wang_v2/keymaps/via/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, MO(1), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(1), KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), From 9472c4b8cb448f04e17810dd304e368c60fdd504 Mon Sep 17 00:00:00 2001 From: Olli Helenius Date: Tue, 24 Aug 2021 01:06:04 +0300 Subject: [PATCH 318/328] Fix US_RDQU keycode (#13464) `US_RDQU` and `US_LDQU` were aliased to the same keycode. `US_RDQU` should use the right bracket. --- quantum/keymap_extras/keymap_us_extended.h | 2 +- quantum/keymap_extras/keymap_us_international_linux.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/quantum/keymap_extras/keymap_us_extended.h b/quantum/keymap_extras/keymap_us_extended.h index 91cf6b97777d..fb3e9c7d36a0 100644 --- a/quantum/keymap_extras/keymap_us_extended.h +++ b/quantum/keymap_extras/keymap_us_extended.h @@ -214,7 +214,7 @@ #define US_DIV S(ALGR(US_EQL)) // ÷ // Row 2 #define US_LDQU S(ALGR(US_LBRC)) // “ -#define US_RDQU S(ALGR(US_LBRC)) // ” +#define US_RDQU S(ALGR(US_RBRC)) // ” #define US_BRKP S(ALGR(US_BSLS)) // ¦ // Row 3 #define US_SECT S(ALGR(US_S)) // § diff --git a/quantum/keymap_extras/keymap_us_international_linux.h b/quantum/keymap_extras/keymap_us_international_linux.h index 757949133522..e0c08200b967 100644 --- a/quantum/keymap_extras/keymap_us_international_linux.h +++ b/quantum/keymap_extras/keymap_us_international_linux.h @@ -212,7 +212,7 @@ #define US_DIV S(ALGR(US_EQL)) // ÷ // Row 2 #define US_LDQU S(ALGR(US_LBRC)) // “ -#define US_RDQU S(ALGR(US_LBRC)) // ” +#define US_RDQU S(ALGR(US_RBRC)) // ” #define US_BRKP S(ALGR(US_BSLS)) // ¦ // Row 3 #define US_SECT S(ALGR(US_S)) // § From e3483b4126adca1730dbaf1d466a227e66c6df91 Mon Sep 17 00:00:00 2001 From: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> Date: Tue, 24 Aug 2021 08:32:15 +0800 Subject: [PATCH 319/328] [Keyboard] Add new keyboard version: keychron/q1/rev_0102 (#14029) * Add keyboard Q1 * Update keyboards/keychron/q1/readme.md * Update keyboards/keychron/q1/rev_0100/rules.mk * Update keyboards/keychron/q1/readme.md * Change layer switch function to "default_layout_set" * Update keyboards/keychron/q1/rev_0100/info.json * Update keyboards/keychron/q1/q1.c * Mask out the DIP switch to fix sleeping issue when switch is ON * Added and changed readme.md Added keyboards\q1\rev_0100\readme.md Changed keyboards\q1\readme.md since different MCU may used in other version. * update * update keymap name * update keymap for keychron/q1/rev_0102 * Update info.json --- keyboards/keychron/q1/config.h | 22 ++- keyboards/keychron/q1/q1.c | 129 +--------------- keyboards/keychron/q1/q1.h | 7 +- keyboards/keychron/q1/rev_0100/config.h | 7 +- keyboards/keychron/q1/rev_0100/info.json | 2 +- .../q1/rev_0100/keymaps/default/keymap.c | 6 +- .../keychron/q1/rev_0100/keymaps/via/keymap.c | 4 +- .../keychron/q1/rev_0100/keymaps/via/rules.mk | 2 +- keyboards/keychron/q1/rev_0100/readme.md | 22 +-- keyboards/keychron/q1/rev_0100/rev_0100.c | 143 ++++++++++++++++++ keyboards/keychron/q1/rev_0100/rules.mk | 12 +- keyboards/keychron/q1/rev_0102/config.h | 31 ++++ keyboards/keychron/q1/rev_0102/info.json | 101 +++++++++++++ .../q1/rev_0102/keymaps/default/keymap.c | 64 ++++++++ .../keychron/q1/rev_0102/keymaps/via/keymap.c | 64 ++++++++ .../keychron/q1/rev_0102/keymaps/via/rules.mk | 2 + keyboards/keychron/q1/rev_0102/readme.md | 1 + keyboards/keychron/q1/rev_0102/rev_0102.c | 143 ++++++++++++++++++ keyboards/keychron/q1/rev_0102/rev_0102.h | 37 +++++ keyboards/keychron/q1/rev_0102/rules.mk | 25 +++ 20 files changed, 653 insertions(+), 171 deletions(-) create mode 100644 keyboards/keychron/q1/rev_0100/rev_0100.c create mode 100644 keyboards/keychron/q1/rev_0102/config.h create mode 100644 keyboards/keychron/q1/rev_0102/info.json create mode 100644 keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1/rev_0102/readme.md create mode 100644 keyboards/keychron/q1/rev_0102/rev_0102.c create mode 100644 keyboards/keychron/q1/rev_0102/rev_0102.h create mode 100644 keyboards/keychron/q1/rev_0102/rules.mk diff --git a/keyboards/keychron/q1/config.h b/keyboards/keychron/q1/config.h index fb6a70c869e9..2a8665c1b45b 100644 --- a/keyboards/keychron/q1/config.h +++ b/keyboards/keychron/q1/config.h @@ -32,15 +32,11 @@ /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 -/* RGB LED Matrix Configuration */ +/* RGB Matrix Driver Configuration */ #define DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1011111 -#define DRIVER_1_LED_TOTAL 59 -#define DRIVER_2_LED_TOTAL 23 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) - /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {0,1} } @@ -49,3 +45,19 @@ /* NKRO */ #define FORCE_NKRO + +/* Disable a single effect */ +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define DISABLE_RGB_MATRIX_HUE_BREATHING +#define DISABLE_RGB_MATRIX_HUE_PENDULUM +#define DISABLE_RGB_MATRIX_HUE_WAVE \ No newline at end of file diff --git a/keyboards/keychron/q1/q1.c b/keyboards/keychron/q1/q1.c index 943cf26cef3a..b496e278e8ac 100644 --- a/keyboards/keychron/q1/q1.c +++ b/keyboards/keychron/q1/q1.c @@ -16,6 +16,7 @@ #include "q1.h" + const matrix_row_t matrix_mask[] = { 0b0111111111111101, 0b0111111111111111, @@ -30,130 +31,4 @@ void dip_switch_update_kb(uint8_t index, bool active) { default_layer_set(1UL << (active ? 2 : 0)); } dip_switch_update_user(index, active); -} - -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - - {0, A_1, C_1, B_1}, - {0, A_3, C_3, B_3}, - {0, A_4, C_4, B_4}, - {0, A_5, C_5, B_5}, - {0, A_6, C_6, B_6}, - {0, A_7, C_7, B_7}, - {0, A_8, C_8, B_8}, - {0, A_9, C_9, B_9}, - {0, A_10, C_10, B_10}, - {0, A_11, C_11, B_11}, - {0, A_12, C_12, B_12}, - {0, A_13, C_13, B_13}, - {0, A_14, C_14, B_14}, - {0, A_15, C_15, B_15}, - {0, A_16, C_16, B_16}, - - {0, D_1, F_1, E_1}, - {0, D_2, F_2, E_2}, - {0, D_3, F_3, E_3}, - {0, D_4, F_4, E_4}, - {0, D_5, F_5, E_5}, - {0, D_6, F_6, E_6}, - {0, D_7, F_7, E_7}, - {0, D_8, F_8, E_8}, - {0, D_9, F_9, E_9}, - {0, D_10, F_10, E_10}, - {0, D_11, F_11, E_11}, - {0, D_12, F_12, E_12}, - {0, D_13, F_13, E_13}, - {0, D_14, F_14, E_14}, - {0, D_16, F_16, E_16}, - - {0, G_1, I_1, H_1}, - {0, G_2, I_2, H_2}, - {0, G_3, I_3, H_3}, - {0, G_4, I_4, H_4}, - {0, G_5, I_5, H_5}, - {0, G_6, I_6, H_6}, - {0, G_7, I_7, H_7}, - {0, G_8, I_8, H_8}, - {0, G_9, I_9, H_9}, - {0, G_10, I_10, H_10}, - {0, G_11, I_11, H_11}, - {0, G_12, I_12, H_12}, - {0, G_13, I_13, H_13}, - {0, G_14, I_14, H_14}, - {0, G_16, I_16, H_16}, - - {0, J_1, L_1, K_1}, - {0, J_2, L_2, K_2}, - {0, J_3, L_3, K_3}, - {0, J_4, L_4, K_4}, - {0, J_5, L_5, K_5}, - {0, J_6, L_6, K_6}, - {0, J_7, L_7, K_7}, - {0, J_8, L_8, K_8}, - {0, J_9, L_9, K_9}, - {0, J_10, L_10, K_10}, - {0, J_11, L_11, K_11}, - {0, J_12, L_12, K_12}, - {0, J_14, L_14, K_14}, - {0, J_16, L_16, K_16}, - {1, A_1, C_1, B_1}, - - {1, A_3, C_3, B_3}, - {1, A_4, C_4, B_4}, - {1, A_5, C_5, B_5}, - {1, A_6, C_6, B_6}, - {1, A_7, C_7, B_7}, - {1, A_8, C_8, B_8}, - {1, A_9, C_9, B_9}, - {1, A_10, C_10, B_10}, - {1, A_11, C_11, B_11}, - {1, A_12, C_12, B_12}, - {1, A_14, C_14, B_14}, - {1, A_15, C_15, B_15}, - - {1, D_1, F_1, E_1}, - {1, D_2, F_2, E_2}, - {1, D_3, F_3, E_3}, - {1, D_7, F_7, E_7}, - {1, D_11, F_11, E_11}, - {1, D_12, F_12, E_12}, - {1, D_13, F_13, E_13}, - {1, D_14, F_14, E_14}, - {1, D_15, F_15, E_15}, - {1, D_16, F_16, E_16} - -}; - -led_config_t g_led_config = { - { - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 }, - { 59, NO_LED, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 }, - { 72, 73, 74, NO_LED, NO_LED, NO_LED,75, NO_LED, NO_LED, NO_LED, 76, 77, 78, 79, 81 } - }, - { - {0,0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0}, - {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {120,13}, {135,13}, {150,13}, {165,13}, {180,13}, {195,13}, {224,13}, - {0,26}, {15,26}, {30,26}, {45,26}, {60,26}, {75,26}, {90,26}, {105,26}, {120,26}, {135,26}, {150,26}, {165,26}, {180,26}, {195,26}, {224,26}, - {0,39}, {15,39}, {30,39}, {45,39}, {60,39}, {75,39}, {90,39}, {105,39}, {120,39}, {135,39}, {150,39}, {165,39}, {195,39}, {224,39}, - {0,52}, {30,52}, {45,52}, {60,52}, {75,52}, {90,52}, {105,52}, {120,52}, {135,52}, {150,52}, {165,52}, {195,52}, {210,52}, - {0,64}, {15,64}, {30,64}, {90,64}, {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64}, - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - - } -}; +} \ No newline at end of file diff --git a/keyboards/keychron/q1/q1.h b/keyboards/keychron/q1/q1.h index 1e92a062adf6..eb9a7d69a74c 100644 --- a/keyboards/keychron/q1/q1.h +++ b/keyboards/keychron/q1/q1.h @@ -18,6 +18,9 @@ #include "quantum.h" -#if defined(KEYBOARD_keychron_q1_rev_0100) + +#if defined(KEYBOARD_keychron_q1_rev_0100) # include "rev_0100.h" -#endif +#elif defined(KEYBOARD_keychron_q1_rev_0102) +# include "rev_0102.h" +#endif \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0100/config.h b/keyboards/keychron/q1/rev_0100/config.h index 5b910f738120..435f386a596b 100644 --- a/keyboards/keychron/q1/rev_0100/config.h +++ b/keyboards/keychron/q1/rev_0100/config.h @@ -19,8 +19,13 @@ /* USB Device descriptor parameter */ #define PRODUCT_ID 0x0100 -#define DEVICE_VER 0x0001 +#define DEVICE_VER 0x0100 /* key matrix pins */ #define MATRIX_ROW_PINS { D3, D2, B3, B2, B1, B0 } #define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 } + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 59 +#define DRIVER_2_LED_TOTAL 23 +#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0100/info.json b/keyboards/keychron/q1/rev_0100/info.json index 4d101eac7061..215c7b050879 100644 --- a/keyboards/keychron/q1/rev_0100/info.json +++ b/keyboards/keychron/q1/rev_0100/info.json @@ -1,7 +1,7 @@ { "keyboard_name": "Keychron Q1", "url": "https://github.com/Keychron", - "maintainer": "lokher", + "maintainer": "lalalademaxiya1", "width": 16.25, "height": 6.25, "layouts": { diff --git a/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c b/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c index fa6f79175914..e000dd7dd7bb 100644 --- a/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c +++ b/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c @@ -24,18 +24,16 @@ enum layers{ WIN_FN }; - #define KC_TASK LGUI(KC_TAB) #define KC_FLXP LGUI(KC_E) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_82( KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, 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_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), @@ -63,4 +61,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; +}; \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c b/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c index 4108ade04f84..e000dd7dd7bb 100644 --- a/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c +++ b/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c @@ -24,11 +24,9 @@ enum layers{ WIN_FN }; - #define KC_TASK LGUI(KC_TAB) #define KC_FLXP LGUI(KC_E) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_82( @@ -63,4 +61,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; +}; \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk b/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk index 96d2d189b2e6..bee21da5283a 100644 --- a/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk +++ b/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk @@ -1,2 +1,2 @@ VIA_ENABLE = yes -MOUSEKEY_ENABLE = no +MOUSEKEY_ENABLE = no \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0100/readme.md b/keyboards/keychron/q1/rev_0100/readme.md index 0131794c18d9..5cf488f04867 100644 --- a/keyboards/keychron/q1/rev_0100/readme.md +++ b/keyboards/keychron/q1/rev_0100/readme.md @@ -1,21 +1 @@ -# Keychron Q1 - -![Keychron Q1](https://cdn.shopify.com/s/files/1/0059/0630/1017/t/5/assets/pf-823ebdc7--1073.jpg) - -A customizable 75% keyboard. - -* Keyboard Maintainer: [Keychron](https://github.com/keychron) -* Hardware Supported: Keychron Q1, Atmega32u4 -* Hardware Availability: [Keychron](https://www.keychron.com) - -Make example for this keyboard (after setting up your build environment): - - make keychron/q1/rev_0100:default - -Flashing example for this keyboard: - - make keychron/q1/rev_0100:default:flash - -**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. - -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). +# The ANSI variant of the Keychron Q1 \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0100/rev_0100.c b/keyboards/keychron/q1/rev_0100/rev_0100.c new file mode 100644 index 000000000000..9227e01b11de --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/rev_0100.c @@ -0,0 +1,143 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_1, A_1, B_1}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_15, A_15, B_15}, + {0, C_16, A_16, B_16}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_14, D_14, E_14}, + {0, F_16, D_16, E_16}, + + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_14, G_14, H_14}, + {0, I_16, G_16, H_16}, + + {0, L_1, J_1, K_1}, + {0, L_2, J_2, K_2}, + {0, L_3, J_3, K_3}, + {0, L_4, J_4, K_4}, + {0, L_5, J_5, K_5}, + {0, L_6, J_6, K_6}, + {0, L_7, J_7, K_7}, + {0, L_8, J_8, K_8}, + {0, L_9, J_9, K_9}, + {0, L_10, J_10, K_10}, + {0, L_11, J_11, K_11}, + {0, L_12, J_12, K_12}, + {0, L_14, J_14, K_14}, + {0, L_16, J_16, K_16}, + + {1, C_1, A_1, B_1}, + {1, C_3, A_3, B_3}, + {1, C_4, A_4, B_4}, + {1, C_5, A_5, B_5}, + {1, C_6, A_6, B_6}, + {1, C_7, A_7, B_7}, + {1, C_8, A_8, B_8}, + {1, C_9, A_9, B_9}, + {1, C_10, A_10, B_10}, + {1, C_11, A_11, B_11}, + {1, C_12, A_12, B_12}, + {1, C_14, A_14, B_14}, + {1, C_15, A_15, B_15}, + + {1, F_1, D_1, E_1}, + {1, F_2, D_2, E_2}, + {1, F_3, D_3, E_3}, + {1, F_7, D_7, E_7}, + {1, F_11, D_11, E_11}, + {1, F_12, D_12, E_12}, + {1, F_13, D_13, E_13}, + {1, F_14, D_14, E_14}, + {1, F_15, D_15, E_15}, + {1, F_16, D_16, E_16} + +}; + +led_config_t g_led_config = { + { + { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 }, + { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 }, + { 59, NO_LED, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 }, + { 72, 73, 74, NO_LED, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, 79, 81 } + }, + { + {0,0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0}, + {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {120,13}, {135,13}, {150,13}, {165,13}, {180,13}, {195,13}, {224,13}, + {0,26}, {15,26}, {30,26}, {45,26}, {60,26}, {75,26}, {90,26}, {105,26}, {120,26}, {135,26}, {150,26}, {165,26}, {180,26}, {195,26}, {224,26}, + {0,39}, {15,39}, {30,39}, {45,39}, {60,39}, {75,39}, {90,39}, {105,39}, {120,39}, {135,39}, {150,39}, {165,39}, {195,39}, {224,39}, + {0,52}, {30,52}, {45,52}, {60,52}, {75,52}, {90,52}, {105,52}, {120,52}, {135,52}, {150,52}, {165,52}, {195,52}, {210,52}, + {0,64}, {15,64}, {30,64}, {90,64}, {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64}, + }, + { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 + + } +}; \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0100/rules.mk b/keyboards/keychron/q1/rev_0100/rules.mk index 5080a4638cf1..9b172515842b 100644 --- a/keyboards/keychron/q1/rev_0100/rules.mk +++ b/keyboards/keychron/q1/rev_0100/rules.mk @@ -7,11 +7,11 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -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 +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +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 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work @@ -22,4 +22,4 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = IS31FL3733 +RGB_MATRIX_DRIVER = IS31FL3733 \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0102/config.h b/keyboards/keychron/q1/rev_0102/config.h new file mode 100644 index 000000000000..a537ab4e0d56 --- /dev/null +++ b/keyboards/keychron/q1/rev_0102/config.h @@ -0,0 +1,31 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + + +/* USB Device descriptor parameter */ +#define PRODUCT_ID 0x0102 +#define DEVICE_VER 0x0100 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D3, D2, B3, B2, B1, B0 } +#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 } + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 59 +#define DRIVER_2_LED_TOTAL 24 +#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0102/info.json b/keyboards/keychron/q1/rev_0102/info.json new file mode 100644 index 000000000000..cac67830b441 --- /dev/null +++ b/keyboards/keychron/q1/rev_0102/info.json @@ -0,0 +1,101 @@ +{ + "keyboard_name": "Keychron Q1", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "width": 16.25, + "height": 6.5, + "layouts": { + "LAYOUT_iso_83": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"Delete", "x":14, "y":0}, + {"label":"Insert", "x":15.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Page Up", "x":15.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"Page Down", "x":15.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"\"", "x":11.75, "y":3.25}, + {"label":"#~", "x":12.75, "y":3.25}, + {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"label":"Home", "x":15.25, "y":3.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25}, + {"label":"Fn", "x":11, "y":5.25}, + {"label":"Ctrl", "x":12, "y":5.25}, + {"label":"\u2190", "x":13.25, "y":5.5}, + {"label":"\u2193", "x":14.25, "y":5.5}, + {"label":"\u2192", "x":15.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c b/keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c new file mode 100644 index 000000000000..b4a7d6442754 --- /dev/null +++ b/keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c @@ -0,0 +1,64 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[MAC_BASE] = LAYOUT_iso_83( + KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + 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_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_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_HOME, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[MAC_FN] = LAYOUT_iso_83( + 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, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[WIN_BASE] = LAYOUT_iso_83( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, + 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_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_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_HOME, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[WIN_FN] = LAYOUT_iso_83( + KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keychron/q1/rev_0102/keymaps/via/keymap.c b/keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c new file mode 100644 index 000000000000..b4a7d6442754 --- /dev/null +++ b/keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[MAC_BASE] = LAYOUT_iso_83( + KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + 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_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_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_HOME, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[MAC_FN] = LAYOUT_iso_83( + 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, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[WIN_BASE] = LAYOUT_iso_83( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, + 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_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_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_HOME, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[WIN_FN] = LAYOUT_iso_83( + KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keychron/q1/rev_0102/keymaps/via/rules.mk b/keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk new file mode 100644 index 000000000000..bee21da5283a --- /dev/null +++ b/keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0102/readme.md b/keyboards/keychron/q1/rev_0102/readme.md new file mode 100644 index 000000000000..777ce0477349 --- /dev/null +++ b/keyboards/keychron/q1/rev_0102/readme.md @@ -0,0 +1 @@ +# The ISO variant of the Keychron Q1 \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0102/rev_0102.c b/keyboards/keychron/q1/rev_0102/rev_0102.c new file mode 100644 index 000000000000..b7f767c416db --- /dev/null +++ b/keyboards/keychron/q1/rev_0102/rev_0102.c @@ -0,0 +1,143 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_1, A_1, B_1}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_15, A_15, B_15}, + {0, C_16, A_16, B_16}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_14, D_14, E_14}, + {0, F_16, D_16, E_16}, + + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_16, G_16, H_16}, + + {0, L_1, J_1, K_1}, + {0, L_2, J_2, K_2}, + {0, L_3, J_3, K_3}, + {0, L_4, J_4, K_4}, + {0, L_5, J_5, K_5}, + {0, L_6, J_6, K_6}, + {0, L_7, J_7, K_7}, + {0, L_8, J_8, K_8}, + {0, L_9, J_9, K_9}, + {0, L_10, J_10, K_10}, + {0, L_11, J_11, K_11}, + {0, L_12, J_12, K_12}, + {0, L_14, J_14, K_14}, + {0, I_14, G_14, H_14}, + {0, L_16, J_16, K_16}, + + {1, C_1, A_1, B_1}, + {1, C_2, A_2, B_2}, + {1, C_3, A_3, B_3}, + {1, C_4, A_4, B_4}, + {1, C_5, A_5, B_5}, + {1, C_6, A_6, B_6}, + {1, C_7, A_7, B_7}, + {1, C_8, A_8, B_8}, + {1, C_9, A_9, B_9}, + {1, C_10, A_10, B_10}, + {1, C_11, A_11, B_11}, + {1, C_12, A_12, B_12}, + {1, C_14, A_14, B_14}, + {1, C_15, A_15, B_15}, + + {1, F_1, D_1, E_1}, + {1, F_2, D_2, E_2}, + {1, F_3, D_3, E_3}, + {1, F_7, D_7, E_7}, + {1, F_11, D_11, E_11}, + {1, F_12, D_12, E_12}, + {1, F_13, D_13, E_13}, + {1, F_14, D_14, E_14}, + {1, F_15, D_15, E_15}, + {1, F_16, D_16, E_16} +}; + +led_config_t g_led_config = { + { + { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, 43 }, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 }, + { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 }, + { 73, 74, 75, NO_LED, NO_LED, NO_LED, 76, NO_LED, NO_LED, NO_LED, 77, 78, 79, 80, 82 } + }, + { + {0,0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0}, + {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {120,13}, {135,13}, {150,13}, {165,13}, {180,13}, {195,13}, {224,13}, + {0,26}, {15,26}, {30,26}, {45,26}, {60,26}, {75,26}, {90,26}, {105,26}, {120,26}, {135,26}, {150,26}, {165,26}, {180,26}, {224,26}, + {0,39}, {15,39}, {30,39}, {45,39}, {60,39}, {75,39}, {90,39}, {105,39}, {120,39}, {135,39}, {150,39}, {165,39}, {180,39}, {195,26}, {224,39}, + {0,52}, {15,52}, {30,52}, {45,52}, {60,52}, {75,52}, {90,52}, {105,52}, {120,52}, {135,52}, {150,52}, {165,52}, {180,52}, {210,52}, + {0,64}, {15,64}, {30,64}, {90,64}, {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64}, + }, + { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 + + } +}; \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0102/rev_0102.h b/keyboards/keychron/q1/rev_0102/rev_0102.h new file mode 100644 index 000000000000..a13ffa56c0bc --- /dev/null +++ b/keyboards/keychron/q1/rev_0102/rev_0102.h @@ -0,0 +1,37 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define xxx KC_NO + +#define LAYOUT_iso_83( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K2D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K3C, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K4C, K5E \ +) { \ + { K00, xxx, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E }, \ + { K50, K51, K52, xxx, xxx, xxx, K56, xxx, xxx, xxx, K5A, K5B, K5C, K5D, K5E } \ +} diff --git a/keyboards/keychron/q1/rev_0102/rules.mk b/keyboards/keychron/q1/rev_0102/rules.mk new file mode 100644 index 000000000000..9b172515842b --- /dev/null +++ b/keyboards/keychron/q1/rev_0102/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3733 \ No newline at end of file From 47a38c3f0ea0fe44c90040514889a69de9b53f2f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 24 Aug 2021 05:02:53 +0100 Subject: [PATCH 320/328] Remove more unused files (#14135) --- CODE_OF_CONDUCT.md | 24 ------------------------ secrets.tar.enc | Bin 10256 -> 0 bytes 2 files changed, 24 deletions(-) delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 secrets.tar.enc diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index c9e3e0586ae9..000000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,24 +0,0 @@ -# Code Of Conduct - -QMK strives to be an inclusive, tolerant, and welcoming community. We encourage participation from anyone regardless of age, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, political belief, race, religion, or sexual identity and orientation. - -> “A gentle word turns away wrath, but a harsh word stirs up anger." - -Our users, contributors, and collaborators are expected to treat each other with kindness and respect, to assume good intentions, and to gently correct, where possible, rather than react with escalation. While our goal is to be as accurate as possible, kindness and understanding are more valuable than correctness. Some examples of behavior we will not tolerate include, but is not limited to: - -* The use of sexualized language or imagery -* Unwelcome advances, sexual or otherwise -* Deliberate intimidation, stalking, or following -* Insults or derogatory comments, or personal or political attacks -* Publishing others’ private information without explicit permission -* Sustained disruption of talks or other events -* Other conduct which could reasonably be considered inappropriate in a professional setting -* Advocating for, or encouraging, any of the above behaviour - -# Reporting - -If someone is violating this Code of Conduct, please email hello@qmk.fm or reach out to one of the Collaborators to bring it to our attention. All complaints will be reviewed and investigated. - -QMK will seek to use the least punitive means available to resolve an issue. If the circumstances require asking an offender to leave, we will do that. - -Reports will be taken and kept in strict confidence. You will not be required to confront an offender directly. diff --git a/secrets.tar.enc b/secrets.tar.enc deleted file mode 100644 index 6c613fed98cc4ae7553e92b854acea154aca8d1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10256 zcmV+rDDT%2zh#6!x80GYL}$Kv_heE*MU3efPzZg`D5}Z5^81|C9?&&h9Q@7O(+8CR zC0~0dmMh3nhlj*#q?r$;45DG+k?#`XSNm56Upv-cE>pAL$Ba3TECgz1@7a2$QsfOzs((aM>N`t7!SlsY0Tsnq@m^62ZXLbLD8E4@30wId!n)6@} zvj{MPKO|k`r!m?2m&qQYxh~iES+Xu3$-?GrabdiZ&Ui^{f@30Dds(PG^MflorQbj3 zcvga6V&~=k@za7WwlD}kp8yJO1|w1|Upq35`Yt!pUrj?!3+i1e6E zQQE5)WJO~?&GI1$k@YQ;tnc(i(XmKn%#n2eQJCAiid#vFcU3U~QLN{JS8#7Q@Pi+x z8M7dofuh63)YP(;_&^eMYVYZ1BmI!dK`@999U=*EG36(gLiS+OQ37J=`+U{hoaxbh ze`*ES?HUMSD%m%1B&~F!I703VB|SAVrKGm_Q&OwOgAHO?@(aIxG^Lm#?JX7bTSpM7Dfl}A`2=DhdjFBeagO9M&xvB79h48Eg zz3%kC5pZ!unn2Co;5*Z8y{>rW2{$E)Jhj6~v=l`L%6Iaqen9p+r z6F2ziCC91C`W^er*?@z}yd36m>@xh^vG zbF#!=;K}r{gVLNw(pV;B?)g#q+V+MQf|0KBFSg$UfMiEtyL$!(F)cmey(=E0EZdo4 zs(6pM-HS&Rv_19w)8V~={ib!ng^cWGpfreO!t_q*6b%RJp?PwBLJOtF!XvZo9hm6& z5>9~kA}r^(rK6mKLouvr#bLt*{RosX0YsEtR4RIwB38o)WvQ(ZaT}Q(kU?U06!{;0 zR(7tR;G?;`cSR+@50zM{7>j$Be?aFsc_7vJHE6P z0+fl^ikox%Ksi%vyq9yUX?(R8#n~@zHYE#8=I3qtDHb^lHUmN4F#$vkU@fGj= z`;m8jt$;7Qwxb-wirtpPI!Q>!#Qc=z(%HkkK7`0vX}y#rD3-oz26*zG4B8CIzKF4bV_kQ>^5HbF@H^ao!?99QN=_tLgGbnx>blXK(26`(iv;RdrmsSBVZolOH+bBG$$AZ*0*OhAROf}ZwECQHCU*Mm*E~!C zwSP+CR@eZ*TnQ%i$dkfs?_P91b2M9r*|9$rNJj5Ea}f!H!dE^7G-G+>yn`2N95NjG z4!+LDuF(1d1pr~LX@ptYxKBR&V$Xw<)$-jT)5K^G<*)&OnO2hD<4fUm1_M36_5N0* zHUd9R&GF|z3b8Ug=eG*hSc_-QrQDj=3gfX-Hy>+|_9%-zqchtP@q%iuZnL?Y)^ z|9!qU+K#_4a&HpjI>ZWD++MB>l~epoqc0jioC1XIO`(t%Zg0>786St|KeF~RWmhU+ z(kV>{LE&|zlhqy>?=+6NWgy28O+vdl=eg_?kcWOp$jdDsS*sY*D6zj{B3lxXn&0k6 z#Ef7_Xs*MTBZJ)U@@e-6lTn=>ik2d zVjY^|_D*dV*HQ%IG)lQaeeA~x%XE(0Tl_dnl@i1?a3X_>z!Bv^p<(YB-6%ciW+`s& zM%!;#8d4QT{200ni-RKIRul%Uz<)RiENY3J6UsRcQMoOQv}DIPk&-vXvR*T~f3)dv zwAdf8-A66se^-PG^Dw`%vmM$KMHB+wTu!w{_l5;JHNc5^Txf1N*4%N^%&PljV@%^G zx>fwYeQkOM6!!2!Ot8efa{)yWPpYF4HuCYg$Ss;PM)0M1il&%6sp>x!ksI$xtrYZb zHX(W>9~U$=XKI@&%E5YCl!zM$_NSBsI9;prf2Lg}5<1|eVNesMfyfIWmf=gzyV*h> zNN3QqY8$4?b3O-wfwx(+T)vyv&diG=I8#0X^yYn!V!5PnWPnNC4UnBo)mXc6v0D}+ z%t_gn1OOY)D;HxJ^70lk^#H&GGw`!IC21t^?x5vpvG9LsLxkUl@8oGdlj#fF&ju^H z=o28rXBwybTa&&d;l+N(soJrsR&3MIiIC_PWvF zUYQY1ILekCI*dgT&0FP3w6$BWnt;LJI%;N{t0-T8VL8Wr)9n!bI>7s0l z)k8d08WT)d!R`MTe}{MItV5L@U}yv~%lz~h(7@L4c&1OWr2IZp2KTasdd!F1tBghk zka>EGitND#+MXofCe!gtgzgEl9f&Cy{IlU5FUT8-h6m_<*32EeO@UGIndX{vcOr7uudH^j`f{76dd+hEG*B?P~#R2+3d=J^2g5>v@Kr$T`2% zTMP1KWyaK4p_STni#LYWOdKJvX;Gn)90Y2EmG(xC9_?*Nu9avnf1- zMhD-xLR0nREZ(3-62RoI_7Kxj;5>*0Q!XM@!MxZU8vLEVj@Kx$wNs`Y{= z3A_?VcrWdK%cK)!~}X-kPT^k4>r=R{96&PkK#4#QdgZe7S(S z0RHklnWE)U)1FC{IaQy})8EjG!7Fuf@~*-kf}?3Avu$aW!bMVO$ei@p!dlodnJ$t` zW==sco4m)dW{p|iAb~U~fs44R&pNe#fJcC<%H^EO>ZKox4#aaZJzb_{EEfe+yOezm zi?0bi;%l^zIG(+2BzjLnu8==mU@+FO#er;`v!{ zRoVmneSbys66AG`f33jECr0@&8xhkLP>J55bCkfBn9{4e3_4P-RTpyb2y_yW1)^D7 z!gN2ttcUx|-X*G3a{8#SZ_%vaMduK`tkOI~xT-M_*0hRi7cE(e7`uK7j!1{apNboZ zlOetG{*x|lz-|EMqq?I{eu&h^q2SC61m33g(6Hr^709nHAZ9@c2xa91jXto?<>3jm2pMc0_q50pN4Oz*sd~rodvAYQODY3a(sdEn z2ibTNz*lEp!`gpzj(a{>gp5`Qz|1-ec;@U7RTqRag|s3!Eyttdf_+O<7CYn{daY1V z;vcgn*N4tWu5p<=!x}fxEz7Y@zA3>q*ccBn9Y>4$WA_!mwCSke%p)>af z`%g*^{iIIYbS}U7oQQl-lva5<@7VYczk=Rhe)?K0jwqB!L$D`aZA5?M;^{Mf^|1x# z)A0dXf}NdhW>%b3VqGQ!Xbff>vhacM)H2u#(u_7y^e#J5Inveq=1y-uyjG28Bz-mH z7Yx39+NM5WB|+XY3si#l%+&pbp5EXs2Lbz~616Dc(JXthJ)xnBH{440anQOMr-e>^ zf5d*=XIdI06S_7n_I8jey~V86qA>x&pnmQgU4 zm+1Nvkt6l8b{$JCXcjFS3aR>El-WrY^@pso%Jn80%P3Sr2kY7OBnxo~E*nyke z}g?$WPrq@g23g_kj{r&7+ z_UnaaI^SNFuWFOgfU}|iQ@gL!YA+)Ed6v^_*t#w`%+cy^Pgmm z*+DN_+%it5Mo?|_9f0LVL%`cO)4J^6P6bkOB_+NU%lv4j>O-xf6u%nqaHpV|A>~8i zAIjMuw?@i@Ue(9?^1v`LARDwJ z+hf-4laj}A^%FB6*c{q|*A72F(c>Fig^*&$r3V@dKR*)K$XnbvU3=}d2y*zm)8#&z|$Ri)t0cK)WZk{&>ZlGH$X4Bb2dkg zCpK$x%iqtd`lkPv(fr6N^=#DNYwS@#rqb2%pEYJzepoL<-j-s1-wQ@^KgF4?JT+b= z$TV)@>fpp37br5wV^!596++ymvm(K+@ktRjT?*xvB#_PoI;gQgJj%YFXn@h$BcosIWgQtJI>j*5kx$Pxg5_l z!%Ea#oDV^~yPlaT1>dwUPqP{w&;4hKfI)$jbMQ|RbkcR@-9@MQ^$Gj95i)q;NzHNa zF3ISxcHGw}_0xwmq1N^eR6^A~y}PhF0L$fL~lYtj4s zVdmksLHJ2F#-Bw{8_#SjE-4}`_WsJ=?&c(Bd1?gd+hI`zR~5CVoWjSjCwE#hj>qKa&3bR`DML|pla;-OQ^xTj zE-!`L`^A1#MKH?Z#Oh9QM;!dbl-8Q?9FUxl!j0(h^3LIf{$ak-xGsSCzo*#4xkBhc zo7tw@gR$lWdnV4a!j}Zgs0r(V6sQk9$sYa~)MOV+m#~^Em^o4Nm9*UM1O@ShHxF4# zx~a%VdG(B9L&JfF&l^#B4KxDS^|3?Am-65@<2=y`un(3NG$PVCrL=@&U_vEuE!yI) zFT18A5subL)Kn<4^w*gs_sxm=oM@X;dSRB1CqdLSraWGe5$l(4X&MiIm!WV`bgu;r z+*WIR{$Ji$bwa1?N^U+ljkJ3zEzQAih>Mu_V*<$>*X=E}4@64WmD>zeS%bf$4Qu5~ zK6%d7(4c&zX#ghjLkcu8p*p(9n6|H&{)@4|aYNF6AT;wtf0aqy_Qsa`)-&SQ7?MVq zjgbG>yNV{kV+jk9!C=-%}rU*OAN0 zjqxVyO=DyPf7Zb2*(r34x=PX7RWeH{sdq4J`fH~TTX2y{@Uufc_lb!5jXt8HY{BSi zo1NHu{`$GSvx;|vTu3GukhtkPW#qD-bFJ9F#csXjJHZ^QJaU<}v%0$JpKgV`9xYnP zROsE>MX{~>5S2pW!N6!tvaoU&P|!IWu8!4<>)I8hv7a4Km1bNA*sImT&nDQ6hoL|D z=_8AZ*p;I?V6M8&ppTp>Cmb*hV^k}06!Fw@Xj`aJmdawK@rmQT>->J}%)IWUKWYG(uY{EV8n`t`5uhObp4vwZvY0owS%M(S3Gep`n;J z;m9oZcH+r1@$YyzWBL%vevq5D^VgmZJc1D+1@pF>nI8->&bMI&Rj5Qz$8SEeSiPa| zlEAEYBGE@!UY~h*)N5TUcQ_!&+~dmi4u{IH0=~~lIDiut0Vpy$ep9kH7%%{&XH;+g z>nUkng>!9j7;O#C7HFbs z-_D@V7=!i!byvDys=;DdZ+r0`8tQY!hZ=cIb}Uq`Q^Yz5O&_>vHk=#8#X_B~>6(b7=ytL69#>~MN164oFe@CV5y?{VtKYWoWSG`4&zYN1 z)xL%_0-o8g$}#z-R4nud`4rvgDU0Z2dN8xB=wE8>yl_7)42%%_M$_1l~1)>F!pBO^2*w|qmq=j*fI2*f4%~Ckp+FRx8L>Q&wycO zxYG?EoI~}Ad5{goQ3lJ1cqj5+5jTAZ!J~zqzq~97mMU1!B=A0zK`Dq%2U1Ef0*1`h zVty#)dra=@ow<#nUb00Z8&M?+RB`&3QeOtP}gIeTI&CIL;qlr5-)KZv6eISI6e@9-X$>bt7{BtP4m? zZVw78n=#vzf)k4u98y4VB?q(q1Y$I@W7FwdmB!|*&65b4!9IMt-z5t-v|f^jhWcke zOE__Bp*%6mx@F}?J9-7K;CmYe#+#7I>U7sYy)`2xYl+7!3}M^y3Q0F9&+)4po%)qv zRqe*KOipZ!mzca94K=@Qr#JPW16P8o@bfAD(CIOsST<`Jety9CwV}zgEKv@n zTW8F$I1!OJ0r>>e%NRQG=(!3~S?`(UePg-H+fM3}oKb}>ukv855j0>(ReEJ|O}^(^ zh#Y6^(j)m=AI4b24MZW5M)X}3Zt6w}-_t7<^+C15fTTOnX}ts*1Gw@U@iVuT3iL8z zznETnZtCs^+kdXJjI3N3ekfEpu}iM9Z33O(W5jy*KwX~-Mc{ z*>T*p-cWc4l5^`O9^D{7X94kqu>+TV%cTt_!)Z;S7@L~c<`*f=R0UAuDV82{-imfu z&W;9l)mC1m#GgEqYS@gzcO{54F zmKw&)B9Al?Vf({a@Hh-=WvvB5854{?g_BY7p);n6IgBTgFb#-(#Cf#^8IQGEkUg55gb#$#ToMbA3W12U`9<_{13U!0xJGE zZv4sjtf5)Em#3o#rlF&Wm~+g0g^VC}Ge(TD+5lcf<&;jiSFGjP6R3VXk{7Y*^I~Lo z(0gq-?~cGLx1T#*_aNP4*Kb7~+`0Y2sw`S6SY4tJ++QSs+D!#r#Qx)18j-iUAS79g zE-n1Ep#?!Fab$>(aO<;g!1+~|l1?+5ZW|&g0UY1p!U{&pxqCO`dX|XynFM?etYAGK zDvfSCRbo>Z=jpK5ZY-J&s3B1$PrFDKEd&VZk<<5N~GCXmV0cKU8 zfmwp(+xM+K_<#j3ZXtQ%>u6nsgTP@L4^u$F25vMZ)Ja?y2YegLgLCCKhP=r8{6MRj zUCKRo=yDmgzFd0qS#M^AD<+c&=_k*}euDV+Sv0QpPr zF9LL{{ph|@tN>Jck>VoH1LNv;pli)krjOKvd}eh{M2_jo#M|L5j?iW6hamoP$z0EA zXgB@Zz+z_>JytG2^f3$9VO!pcH+uqO6-Pq|BFqM5(!G5RG{$uSECb{1p5M-Rwl=g7 zjBk6m5F_)clJ5xGP$I8pXhWKjH7*y6pO^IT>{@_)3BwZwg8oMEaj-v{+0$RWZ>mQD zLAaNn1|JLAQ6)S25NbEmhKDvxbvCx1;=gjF-l*3WfuFk7S5K8G$6uT*DGLzAc;e7( zGm8hHU>cdhxm}R5D1{ZJf#pF9+Njj^y#eE$!{f;#C`}brMOskt(9m_DX$unfd(n0w z4@kJ_KD?5C&=x3VL8RA=8}$0PTwH@S%hW0}MzCjiiV>-mj#Iw1E;E z@RBm%Mj!}@awSsR1H(;Zy}zxaMw`UJ^<#Zd z&57vtWd#kE1gPJd)o72o=!$?5zDM1A!uyA4Dy~w8DZuKt=%O?(3JJJVBgI245P7S_ zGz*-WegC4LC^Z81S3iDSrg*V45^|*LLNlq?qYp(sx zmzwfAp)Gl3`L^JM$d>XYU~`Mx!$O_oKB1W2Z)#}Kl65mjx)LOetOHSa2E9$O$^AVL z{Atvcg%wtCQvz3h9T9!ULoFaM_nb0Ev#_wYiOn!Z_kjM$GS%pmfU z({-?Oe}!e6VRLoeq~E-oF?4EKaXmGrR`MTzTH z;fI>!yiqh$nsnHLsoC2vmZB;HA05V54vmLLuehqVJUNyZJh)+dA ziq;S0EgyK4^69b;MZM3XYQ8Af`gzw6{Uj1K0VUgNG6!ch*G6#{!IIA(!O1Q^=Yyf!B4+%NEO=wlObd$T6E;ebD}>c#<9QynD~fTmC}DWKg#~w^rV>l0M#N zdg@6_&0!>m^)4O?Bi>*SLe}K^IvIVr&|?2CuV5EAi%5O4xY}x9xz$qWlE z$y+IkldJ<(9xx%(QACbd3C5ptXZhOi@Bn|jBLK(yyi~Fw@ZFSIwJG9gUyfNuKkbTC zbr<4qV4mH|lP7mLI`mq^E^lYRzP$IZ5vPOenWXkfsKIQpjizb!fFqR(B?@51M4pm% z@v9|NiGSb4nf5<5DSiwtu8306T_`fok;Fk#2I29A-e4YL(Z=k`OCPN!BdFo`aLKo9 zy><-+-v`4`BltK>X(DfGJ{QQ?e2zypB9o9zA+{`UzBXO!6xMozU zQ@vw&23>y3XxeJTZOA-g!^;{b7)MwrIFln7GrO-2B$zGM*mTzHj|v8}{HP!CW4J@Z z!}sCKk5<=@Ke2`pdT!1rG&e&vh|nL%>>i?4(BnS8{R=V%$)3nOUnb>aD?S@b+JmVG z;F}E=To^U=#XA=?WK0ol|0_2G`LGBKY1goNx7c`O$21CofVX&iAOLsoL3!w)&o2t< zyrCyD9*;6Tg{!4w@|l>I1UrGuGG{t23O9gXUivvGM{jjW7WfncLy9@TbV+_A=^A+! zcia_3e7+no{HP{s37PR&eh&lCkZ%BF7V?aG1)(&EsP6a{%MMGB6;7UCIS0T(mud=x zM}>6~31F3|kZus6+Mbd6z_4B`6|%xw`r{CxY%jlA)S5s`4l#JW3z_g1d1-*wQ4o*> zY&*a~HTF@>*5-KB8chWNJ%jDL%$2o}!u2vz}Vr%m-BkO+FDyOjHgE!lrlsf&9S) Date: Tue, 24 Aug 2021 01:19:00 -0700 Subject: [PATCH 321/328] [Keyboard] Fix default keymap for quark squared keyboard (#14139) --- keyboards/checkerboards/quark_squared/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/checkerboards/quark_squared/keymaps/default/keymap.c b/keyboards/checkerboards/quark_squared/keymaps/default/keymap.c index 88922f86cd06..56aa2ea6b20c 100644 --- a/keyboards/checkerboards/quark_squared/keymaps/default/keymap.c +++ b/keyboards/checkerboards/quark_squared/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | * `-----------------------------------------------------------------------------------------' */ - [0] = LAYOUT_ortho_2x225u2u( + [0] = LAYOUT_ortho_2x225u( KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, From e1c264f5793b246baa1dd70b39e964dd821c475f Mon Sep 17 00:00:00 2001 From: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Tue, 24 Aug 2021 16:42:23 +0800 Subject: [PATCH 322/328] [Keyboard] Update info.json for ocean/gin_v2 (#14121) Co-authored-by: Ryan --- keyboards/ocean/gin_v2/info.json | 74 +++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 6 deletions(-) diff --git a/keyboards/ocean/gin_v2/info.json b/keyboards/ocean/gin_v2/info.json index f907061a53c9..8e435dc0e90d 100644 --- a/keyboards/ocean/gin_v2/info.json +++ b/keyboards/ocean/gin_v2/info.json @@ -1,12 +1,74 @@ { - "keyboard_name": "Gin V2", - "url": " ", - "maintainer": "Ocean", - "width": 16.25, - "height": 4, + "keyboard_name": "Gin V2", + "url": "", + "maintainer": "Ocean", + "width": 16.25, + "height": 4, "layouts": { "LAYOUT": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3.25, "y":1, "w":1.25}, {"x":4.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1, "w":1.75}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3.25, "y":2, "w":1.75}, {"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":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2, "w":1.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3.25, "y":3, "w":1.5}, {"x":4.75, "y":3}, {"x":5.75, "y":3, "w":1.5}, {"x":7.25, "y":3, "w":2.25}, {"x":9.5, "y":3, "w":2.75}, {"x":12.25, "y":3, "w":1.5}, {"x":13.75, "y":3}, {"x":14.75, "y":3, "w":1.5}] + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3.25, "y": 0}, + {"x": 4.25, "y": 0}, + {"x": 5.25, "y": 0}, + {"x": 6.25, "y": 0}, + {"x": 7.25, "y": 0}, + {"x": 8.25, "y": 0}, + {"x": 9.25, "y": 0}, + {"x": 10.25, "y": 0}, + {"x": 11.25, "y": 0}, + {"x": 12.25, "y": 0}, + {"x": 13.25, "y": 0}, + {"x": 14.25, "y": 0}, + {"x": 15.25, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3.25, "y": 1, "w": 1.25}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1}, + {"x": 14.5, "y": 1, "w": 1.75}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3.25, "y": 2, "w": 1.75}, + {"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": 12, "y": 2}, + {"x": 13, "y": 2}, + {"x": 14, "y": 2}, + {"x": 15, "y": 2, "w": 1.25}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3.25, "y": 3, "w": 1.25}, + {"x": 4.5, "y": 3, "w": 1.25}, + {"x": 5.75, "y": 3, "w": 1.25}, + {"x": 7, "y": 3, "w": 2.25}, + {"x": 9.25, "y": 3, "w": 2.75}, + {"x": 12, "y": 3, "w": 1.25}, + {"x": 13.25, "y": 3}, + {"x": 14.25, "y": 3}, + {"x": 15.25, "y": 3} + ] } } } \ No newline at end of file From b8c74d6b5d2e31b59b4ec73c84b8b4212b4b0936 Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Tue, 24 Aug 2021 16:49:13 +0800 Subject: [PATCH 323/328] [Keyboard] Update Technik staggered RGB matrix points (#14125) Co-authored-by: filterpaper --- keyboards/boardsource/technik_s/technik_s.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/keyboards/boardsource/technik_s/technik_s.c b/keyboards/boardsource/technik_s/technik_s.c index 63c77928aeeb..a1fe68d1a3a3 100644 --- a/keyboards/boardsource/technik_s/technik_s.c +++ b/keyboards/boardsource/technik_s/technik_s.c @@ -17,22 +17,22 @@ #include "technik_s.h" #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { - {11,12,13,14,15,16,17,18,19,20,21,22}, - {23,24,25,26,27,28,29,30,31,32,33}, - {34,35,36,37,38,39,40,41,42,43,44,45}, - {46,47,48,49,50,51,52,53,54,55} + {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}, + {22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, + {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44}, + {45, 46, 47, 48, 49, 50, 51, 52, 53, 54} }, { - {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}, - {10.5, 1}, {9.5, 1}, {8.5, 1}, {7.5, 1}, {6.5, 1}, {5.5, 1}, {4.5, 1}, {3.5, 1}, {2.5, 1}, {1.5, 1}, {0.5, 1}, - {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}, - {11, 3}, {10, 3}, {9, 3}, {8, 3}, {6.5, 3}, {5, 3}, {3.5, 3}, {2, 3}, {1, 3}, {0, 3}, + {220, 17}, {172, 17}, {112, 17}, { 50, 17}, { 4, 17}, { 4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56}, + { 0, 0}, { 20, 0}, { 40, 0}, { 61, 0}, { 81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, + { 10, 21}, { 30, 21}, { 51, 21}, { 71, 21}, { 91, 21}, {112, 21}, {132, 21}, {152, 21}, {173, 21}, {193, 21}, {214, 21}, + { 0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, + { 0, 64}, { 20, 64}, { 40, 64}, { 68, 64}, { 97, 64}, {126, 64}, {154, 64}, {183, 64}, {203, 64}, {224, 64} }, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1 - } }; #endif From a4aa6ccf7b98a203c16be51e8db4970a80f0abfd Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Tue, 24 Aug 2021 10:49:50 +0200 Subject: [PATCH 324/328] [Keyboard] Add QEZ keyboard (#14131) --- keyboards/kb_elmo/qez/config.h | 44 ++++++ keyboards/kb_elmo/qez/info.json | 128 ++++++++++++++++++ .../kb_elmo/qez/keymaps/default/keymap.c | 37 +++++ keyboards/kb_elmo/qez/keymaps/via/keymap.c | 43 ++++++ keyboards/kb_elmo/qez/keymaps/via/rules.mk | 2 + keyboards/kb_elmo/qez/qez.c | 17 +++ keyboards/kb_elmo/qez/qez.h | 57 ++++++++ keyboards/kb_elmo/qez/readme.md | 24 ++++ keyboards/kb_elmo/qez/rules.mk | 22 +++ 9 files changed, 374 insertions(+) create mode 100644 keyboards/kb_elmo/qez/config.h create mode 100644 keyboards/kb_elmo/qez/info.json create mode 100644 keyboards/kb_elmo/qez/keymaps/default/keymap.c create mode 100644 keyboards/kb_elmo/qez/keymaps/via/keymap.c create mode 100644 keyboards/kb_elmo/qez/keymaps/via/rules.mk create mode 100644 keyboards/kb_elmo/qez/qez.c create mode 100644 keyboards/kb_elmo/qez/qez.h create mode 100644 keyboards/kb_elmo/qez/readme.md create mode 100644 keyboards/kb_elmo/qez/rules.mk diff --git a/keyboards/kb_elmo/qez/config.h b/keyboards/kb_elmo/qez/config.h new file mode 100644 index 000000000000..055ebe2a4b66 --- /dev/null +++ b/keyboards/kb_elmo/qez/config.h @@ -0,0 +1,44 @@ +/* +Copyright 2021 kb-elmo + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xA68C +#define PRODUCT_ID 0x675F +#define DEVICE_VER 0x0001 +#define MANUFACTURER kb_elmo +#define PRODUCT QEZ + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 10 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { C6, C4, B1, B0 } +#define MATRIX_COL_PINS { C7, B7, B6, B5, B4, B3, D6, D5, D4, D3 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter */ +#define DEBOUNCE 5 + +/* Indicator LEDs */ +#define LED_CAPS_LOCK_PIN C5 diff --git a/keyboards/kb_elmo/qez/info.json b/keyboards/kb_elmo/qez/info.json new file mode 100644 index 000000000000..82b8d20444b4 --- /dev/null +++ b/keyboards/kb_elmo/qez/info.json @@ -0,0 +1,128 @@ +{ + "keyboard_name": "qez", + "url": "", + "maintainer": "kb-elmo", + "width": 10.25, + "height": 4, + "layouts": { + "LAYOUT_split_space": { + "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, "w":1.25}, + {"x":0, "y":1, "w":1.25}, + {"x":1.25, "y":1}, + {"x":2.25, "y":1}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":5.25, "y":1}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1}, + {"x":8.25, "y":1}, + {"x":9.25, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2, "w":1.5}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3, "w":2.25}, + {"x":5.25, "y":3, "w":2}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3} + ] + }, + "LAYOUT_triple_space": { + "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, "w":1.25}, + {"x":0, "y":1, "w":1.25}, + {"x":1.25, "y":1}, + {"x":2.25, "y":1}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":5.25, "y":1}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1}, + {"x":8.25, "y":1}, + {"x":9.25, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2, "w":1.5}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3, "w":2.5}, + {"x":4.5, "y":3, "w":1.5}, + {"x":6, "y":3, "w":2.25}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3} + ] + }, + "LAYOUT_full_space": { + "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, "w":1.25}, + {"x":0, "y":1, "w":1.25}, + {"x":1.25, "y":1}, + {"x":2.25, "y":1}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":5.25, "y":1}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1}, + {"x":8.25, "y":1}, + {"x":9.25, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2, "w":1.5}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3, "w":6.25}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3} + ] + } + } +} diff --git a/keyboards/kb_elmo/qez/keymaps/default/keymap.c b/keyboards/kb_elmo/qez/keymaps/default/keymap.c new file mode 100644 index 000000000000..d3198af01b5e --- /dev/null +++ b/keyboards/kb_elmo/qez/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 kb-elmo + * + * 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_split_space( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + LT(1,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LT(2,KC_DOT), + KC_LCTL, KC_LGUI, KC_LALT, LSFT_T(KC_SPC), KC_BSPC, KC_RALT, MO(1), MO(2) + ), + [1] = LAYOUT_split_space( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, KC_ESC, KC_MINS, KC_EQL, KC_TRNS, KC_SCLN, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_space( + KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, 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 + ) +}; diff --git a/keyboards/kb_elmo/qez/keymaps/via/keymap.c b/keyboards/kb_elmo/qez/keymaps/via/keymap.c new file mode 100644 index 000000000000..0866c9950800 --- /dev/null +++ b/keyboards/kb_elmo/qez/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 kb-elmo + * + * 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_split_space( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + LT(1,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LT(2,KC_DOT), + KC_LCTL, KC_LGUI, KC_LALT, LSFT_T(KC_SPC), KC_BSPC, KC_RALT, MO(1), MO(2) + ), + [1] = LAYOUT_split_space( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, KC_ESC, KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_space( + KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, 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 + ), + [3] = LAYOUT_split_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 + ) +}; diff --git a/keyboards/kb_elmo/qez/keymaps/via/rules.mk b/keyboards/kb_elmo/qez/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/kb_elmo/qez/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kb_elmo/qez/qez.c b/keyboards/kb_elmo/qez/qez.c new file mode 100644 index 000000000000..68808fad8ecb --- /dev/null +++ b/keyboards/kb_elmo/qez/qez.c @@ -0,0 +1,17 @@ +/* Copyright 2021 kb-elmo + * + * 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 "qez.h" diff --git a/keyboards/kb_elmo/qez/qez.h b/keyboards/kb_elmo/qez/qez.h new file mode 100644 index 000000000000..1bf9cde24880 --- /dev/null +++ b/keyboards/kb_elmo/qez/qez.h @@ -0,0 +1,57 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_split_space( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, \ + k21, k31, k32, k33, k36, k37, k38, k39 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { ___, k31, k32, k33, ___, ___, k36, k37, k38, k39 } \ +} + +#define LAYOUT_triple_space( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, \ + k21, k31, k33, k35, k36, k38, k39 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { ___, k31, ___, k33, ___, k35, k36, ___, k38, k39 } \ +} + +#define LAYOUT_full_space( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, \ + k21, k31, k35, k38, k39 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { ___, k31, k32, ___, ___, k35, ___, k37, k38, k39 } \ +} diff --git a/keyboards/kb_elmo/qez/readme.md b/keyboards/kb_elmo/qez/readme.md new file mode 100644 index 000000000000..5deb4044a1a5 --- /dev/null +++ b/keyboards/kb_elmo/qez/readme.md @@ -0,0 +1,24 @@ +# QEZ + +![qez](https://i.imgur.com/x00N9f3l.jpg) + +A seamless gasketmounted QAZ-like 40% keyboard + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: QEZ rev.1 PCB +* Hardware Availability: [Open source project](https://github.com/kb-elmo/QEZ) + +Make example for this keyboard (after setting up your build environment): + + make kb_elmo/qez:default + +Flashing example for this keyboard: + + make kb_elmo/qez:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset button**: Briefly press the button labeled "RESET" on the back of the PCB \ No newline at end of file diff --git a/keyboards/kb_elmo/qez/rules.mk b/keyboards/kb_elmo/qez/rules.mk new file mode 100644 index 000000000000..b48dcad7d234 --- /dev/null +++ b/keyboards/kb_elmo/qez/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 3ef978cb132e89f3dc55edc47c2c0c0f330cbd0d Mon Sep 17 00:00:00 2001 From: Christian Sandven Date: Tue, 24 Aug 2021 10:54:17 +0200 Subject: [PATCH 325/328] [Keyboard] Fix keyprez qmk configurator (#14119) --- keyboards/keyprez/bison/info.json | 64 +++++++++--------- keyboards/keyprez/rhino/info.json | 106 ++++++++++++++++-------------- 2 files changed, 89 insertions(+), 81 deletions(-) diff --git a/keyboards/keyprez/bison/info.json b/keyboards/keyprez/bison/info.json index 58de9b1ae8e2..2d1670be5e58 100644 --- a/keyboards/keyprez/bison/info.json +++ b/keyboards/keyprez/bison/info.json @@ -77,14 +77,14 @@ {"label": "Home", "x": 16, "y": 3}, {"label": "End", "x": 17, "y": 3}, - {"label": "OS", "x": 1.75, "y": 4}, - {"label": "Alt", "x": 2.75, "y": 4}, - {"label": "Lower", "x": 3.75, "y": 4}, - {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, - {"label": "", "x": 7.75, "y": 4, "w": 1.5}, - {"label": "Raise", "x": 9.25, "y": 4}, - {"label": "Alt", "x": 10.25, "y": 4}, - {"label": "OS", "x": 11.25, "y": 4} + {"label": "OS", "x": 3.75, "y": 4}, + {"label": "Alt", "x": 4.75, "y": 4}, + {"label": "Lower", "x": 5.75, "y": 4}, + {"label": "BS", "x": 6.75, "y": 4, "w": 1.5}, + {"label": "", "x": 9.75, "y": 4, "w": 1.5}, + {"label": "Raise", "x": 11.25, "y": 4}, + {"label": "Alt", "x": 12.25, "y": 4}, + {"label": "OS", "x": 13.25, "y": 4} ] }, @@ -152,14 +152,14 @@ {"label": "Home", "x": 16, "y": 3}, {"label": "End", "x": 17, "y": 3}, - {"label": "OS", "x": 1.75, "y": 4}, - {"label": "Alt", "x": 2.75, "y": 4}, - {"label": "Lower", "x": 3.75, "y": 4}, - {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, - {"label": "", "x": 7.75, "y": 4, "w": 1.5}, - {"label": "Raise", "x": 9.25, "y": 4}, - {"label": "Alt", "x": 10.25, "y": 4}, - {"label": "OS", "x": 11.25, "y": 4} + {"label": "OS", "x": 3.75, "y": 4}, + {"label": "Alt", "x": 4.75, "y": 4}, + {"label": "Lower", "x": 5.75, "y": 4}, + {"label": "BS", "x": 6.75, "y": 4, "w": 1.5}, + {"label": "", "x": 9.75, "y": 4, "w": 1.5}, + {"label": "Raise", "x": 11.25, "y": 4}, + {"label": "Alt", "x": 12.25, "y": 4}, + {"label": "OS", "x": 13.25, "y": 4} ] }, @@ -227,14 +227,14 @@ {"label": "/", "x": 14, "y": 3}, {"label": "Enter", "x": 15, "y": 3}, - {"label": "OS", "x": 1.75, "y": 4}, - {"label": "Alt", "x": 2.75, "y": 4}, - {"label": "Lower", "x": 3.75, "y": 4}, - {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, - {"label": "", "x": 7.75, "y": 4, "w": 1.5}, - {"label": "Raise", "x": 9.25, "y": 4}, - {"label": "Alt", "x": 10.25, "y": 4}, - {"label": "FN", "x": 11.25, "y": 4} + {"label": "OS", "x": 3.75, "y": 4}, + {"label": "Alt", "x": 4.75, "y": 4}, + {"label": "Lower", "x": 5.75, "y": 4}, + {"label": "BS", "x": 6.75, "y": 4, "w": 1.5}, + {"label": "", "x": 9.75, "y": 4, "w": 1.5}, + {"label": "Raise", "x": 11.25, "y": 4}, + {"label": "Alt", "x": 12.25, "y": 4}, + {"label": "FN", "x": 13.25, "y": 4} ] }, @@ -294,14 +294,14 @@ {"label": "/", "x": 14, "y": 3}, {"label": "Enter", "x": 15, "y": 3}, - {"label": "OS", "x": 1.75, "y": 4}, - {"label": "Alt", "x": 2.75, "y": 4}, - {"label": "Lower", "x": 3.75, "y": 4}, - {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, - {"label": "", "x": 7.75, "y": 4, "w": 1.5}, - {"label": "Raise", "x": 9.25, "y": 4}, - {"label": "Alt", "x": 10.25, "y": 4}, - {"label": "FN", "x": 11.25, "y": 4} + {"label": "OS", "x": 3.75, "y": 4}, + {"label": "Alt", "x": 4.75, "y": 4}, + {"label": "Lower", "x": 5.75, "y": 4}, + {"label": "BS", "x": 6.75, "y": 4, "w": 1.5}, + {"label": "", "x": 9.75, "y": 4, "w": 1.5}, + {"label": "Raise", "x": 11.25, "y": 4}, + {"label": "Alt", "x": 12.25, "y": 4}, + {"label": "FN", "x": 13.25, "y": 4} ] } } diff --git a/keyboards/keyprez/rhino/info.json b/keyboards/keyprez/rhino/info.json index 5bf37e06b6fc..84c720ef2df8 100644 --- a/keyboards/keyprez/rhino/info.json +++ b/keyboards/keyprez/rhino/info.json @@ -2,25 +2,12 @@ "keyboard_name": "rhino", "url": "", "maintainer": "Christian Sandven", - "width": 14, - "height": 4, + "width": 15, + "height": 5, "layouts": { "LAYOUT_ortho_2x2u": { "layout": [ - {"x": 0, "y": 0, "w": 1.5}, - {"x": 1.5, "y": 0}, - {"x": 2.5, "y": 0}, - {"x": 3.5, "y": 0}, - {"x": 4.5, "y": 0}, - {"x": 5.5, "y": 0}, - {"x": 6.5, "y": 0}, - {"x": 7.5, "y": 0}, - {"x": 8.5, "y": 0}, - {"x": 9.5, "y": 0}, - {"x": 10.5, "y": 0}, - {"x": 11.5, "y": 0}, {"x": 12.5, "y": 0}, - {"x": 13.5, "y": 0, "w": 1.5}, {"x": 0, "y": 1, "w": 1.5}, {"x": 1.5, "y": 1}, @@ -52,6 +39,21 @@ {"x": 12.5, "y": 2}, {"x": 13.5, "y": 2, "w": 1.5}, + {"x": 0, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + {"x": 3.5, "y": 3}, + {"x": 4.5, "y": 3}, + {"x": 5.5, "y": 3}, + {"x": 6.5, "y": 3}, + {"x": 7.5, "y": 3}, + {"x": 8.5, "y": 3}, + {"x": 9.5, "y": 3}, + {"x": 10.5, "y": 3}, + {"x": 11.5, "y": 3}, + {"x": 12.5, "y": 3}, + {"x": 13.5, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 4}, {"x": 2.5, "y": 4}, {"x": 3.5, "y": 4}, @@ -67,20 +69,7 @@ "LAYOUT_ergo_2x2u": { "layout": [ - {"x": 0, "y": 0, "w": 1.5}, - {"x": 1.5, "y": 0}, - {"x": 2.5, "y": 0}, - {"x": 3.5, "y": 0}, - {"x": 4.5, "y": 0}, - {"x": 5.5, "y": 0}, - {"x": 6.5, "y": 0, "h": 1.5}, - {"x": 7.5, "y": 0, "h": 1.5}, - {"x": 8.5, "y": 0}, - {"x": 9.5, "y": 0}, - {"x": 10.5, "y": 0}, - {"x": 11.5, "y": 0}, {"x": 12.5, "y": 0}, - {"x": 13.5, "y": 0, "w": 1.5}, {"x": 0, "y": 1, "w": 1.5}, {"x": 1.5, "y": 1}, @@ -88,8 +77,8 @@ {"x": 3.5, "y": 1}, {"x": 4.5, "y": 1}, {"x": 5.5, "y": 1}, - {"x": 6.5, "y": 1.5, "h": 1.5}, - {"x": 7.5, "y": 1.5, "h": 1.5}, + {"x": 6.5, "y": 1, "h": 1.5}, + {"x": 7.5, "y": 1, "h": 1.5}, {"x": 8.5, "y": 1}, {"x": 9.5, "y": 1}, {"x": 10.5, "y": 1}, @@ -103,6 +92,8 @@ {"x": 3.5, "y": 2}, {"x": 4.5, "y": 2}, {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2.5, "h": 1.5}, + {"x": 7.5, "y": 2.5, "h": 1.5}, {"x": 8.5, "y": 2}, {"x": 9.5, "y": 2}, {"x": 10.5, "y": 2}, @@ -110,6 +101,19 @@ {"x": 12.5, "y": 2}, {"x": 13.5, "y": 2, "w": 1.5}, + {"x": 0, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + {"x": 3.5, "y": 3}, + {"x": 4.5, "y": 3}, + {"x": 5.5, "y": 3}, + {"x": 8.5, "y": 3}, + {"x": 9.5, "y": 3}, + {"x": 10.5, "y": 3}, + {"x": 11.5, "y": 3}, + {"x": 12.5, "y": 3}, + {"x": 13.5, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 4}, {"x": 2.5, "y": 4}, {"x": 3.5, "y": 4}, @@ -125,20 +129,7 @@ "LAYOUT_ortho_7u": { "layout": [ - {"x": 0, "y": 0, "w": 1.5}, - {"x": 1.5, "y": 0}, - {"x": 2.5, "y": 0}, - {"x": 3.5, "y": 0}, - {"x": 4.5, "y": 0}, - {"x": 5.5, "y": 0}, - {"x": 6.5, "y": 0, "h": 1.5}, - {"x": 7.5, "y": 0, "h": 1.5}, - {"x": 8.5, "y": 0}, - {"x": 9.5, "y": 0}, - {"x": 10.5, "y": 0}, - {"x": 11.5, "y": 0}, {"x": 12.5, "y": 0}, - {"x": 13.5, "y": 0, "w": 1.5}, {"x": 0, "y": 1, "w": 1.5}, {"x": 1.5, "y": 1}, @@ -146,14 +137,14 @@ {"x": 3.5, "y": 1}, {"x": 4.5, "y": 1}, {"x": 5.5, "y": 1}, - {"x": 6.5, "y": 1.5, "h": 1.5}, - {"x": 7.5, "y": 1.5, "h": 1.5}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, {"x": 8.5, "y": 1}, {"x": 9.5, "y": 1}, {"x": 10.5, "y": 1}, {"x": 11.5, "y": 1}, - {"x": 12.5, "y": 1, "w": 1.5}, - {"x": 14, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, {"x": 0, "y": 2, "w": 1.5}, {"x": 1.5, "y": 2}, @@ -161,13 +152,30 @@ {"x": 3.5, "y": 2}, {"x": 4.5, "y": 2}, {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, {"x": 8.5, "y": 2}, {"x": 9.5, "y": 2}, {"x": 10.5, "y": 2}, - {"x": 11.5, "y": 2, "w": 1.5}, - {"x": 13, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2, "w": 1.5}, {"x": 14, "y": 2}, + {"x": 0, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + {"x": 3.5, "y": 3}, + {"x": 4.5, "y": 3}, + {"x": 5.5, "y": 3}, + {"x": 6.5, "y": 3}, + {"x": 7.5, "y": 3}, + {"x": 8.5, "y": 3}, + {"x": 9.5, "y": 3}, + {"x": 10.5, "y": 3}, + {"x": 11.5, "y": 3, "w": 1.5}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + {"x": 1.5, "y": 4}, {"x": 2.5, "y": 4, "w": 1.5}, {"x": 4, "y": 4, "w": 7}, From 097e85e930ae7e7f8ffd67717ed944a38111de6c Mon Sep 17 00:00:00 2001 From: GG <72414103+spbgzh@users.noreply.github.com> Date: Tue, 24 Aug 2021 12:50:56 +0300 Subject: [PATCH 326/328] [Keyboard] Add serneity65 (#13889) --- keyboards/wuque/serneity65/config.h | 50 +++ keyboards/wuque/serneity65/info.json | 389 ++++++++++++++++++ .../wuque/serneity65/keymaps/65_ansi/keymap.c | 34 ++ .../serneity65/keymaps/65_ansi/readme.md | 1 + .../serneity65/keymaps/65_split_bs/keymap.c | 35 ++ .../serneity65/keymaps/65_split_bs/readme.md | 1 + .../keymaps/65_split_lshift/keymap.c | 34 ++ .../keymaps/65_split_lshift/readme.md | 1 + .../keymaps/65_split_space/keymap.c | 34 ++ .../keymaps/65_split_space/readme.md | 1 + .../wuque/serneity65/keymaps/default/keymap.c | 34 ++ .../serneity65/keymaps/default/readme.md | 1 + .../wuque/serneity65/keymaps/via/keymap.c | 48 +++ .../wuque/serneity65/keymaps/via/readme.md | 1 + .../wuque/serneity65/keymaps/via/rules.mk | 2 + keyboards/wuque/serneity65/readme.md | 24 ++ keyboards/wuque/serneity65/rules.mk | 25 ++ keyboards/wuque/serneity65/serneity65.c | 71 ++++ keyboards/wuque/serneity65/serneity65.h | 159 +++++++ 19 files changed, 945 insertions(+) create mode 100644 keyboards/wuque/serneity65/config.h create mode 100644 keyboards/wuque/serneity65/info.json create mode 100644 keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/65_ansi/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_lshift/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_space/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/default/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/default/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/via/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/via/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/via/rules.mk create mode 100644 keyboards/wuque/serneity65/readme.md create mode 100644 keyboards/wuque/serneity65/rules.mk create mode 100644 keyboards/wuque/serneity65/serneity65.c create mode 100644 keyboards/wuque/serneity65/serneity65.h diff --git a/keyboards/wuque/serneity65/config.h b/keyboards/wuque/serneity65/config.h new file mode 100644 index 000000000000..e13aa8950490 --- /dev/null +++ b/keyboards/wuque/serneity65/config.h @@ -0,0 +1,50 @@ +/* Copyright 2021 wuque + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x906B +#define PRODUCT_ID 0x0003 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wuque +#define PRODUCT serneity65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { B0, F0, B1, D2, D3 } +#define MATRIX_COL_PINS { B6, B5, D5, D4, D6, B4, D7, F1, F4, F5, F6, F7, C7, E6, B7 } + +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Enable encoder */ +#define ENCODERS_PAD_A { B2 } +#define ENCODERS_PAD_B { B3 } + +#define ENCODERS 1 +// Note: array is { col, row ) +#define ENCODERS_CW_KEY { { 3, 4 } } +#define ENCODERS_CCW_KEY { { 5, 4 } } + +#define LED_CAPS_LOCK_PIN C6 +#define LED_PIN_ON_STATE 0 diff --git a/keyboards/wuque/serneity65/info.json b/keyboards/wuque/serneity65/info.json new file mode 100644 index 000000000000..546c290aa526 --- /dev/null +++ b/keyboards/wuque/serneity65/info.json @@ -0,0 +1,389 @@ +{ + "keyboard_name": "serneity65", + "url": "https://wuque.com/", + "maintainer": "qmk", + "width": 15.5, + "height": 5, + "layouts": { + "LAYOUT_all": { + "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": "Backspace", "x": 13, "y": 0 }, + { "label": "Encode", "x": 15.5, "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 Lock", "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": "Backspace", "x": 14, "y": 0 }, + { "label": "PageUp", "x": 15, "y": 2 }, + + { "label": "Shift1", "x": 0, "y": 3, "w": 1.25 }, + { "label": "Shift2", "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": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "x": 15, "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": "Lrotate", "x": 15, "y": 0, "w": 0.5 }, + { "label": "Rrotate", "x": 16.5, "y": 0, "w": 0.5 }, + { "x": 3.75, "y": 4, "w": 2.25 }, + { "x": 6, "y": 4, "w": 1.25 }, + { "x": 7.25, "y": 4, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_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": "Backspace", "x": 13, "y": 0, "w": 2 }, + { "label": "Encode", "x": 15.5, "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 Lock", "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": "PageUp", "x": 15, "y": 2 }, + + { "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": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "x": 15, "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": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi_split_bs": { + "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": "Backspace", "x": 13, "y": 0 }, + { "label": "Encode", "x": 15.5, "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 Lock", "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": "Backspace", "x": 14, "y": 0 }, + { "label": "PageUp", "x": 15, "y": 2 }, + + { "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": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "x": 15, "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": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi_split_lshift": { + "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": "Backspace", "x": 13, "y": 0, "w": 2 }, + { "label": "Encode", "x": 15.5, "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 Lock", "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": "PageUp", "x": 15, "y": 2 }, + + { "label": "Shift1", "x": 0, "y": 3, "w": 1.25 }, + { "label": "Shift2", "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": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "x": 15, "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": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_split_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": "Backspace", "x": 13, "y": 0, "w": 2 }, + { "label": "Encode", "x": 15.5, "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 Lock", "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": "PageUp", "x": 15, "y": 2 }, + + { "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": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "x": 15, "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": 2.25 }, + { "x": 6, "y": 4, "w": 1.25 }, + { "x": 7.25, "y": 4, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c b/keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c new file mode 100644 index 000000000000..3d2393e145de --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/serneity65/keymaps/65_ansi/readme.md b/keyboards/wuque/serneity65/keymaps/65_ansi/readme.md new file mode 100644 index 000000000000..42b2423f597c --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/65_ansi/readme.md @@ -0,0 +1 @@ +# The 65_ansi keymap for serneity65 diff --git a/keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c b/keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c new file mode 100644 index 000000000000..e204574319bb --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_BSPC, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_split_bs( + 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_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md b/keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md new file mode 100644 index 000000000000..121b75811038 --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md @@ -0,0 +1 @@ +# The 65_split_bs keymap for serneity65 diff --git a/keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c b/keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c new file mode 100644 index 000000000000..ef99b56fce04 --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_split_lshift( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_split_lshift( + 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_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/serneity65/keymaps/65_split_lshift/readme.md b/keyboards/wuque/serneity65/keymaps/65_split_lshift/readme.md new file mode 100644 index 000000000000..f5895d138b6c --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/65_split_lshift/readme.md @@ -0,0 +1 @@ +# The 65_split_lshift keymap for serneity65 diff --git a/keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c b/keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c new file mode 100644 index 000000000000..fbbfd244c009 --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_split_space( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_split_space( + 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_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/serneity65/keymaps/65_split_space/readme.md b/keyboards/wuque/serneity65/keymaps/65_split_space/readme.md new file mode 100644 index 000000000000..2f76503194fe --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/65_split_space/readme.md @@ -0,0 +1 @@ +# The 65_split_space keymap for serneity65 diff --git a/keyboards/wuque/serneity65/keymaps/default/keymap.c b/keyboards/wuque/serneity65/keymaps/default/keymap.c new file mode 100644 index 000000000000..0869191942cb --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_BSPC, KC_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_VOLD, KC_SPC, KC_VOLU, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, KC_MPRV, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/serneity65/keymaps/default/readme.md b/keyboards/wuque/serneity65/keymaps/default/readme.md new file mode 100644 index 000000000000..83e06cf6e8b7 --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for serneity65 diff --git a/keyboards/wuque/serneity65/keymaps/via/keymap.c b/keyboards/wuque/serneity65/keymaps/via/keymap.c new file mode 100644 index 000000000000..235629f5fd0f --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2021 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_BSPC, KC_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_VOLD, KC_SPC, KC_VOLU, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, KC_MPRV, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/serneity65/keymaps/via/readme.md b/keyboards/wuque/serneity65/keymaps/via/readme.md new file mode 100644 index 000000000000..87ee7a006b93 --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for serneity65 diff --git a/keyboards/wuque/serneity65/keymaps/via/rules.mk b/keyboards/wuque/serneity65/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/wuque/serneity65/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wuque/serneity65/readme.md b/keyboards/wuque/serneity65/readme.md new file mode 100644 index 000000000000..11d18bacbb6f --- /dev/null +++ b/keyboards/wuque/serneity65/readme.md @@ -0,0 +1,24 @@ +# serneity65 + +More Info at [serneity65](https://shop.wuquestudio.com/) +​ +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: zoom65 Standard +* Hardware Availability: [serneity65](https://shop.wuquestudio.com/) +​ +Make example for this keyboard (after setting up your build environment): + + + make wuque/serneity65:default + +Flashing example for this keyboard: + + make wuque/serneity65:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Tap the Reset switch mounted on the PCB +* In the case of the default keymap, use the key combination Fn + End +* Hold the Esc key while connecting the USB cable (also erases persistent settings) + +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). diff --git a/keyboards/wuque/serneity65/rules.mk b/keyboards/wuque/serneity65/rules.mk new file mode 100644 index 000000000000..e32f7215df1f --- /dev/null +++ b/keyboards/wuque/serneity65/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Enable Encoder + +LAYOUT = 65_ansi diff --git a/keyboards/wuque/serneity65/serneity65.c b/keyboards/wuque/serneity65/serneity65.c new file mode 100644 index 000000000000..6a7c64157f87 --- /dev/null +++ b/keyboards/wuque/serneity65/serneity65.c @@ -0,0 +1,71 @@ +/* Copyright 2021 wuque + * + * 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 "serneity65.h" + +#ifdef VIA_ENABLE +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; +static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; + +void encoder_action_unregister(void) +{ + for (int index = 0; index < ENCODERS; ++index) + { + if (encoder_state[index]) + { + keyevent_t encoder_event = (keyevent_t){ + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1)}; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +} +void encoder_action_register(uint8_t index, bool clockwise) +{ + keyevent_t encoder_event = (keyevent_t){ + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1)}; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); +} + +void matrix_scan_kb(void) +{ + encoder_action_unregister(); + matrix_scan_user(); +} + +bool encoder_update_kb(uint8_t index, bool clockwise) +{ + encoder_action_register(index, clockwise); + return true; +}; +#else +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} +#endif diff --git a/keyboards/wuque/serneity65/serneity65.h b/keyboards/wuque/serneity65/serneity65.h new file mode 100644 index 000000000000..ee7dabd8f836 --- /dev/null +++ b/keyboards/wuque/serneity65/serneity65.h @@ -0,0 +1,159 @@ +/* Copyright 2021 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + + +/* Standard Arrangement + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │44 │46 │48 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + 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, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K48, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + + +/* LAYOUT_65_ansi + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_65_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + 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, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + + +/* LAYOUT_65_ansi_split_bs + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_65_ansi_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + 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, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + + +/* LAYOUT_65_ansi_split_lshift + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_65_ansi_split_lshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + 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, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + + +/* LAYOUT_65_split_space + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │44 │46 │48 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_65_split_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + 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, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} From b4867e1600baa615ec9b28421fc23d4b85bad8ec Mon Sep 17 00:00:00 2001 From: Yoichiro Tanaka Date: Wed, 25 Aug 2021 00:44:00 +0900 Subject: [PATCH 327/328] [Keyboard] Add yoichiro/lunakey_macro (#13849) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/yoichiro/lunakey_macro/config.h | 158 ++++++++++++++++++ keyboards/yoichiro/lunakey_macro/info.json | 68 ++++++++ .../lunakey_macro/keymaps/default/keymap.c | 41 +++++ .../lunakey_macro/keymaps/default/readme.md | 1 + .../lunakey_macro/keymaps/via/keymap.c | 56 +++++++ .../lunakey_macro/keymaps/via/readme.md | 1 + .../lunakey_macro/keymaps/via/rules.mk | 4 + .../yoichiro/lunakey_macro/lunakey_macro.c | 17 ++ .../yoichiro/lunakey_macro/lunakey_macro.h | 37 ++++ keyboards/yoichiro/lunakey_macro/readme.md | 21 +++ keyboards/yoichiro/lunakey_macro/rules.mk | 22 +++ 11 files changed, 426 insertions(+) create mode 100644 keyboards/yoichiro/lunakey_macro/config.h create mode 100644 keyboards/yoichiro/lunakey_macro/info.json create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/default/keymap.c create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/default/readme.md create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/via/keymap.c create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/via/readme.md create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/via/rules.mk create mode 100644 keyboards/yoichiro/lunakey_macro/lunakey_macro.c create mode 100644 keyboards/yoichiro/lunakey_macro/lunakey_macro.h create mode 100644 keyboards/yoichiro/lunakey_macro/readme.md create mode 100644 keyboards/yoichiro/lunakey_macro/rules.mk diff --git a/keyboards/yoichiro/lunakey_macro/config.h b/keyboards/yoichiro/lunakey_macro/config.h new file mode 100644 index 000000000000..d68f69f5150c --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/config.h @@ -0,0 +1,158 @@ +/* +Copyright 2020 Yoichiro Tanaka + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5954 // "YT" - Yoichiro Tanaka +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER yoichiro +#define PRODUCT Lunakey Macro + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 4 + +/* + * 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 { E6, B4, B5 } +#define MATRIX_COL_PINS { B6, B2, B3, B1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Audio support */ +#define AUDIO_PIN C6 + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(E__NOTE(_C7), E__NOTE(_C6)) +#endif + +/* Mouse Keys Combined mode */ +//#define MK_COMBINED + +/* Layer Count */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 + +/* + * 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 BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 5 + #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 */ +// #define RGBLIGHT_LAYERS +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +/*== 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/yoichiro/lunakey_macro/info.json b/keyboards/yoichiro/lunakey_macro/info.json new file mode 100644 index 000000000000..25e3bd8d3024 --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/info.json @@ -0,0 +1,68 @@ +{ + "keyboard_name": "Lunakey Macro", + "url": "", + "maintainer": "Yoichiro Tanaka", + "width": 4.5, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "0,2", + "x": 2.5, + "y": 0 + }, + { + "label": "0,1", + "x": 1.5, + "y": 0.175 + }, + { + "label": "0,0", + "x": 0.5, + "y": 0.5 + }, + { + "label": "0,3", + "x": 3.5, + "y": 0.5 + }, + { + "label": "1,2", + "x": 2.5, + "y": 1 + }, + { + "label": "1,1", + "x": 1.5, + "y": 1.175 + }, + { + "label": "1,0", + "x": 0.5, + "y": 1.5 + }, + { + "label": "1,3", + "x": 3.5, + "y": 1.5 + }, + { + "label": "2,1", + "x": 1, + "y": 2.75 + }, + { + "label": "2,0", + "x": 0, + "y": 3 + }, + { + "label": "2,2", + "x": 2, + "y": 3 + } + ] + } + } +} diff --git a/keyboards/yoichiro/lunakey_macro/keymaps/default/keymap.c b/keyboards/yoichiro/lunakey_macro/keymaps/default/keymap.c new file mode 100644 index 000000000000..1b2055b74939 --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2020 Yoichiro Tanaka + * + * 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 { + _NUMBERS, + _CURSOR, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_NUMBERS] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8, + KC_9, KC_0, DF(_CURSOR) + ), + [_CURSOR] = LAYOUT( + KC_PGUP, KC_HOME, KC_UP, KC_END, + KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, + KC_ENT, KC_BSPC, DF(_ADJUST) + ), + [_ADJUST] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + RESET, KC_NO, DF(_NUMBERS) + ) +}; diff --git a/keyboards/yoichiro/lunakey_macro/keymaps/default/readme.md b/keyboards/yoichiro/lunakey_macro/keymaps/default/readme.md new file mode 100644 index 000000000000..b079aa9fa66d --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Lunakey Macro diff --git a/keyboards/yoichiro/lunakey_macro/keymaps/via/keymap.c b/keyboards/yoichiro/lunakey_macro/keymaps/via/keymap.c new file mode 100644 index 000000000000..a3a203df6d48 --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2020 Yoichiro Tanaka + * + * 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 { + _NUMBERS, + _CURSOR, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_NUMBERS] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8, + KC_9, KC_0, DF(_CURSOR) + ), + [_CURSOR] = LAYOUT( + KC_PGUP, KC_HOME, KC_UP, KC_END, + KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, + KC_ENT, KC_BSPC, DF(_ADJUST) + ), + [_ADJUST] = LAYOUT( + RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, + AU_TOG, CK_TOGG, MU_TOG, MU_MOD, + RESET, KC_NO, DF(_NUMBERS) + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + float next_song[][2] = SONG(E__NOTE(_A6)); + float back_song[][2] = SONG(H__NOTE(_D2)); + switch (keycode) { + case DF(_NUMBERS): + case DF(_CURSOR): + PLAY_SONG(next_song); + break; + case DF(_ADJUST): + PLAY_SONG(back_song); + break; + } + return true; +} diff --git a/keyboards/yoichiro/lunakey_macro/keymaps/via/readme.md b/keyboards/yoichiro/lunakey_macro/keymaps/via/readme.md new file mode 100644 index 000000000000..4e74b05bcd82 --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/keymaps/via/readme.md @@ -0,0 +1 @@ +# The keymap supporing VIA for Lunakey Macro diff --git a/keyboards/yoichiro/lunakey_macro/keymaps/via/rules.mk b/keyboards/yoichiro/lunakey_macro/keymaps/via/rules.mk new file mode 100644 index 000000000000..19658b7e477d --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +AUDIO_ENABLE = yes +RGBLIGHT_ENABLE = yes +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/yoichiro/lunakey_macro/lunakey_macro.c b/keyboards/yoichiro/lunakey_macro/lunakey_macro.c new file mode 100644 index 000000000000..5ef38f70c72d --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/lunakey_macro.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Yoichiro Tanaka + * + * 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 "lunakey_macro.h" diff --git a/keyboards/yoichiro/lunakey_macro/lunakey_macro.h b/keyboards/yoichiro/lunakey_macro/lunakey_macro.h new file mode 100644 index 000000000000..487b7fe20866 --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/lunakey_macro.h @@ -0,0 +1,37 @@ +/* Copyright 2020 Yoichiro Tanaka + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22 \ +) { \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, KC_NO } \ +} diff --git a/keyboards/yoichiro/lunakey_macro/readme.md b/keyboards/yoichiro/lunakey_macro/readme.md new file mode 100644 index 000000000000..440845d07db6 --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/readme.md @@ -0,0 +1,21 @@ +# Lunakey Macro + +![Lunakey Macro](https://i.imgur.com/BirFxgYh.jpeg) + +This is a macro keyboard which has 11 keys. + +* Keyboard Maintainer: [Yoichiro Tanaka](https://github.com/yoichiro) +* Hardware Supported: Lunakey Macro PCB, Pro Micro MCU. +* Hardware Availability: Published yet. + +Make example for this keyboard (after setting up your build environment): + + make lunakey_macro:default + +Flashing example for this keyboard: + + make lunakey_macro:default:flash + +To enter the bootloader mode, you push the black tact switch next to the ProMicro. + +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). diff --git a/keyboards/yoichiro/lunakey_macro/rules.mk b/keyboards/yoichiro/lunakey_macro/rules.mk new file mode 100644 index 000000000000..60a579e02e19 --- /dev/null +++ b/keyboards/yoichiro/lunakey_macro/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From bb1b82224772fcff8518b301f12c46fd132b04fd Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Wed, 25 Aug 2021 06:09:26 +0800 Subject: [PATCH 328/328] [Keyboard] Update Technik ortholinear RGB matrix points (#14124) Co-authored-by: filterpaper --- keyboards/boardsource/technik_o/technik_o.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/keyboards/boardsource/technik_o/technik_o.c b/keyboards/boardsource/technik_o/technik_o.c index 412a7b1ffa97..706939a58b2c 100644 --- a/keyboards/boardsource/technik_o/technik_o.c +++ b/keyboards/boardsource/technik_o/technik_o.c @@ -17,22 +17,22 @@ #include "technik_o.h" #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { - {11,12,13,14,15,16,17,18,19,20,21,22}, - {23,24,25,26,27,28,29,30,31,32,33,34}, - {35,36,37,38,39,40,41,42,43,44,45,46}, - {47,48,49,50,51,52,53,54,55,56,57,58} + { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}, + { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}, + { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45}, + { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57} }, { - {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}, - {11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}, - {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}, - {11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}, + {220, 17}, {172, 17}, {112, 17}, { 50, 17}, { 4, 17}, { 4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56}, + { 0, 0}, { 20, 0}, { 40, 0}, { 61, 0}, { 81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, + { 0, 21}, { 20, 21}, { 40, 21}, { 61, 21}, { 81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21}, + { 0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, + { 0, 64}, { 20, 64}, { 40, 64}, { 61, 64}, { 81, 64}, {101, 64}, {122, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64} }, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 4, 4, 1, 1, 1, 1, 1 - } }; #endif