From 70974dbcc95fed1ef6cfb82e0bd7ba3506f209f2 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 10:38:30 +1000 Subject: [PATCH 01/71] rename v1 to v2 --- keyboards/idobao/id80/{v1 => v2}/ansi/config.h | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/default/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/default/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/config.h | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/rverst.json | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/via/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/via/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/ansi/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/ansi/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/config.h | 0 keyboards/idobao/id80/{v1 => v2}/info.json | 0 keyboards/idobao/id80/{v1 => v2}/iso/config.h | 0 keyboards/idobao/id80/{v1 => v2}/iso/keymaps/default/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/iso/keymaps/default/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/iso/keymaps/via/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/iso/keymaps/via/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/iso/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/iso/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/v1.c | 0 keyboards/idobao/id80/{v1 => v2}/v1.h | 0 27 files changed, 0 insertions(+), 0 deletions(-) rename keyboards/idobao/id80/{v1 => v2}/ansi/config.h (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/default/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/default/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/config.h (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/rverst.json (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/via/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/via/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/config.h (100%) rename keyboards/idobao/id80/{v1 => v2}/info.json (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/config.h (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/keymaps/default/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/keymaps/default/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/keymaps/via/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/keymaps/via/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/v1.c (100%) rename keyboards/idobao/id80/{v1 => v2}/v1.h (100%) diff --git a/keyboards/idobao/id80/v1/ansi/config.h b/keyboards/idobao/id80/v2/ansi/config.h similarity index 100% rename from keyboards/idobao/id80/v1/ansi/config.h rename to keyboards/idobao/id80/v2/ansi/config.h diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/default/keymap.c rename to keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/default/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/default/readme.md rename to keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/config.h b/keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/msf/config.h rename to keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/msf/keymap.c rename to keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/msf/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/msf/readme.md rename to keyboards/idobao/id80/v2/ansi/keymaps/msf/readme.md diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/rules.mk b/keyboards/idobao/id80/v2/ansi/keymaps/msf/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/msf/rules.mk rename to keyboards/idobao/id80/v2/ansi/keymaps/msf/rules.mk diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/rverst/keymap.c rename to keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/rverst/readme.md rename to keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/rverst.json b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/rverst/rverst.json rename to keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/via/keymap.c rename to keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/via/rules.mk b/keyboards/idobao/id80/v2/ansi/keymaps/via/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/via/rules.mk rename to keyboards/idobao/id80/v2/ansi/keymaps/via/rules.mk diff --git a/keyboards/idobao/id80/v1/ansi/readme.md b/keyboards/idobao/id80/v2/ansi/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/ansi/readme.md rename to keyboards/idobao/id80/v2/ansi/readme.md diff --git a/keyboards/idobao/id80/v1/ansi/rules.mk b/keyboards/idobao/id80/v2/ansi/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/ansi/rules.mk rename to keyboards/idobao/id80/v2/ansi/rules.mk diff --git a/keyboards/idobao/id80/v1/config.h b/keyboards/idobao/id80/v2/config.h similarity index 100% rename from keyboards/idobao/id80/v1/config.h rename to keyboards/idobao/id80/v2/config.h diff --git a/keyboards/idobao/id80/v1/info.json b/keyboards/idobao/id80/v2/info.json similarity index 100% rename from keyboards/idobao/id80/v1/info.json rename to keyboards/idobao/id80/v2/info.json diff --git a/keyboards/idobao/id80/v1/iso/config.h b/keyboards/idobao/id80/v2/iso/config.h similarity index 100% rename from keyboards/idobao/id80/v1/iso/config.h rename to keyboards/idobao/id80/v2/iso/config.h diff --git a/keyboards/idobao/id80/v1/iso/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/iso/keymaps/default/keymap.c rename to keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c diff --git a/keyboards/idobao/id80/v1/iso/keymaps/default/readme.md b/keyboards/idobao/id80/v2/iso/keymaps/default/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/iso/keymaps/default/readme.md rename to keyboards/idobao/id80/v2/iso/keymaps/default/readme.md diff --git a/keyboards/idobao/id80/v1/iso/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/iso/keymaps/via/keymap.c rename to keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c diff --git a/keyboards/idobao/id80/v1/iso/keymaps/via/rules.mk b/keyboards/idobao/id80/v2/iso/keymaps/via/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/iso/keymaps/via/rules.mk rename to keyboards/idobao/id80/v2/iso/keymaps/via/rules.mk diff --git a/keyboards/idobao/id80/v1/iso/readme.md b/keyboards/idobao/id80/v2/iso/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/iso/readme.md rename to keyboards/idobao/id80/v2/iso/readme.md diff --git a/keyboards/idobao/id80/v1/iso/rules.mk b/keyboards/idobao/id80/v2/iso/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/iso/rules.mk rename to keyboards/idobao/id80/v2/iso/rules.mk diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v2/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/readme.md rename to keyboards/idobao/id80/v2/readme.md diff --git a/keyboards/idobao/id80/v1/rules.mk b/keyboards/idobao/id80/v2/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/rules.mk rename to keyboards/idobao/id80/v2/rules.mk diff --git a/keyboards/idobao/id80/v1/v1.c b/keyboards/idobao/id80/v2/v1.c similarity index 100% rename from keyboards/idobao/id80/v1/v1.c rename to keyboards/idobao/id80/v2/v1.c diff --git a/keyboards/idobao/id80/v1/v1.h b/keyboards/idobao/id80/v2/v1.h similarity index 100% rename from keyboards/idobao/id80/v1/v1.h rename to keyboards/idobao/id80/v2/v1.h From 9d1e25cd16ebe29ef8d70bb045d25aa26d29747b Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 10:46:43 +1000 Subject: [PATCH 02/71] rename id80 v2 filenames --- keyboards/idobao/id80/v2/rules.mk | 9 +++------ keyboards/idobao/id80/v2/{v1.c => v2.c} | 2 +- keyboards/idobao/id80/v2/{v1.h => v2.h} | 0 3 files changed, 4 insertions(+), 7 deletions(-) rename keyboards/idobao/id80/v2/{v1.c => v2.c} (97%) rename keyboards/idobao/id80/v2/{v1.h => v2.h} (100%) diff --git a/keyboards/idobao/id80/v2/rules.mk b/keyboards/idobao/id80/v2/rules.mk index 0baebd07fc5f..bc6052bbced9 100644 --- a/keyboards/idobao/id80/v2/rules.mk +++ b/keyboards/idobao/id80/v2/rules.mk @@ -1,5 +1,5 @@ # Defalt to the ansi version -DEFAULT_FOLDER = idobao/id80/v1/ansi +DEFAULT_FOLDER = idobao/id80/v2/ansi # MCU name MCU = atmega32u4 @@ -10,15 +10,12 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover +NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output - -# partially generated by KBFirmware JSON to QMK Parser -# https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/idobao/id80/v2/v1.c b/keyboards/idobao/id80/v2/v2.c similarity index 97% rename from keyboards/idobao/id80/v2/v1.c rename to keyboards/idobao/id80/v2/v2.c index 7147b6163e18..4bbe242cbf0c 100644 --- a/keyboards/idobao/id80/v2/v1.c +++ b/keyboards/idobao/id80/v2/v2.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 "v1.h" +#include "v2.h" diff --git a/keyboards/idobao/id80/v2/v1.h b/keyboards/idobao/id80/v2/v2.h similarity index 100% rename from keyboards/idobao/id80/v2/v1.h rename to keyboards/idobao/id80/v2/v2.h From e6b7c16475052c3cc4a5374e852c2d89a11c6bfe Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 11:36:10 +1000 Subject: [PATCH 03/71] create V1 placeholder --- keyboards/idobao/id80/v1/readme.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 keyboards/idobao/id80/v1/readme.md diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v1/readme.md new file mode 100644 index 000000000000..8c76b6163c12 --- /dev/null +++ b/keyboards/idobao/id80/v1/readme.md @@ -0,0 +1,25 @@ +# IDOBAO ID80 + +![ID80](https://idobao.github.io/assets/img/idobao-id80-v1.png) + +A 75% hotswap keyboard from IDOBAO. + +* Keyboard Maintainer: [Sergey Vlasov](https://github.com/sigprof) +* Hardware Supported: IDOBAO ID80 +* Hardware Availability: [Drop](https://drop.com/buy/idobao-id80-75-hot-swappable-mechanical-keyboard-kit?mode=guest_open) + +> ⚠ **Please note:** The source folder for this keyboard has moved to `../v2`. + +Make example for this keyboard (after setting up your build environment): + + make idobao/id80/v2: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 Escape key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available From d5e2d0f5d4c2918749b4814868cde40c18342276 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 11:37:35 +1000 Subject: [PATCH 04/71] rename ambiguous `LAYOUT` to `LAYOUT_ansi` --- .../idobao/id80/v2/ansi/keymaps/default/keymap.c | 4 ++-- keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c | 6 +++--- .../idobao/id80/v2/ansi/keymaps/rverst/keymap.c | 12 ++++++------ keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c | 8 ++++---- keyboards/idobao/id80/v2/v2.c | 1 + keyboards/idobao/id80/v2/v2.h | 3 ++- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c index 696fb303e293..04ef561a4faf 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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, MO(1), 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_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, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi( RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c index 6bb91f0f19ef..55b3db74ad36 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_VOLD, KC_VOLU, KC_F8, KC_F9, KC_F10, KC_PSTE, KC_PSCR, KC_DEL, 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_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, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi( RESET, KC_CALC, _______, _______, _______, KC_MUTE, KC_F6, KC_F7, KC_MPLY, KC_MSTP, KC_BRID, KC_BRIU, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, KC_DEL, @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP ), - [2] = LAYOUT( + [2] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c index 3656f48dfebb..17b0445a5a66 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c @@ -20,7 +20,7 @@ // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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 , MO(4) , KC_DEL , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_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, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC , OSL(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi( RV_SNAP, 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_MUTE, RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, RV_EUR , RV_RT , RV_TM , KC_TRNS, RV_UUML, KC_TRNS, RV_OUML, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT ), - [2] = LAYOUT( + [2] = 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_TRNS, MO(4) , 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_VOLU, 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_VOLD, @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC , OSL(3) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [3] = LAYOUT( + [3] = LAYOUT_ansi( RV_SNAP, 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_MUTE, RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_LOCK, RV_UUML, KC_TRNS, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD, @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT ), - [4] = LAYOUT( + [4] = LAYOUT_ansi( DEBUG , RV_SM0 , RV_SM1 , RV_SM2 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , DF(0) , DF(2) , KC_TRNS, MO(5) , RV_SAYM, RV_SM3 , RV_SM4 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RGB_TOG, KC_NO , KC_NO , GUI_ON , KC_NO , KC_NO , RCG_SWP, RGB_RMOD,RGB_M_P, RGB_MOD ), - [5] = LAYOUT( + [5] = LAYOUT_ansi( RESET , RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, KC_NO , RV_SM3S, RV_SM4S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , 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/idobao/id80/v2/ansi/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c index 686ce9ce7394..491ebea9673f 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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, MO(1), 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_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, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi( RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP ), - [2] = LAYOUT( + [2] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/v2.c b/keyboards/idobao/id80/v2/v2.c index 4bbe242cbf0c..f92f5e062923 100644 --- a/keyboards/idobao/id80/v2/v2.c +++ b/keyboards/idobao/id80/v2/v2.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 "v2.h" diff --git a/keyboards/idobao/id80/v2/v2.h b/keyboards/idobao/id80/v2/v2.h index a016e39083f6..d45b75853b7f 100644 --- a/keyboards/idobao/id80/v2/v2.h +++ b/keyboards/idobao/id80/v2/v2.h @@ -13,11 +13,12 @@ * 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( \ +#define LAYOUT_ansi( \ K50, K51, K52, K53, K54, K55, K56, K57, K58, KA7, KA5, KA4, KA3, KA6, KA2, \ K40, K41, K42, K43, K44, K45, K46, K47, K48, K98, K97, K95, K94, K96, K92, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K88, K87, K85, K84, K83, K82, \ From dab6ee979e3af0e4a4e143b2a9b96c1e216af540 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 11:49:53 +1000 Subject: [PATCH 05/71] elaborate on v1 vs. v2 boards --- keyboards/idobao/id80/v1/readme.md | 2 ++ keyboards/idobao/id80/v2/readme.md | 22 +++++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v1/readme.md index 8c76b6163c12..8ba49d669d8a 100644 --- a/keyboards/idobao/id80/v1/readme.md +++ b/keyboards/idobao/id80/v1/readme.md @@ -8,7 +8,9 @@ A 75% hotswap keyboard from IDOBAO. * Hardware Supported: IDOBAO ID80 * Hardware Availability: [Drop](https://drop.com/buy/idobao-id80-75-hot-swappable-mechanical-keyboard-kit?mode=guest_open) +--- > ⚠ **Please note:** The source folder for this keyboard has moved to `../v2`. +--- Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/idobao/id80/v2/readme.md b/keyboards/idobao/id80/v2/readme.md index 8a26378b3b06..7c4af604e074 100644 --- a/keyboards/idobao/id80/v2/readme.md +++ b/keyboards/idobao/id80/v2/readme.md @@ -1,20 +1,20 @@ # IDOBAO ID80 -![ID80](https://ae01.alicdn.com/kf/H0f617c6129c24cfaa26a8c9e8e54851aj.jpg) +![ID80](https://idobao.github.io/assets/img/idobao-id80.png) A 75% hotswap keyboard from IDOBAO. -## ANSI support: +## ANSI support *(v1 & v2)*: * Keyboard Maintainer: [Sergey Vlasov](https://github.com/sigprof) -* Hardware Supported: IDOBAO ID80 -* Hardware Availability: [AliExpress](https://www.aliexpress.com/item/4000590804514.html), [Drop](https://drop.com/buy/idobao-id80-75-hot-swappable-mechanical-keyboard-kit?mode=guest_open) +* Hardware Supported: IDOBAO ID80v1, IDOBAO ID80v2 +* Hardware Availability: [IDOBAO](https://idobao.net/search?type=product&q=ID80*), [AliExpress](https://www.aliexpress.com/store/5072109/search?origin=y&SearchText=ID80) Make example for this keyboard (after setting up your build environment): - make idobao/id80/v1/ansi:default + make idobao/id80/v2/ansi:default -## ISO support: +## ISO support *(v2-iso)*: * Keyboard Maintainer: [Carsten Rose](https://github.com/cwr10010) * Hardware Supported: IDOBAO ID80v2 @@ -22,6 +22,14 @@ Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment): - make idobao/id80/v1/iso:default + make idobao/id80/v2/iso: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 Escape key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available From 4c234284eb04f051976a7fed199610a8e49e0074 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 11:50:12 +1000 Subject: [PATCH 06/71] ensure v1 folder compiles --- keyboards/idobao/id80/v1/rules.mk | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 keyboards/idobao/id80/v1/rules.mk diff --git a/keyboards/idobao/id80/v1/rules.mk b/keyboards/idobao/id80/v1/rules.mk new file mode 100644 index 000000000000..20283f04be5f --- /dev/null +++ b/keyboards/idobao/id80/v1/rules.mk @@ -0,0 +1,2 @@ +# Defalt to the ansi version +DEFAULT_FOLDER = idobao/id80/v2/ansi From 5c8c4e51efa239ef6bc28531b62a3650e63d980a Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 15:09:31 +1000 Subject: [PATCH 07/71] Update info.json --- keyboards/idobao/id80/v2/info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/idobao/id80/v2/info.json b/keyboards/idobao/id80/v2/info.json index 072b4ca4db5c..03093e7b13a3 100644 --- a/keyboards/idobao/id80/v2/info.json +++ b/keyboards/idobao/id80/v2/info.json @@ -1,9 +1,9 @@ { - "keyboard_name": "ID80", + "keyboard_name": "IDOBAO ID80", "url": "", - "maintainer": "qmk", + "maintainer": "IDOBAOKB", "layouts": { - "LAYOUT": { + "LAYOUT_ansi": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, From 64948462f7c8b458b8c15ffde3fb1c77ce4491f5 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 15:54:13 +1000 Subject: [PATCH 08/71] disable backlight for v1 boards --- keyboards/idobao/id80/v1/readme.md | 2 +- keyboards/idobao/id80/v2/config.h | 8 +++++--- keyboards/idobao/id80/v2/rules.mk | 14 ++++++++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v1/readme.md index 8ba49d669d8a..da9f720c2a31 100644 --- a/keyboards/idobao/id80/v1/readme.md +++ b/keyboards/idobao/id80/v1/readme.md @@ -14,7 +14,7 @@ A 75% hotswap keyboard from IDOBAO. Make example for this keyboard (after setting up your build environment): - make idobao/id80/v2:default + make idobao/id80/v2:default BACKLIGHT=off 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/idobao/id80/v2/config.h b/keyboards/idobao/id80/v2/config.h index c6cf66738225..dceeb5ec4c3f 100644 --- a/keyboards/idobao/id80/v2/config.h +++ b/keyboards/idobao/id80/v2/config.h @@ -53,9 +53,11 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW -#define BACKLIGHT_PIN B6 -#define BACKLIGHT_BREATHING -#define BACKLIGHT_LEVELS 3 +#ifndef ID80_NO_BACKLIGHT + #define BACKLIGHT_PIN B6 + #define BACKLIGHT_BREATHING + #define BACKLIGHT_LEVELS 3 +#endif #define LED_CAPS_LOCK_PIN C7 #define LED_PIN_ON_STATE 0 diff --git a/keyboards/idobao/id80/v2/rules.mk b/keyboards/idobao/id80/v2/rules.mk index bc6052bbced9..aa27d14ea652 100644 --- a/keyboards/idobao/id80/v2/rules.mk +++ b/keyboards/idobao/id80/v2/rules.mk @@ -16,6 +16,16 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output + +ifeq ($(findstring no,$(BACKLIGHT)), no) + $(info NO BACKLIGHT) + BACKLIGHT_ENABLE = no + OPT_DEFS += -DID80_NO_BACKLIGHT +else ifeq ($(findstring off,$(BACKLIGHT)), off) + $(info BACKLIGHT OFF) + BACKLIGHT_ENABLE = no + OPT_DEFS += -DID80_NO_BACKLIGHT +else + BACKLIGHT_ENABLE = yes +endif From 43abf965b615c5d4c27845dca8dc97ba4515f1c4 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 16:12:07 +1000 Subject: [PATCH 09/71] updated v1 conditional compile to use `BACKLIGHT_ENABLE=no` --- keyboards/idobao/id80/v1/readme.md | 2 +- keyboards/idobao/id80/v2/config.h | 2 +- keyboards/idobao/id80/v2/rules.mk | 13 +------------ 3 files changed, 3 insertions(+), 14 deletions(-) diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v1/readme.md index da9f720c2a31..04db4917b380 100644 --- a/keyboards/idobao/id80/v1/readme.md +++ b/keyboards/idobao/id80/v1/readme.md @@ -14,7 +14,7 @@ A 75% hotswap keyboard from IDOBAO. Make example for this keyboard (after setting up your build environment): - make idobao/id80/v2:default BACKLIGHT=off + make idobao/id80/v2:default BACKLIGHT_ENABLE=no 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/idobao/id80/v2/config.h b/keyboards/idobao/id80/v2/config.h index dceeb5ec4c3f..2e21ae502500 100644 --- a/keyboards/idobao/id80/v2/config.h +++ b/keyboards/idobao/id80/v2/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW -#ifndef ID80_NO_BACKLIGHT +#ifdef BACKLIGHT_ENABLE #define BACKLIGHT_PIN B6 #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 diff --git a/keyboards/idobao/id80/v2/rules.mk b/keyboards/idobao/id80/v2/rules.mk index aa27d14ea652..ad7340ce1727 100644 --- a/keyboards/idobao/id80/v2/rules.mk +++ b/keyboards/idobao/id80/v2/rules.mk @@ -17,15 +17,4 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow - -ifeq ($(findstring no,$(BACKLIGHT)), no) - $(info NO BACKLIGHT) - BACKLIGHT_ENABLE = no - OPT_DEFS += -DID80_NO_BACKLIGHT -else ifeq ($(findstring off,$(BACKLIGHT)), off) - $(info BACKLIGHT OFF) - BACKLIGHT_ENABLE = no - OPT_DEFS += -DID80_NO_BACKLIGHT -else - BACKLIGHT_ENABLE = yes -endif +BACKLIGHT_ENABLE = yes # Enable underkey LED backlight From b86cd666eb5228b5d55e93f578ff88a4593dd5e8 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 18 May 2022 00:04:33 +1000 Subject: [PATCH 10/71] additional code cleanup --- .../idobao/id80/v2/ansi/keymaps/default/readme.md | 1 - .../idobao/id80/v2/ansi/keymaps/rverst/readme.md | 4 ++-- .../idobao/id80/v2/ansi/keymaps/rverst/rverst.json | 2 +- keyboards/idobao/id80/v2/ansi/readme.md | 2 +- .../idobao/id80/v2/iso/keymaps/default/readme.md | 1 - keyboards/idobao/id80/v2/iso/readme.md | 2 +- keyboards/idobao/id80/v2/readme.md | 12 +++++++++--- 7 files changed, 14 insertions(+), 10 deletions(-) delete mode 100644 keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md delete mode 100644 keyboards/idobao/id80/v2/iso/keymaps/default/readme.md diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md deleted file mode 100644 index 8ae9f656cd0b..000000000000 --- a/keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for id80 diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md index ba33980edb3c..66dd2b528732 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md @@ -1,6 +1,6 @@ -# idobao id80 +# IDOBAO ID80 -This is my layout for the idobao id80. It depends of my [user files](../../../../users/rverst) +This is my layout for the IDOBAO ID80. It depends of my [user files](../../../../users/rverst) and the main goal is to give an convenient and unified access to some special keys (umlauts, ß, €) for different operating systems (Mac, Windows and Linux). diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json index 50235498fed4..f126fa189842 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json @@ -1,5 +1,5 @@ { - "keyboard": "id80", + "keyboard": "ID80", "keymap": "rverst", "layout": "LAYOUT", "layers": [ diff --git a/keyboards/idobao/id80/v2/ansi/readme.md b/keyboards/idobao/id80/v2/ansi/readme.md index 1bfae4373554..fcf41c5f2377 100644 --- a/keyboards/idobao/id80/v2/ansi/readme.md +++ b/keyboards/idobao/id80/v2/ansi/readme.md @@ -1 +1 @@ -# The ANSI variant of the id80 +# The ANSI variant of the ID80 diff --git a/keyboards/idobao/id80/v2/iso/keymaps/default/readme.md b/keyboards/idobao/id80/v2/iso/keymaps/default/readme.md deleted file mode 100644 index 8ae9f656cd0b..000000000000 --- a/keyboards/idobao/id80/v2/iso/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for id80 diff --git a/keyboards/idobao/id80/v2/iso/readme.md b/keyboards/idobao/id80/v2/iso/readme.md index 3e0d8ce2312b..300b37419433 100644 --- a/keyboards/idobao/id80/v2/iso/readme.md +++ b/keyboards/idobao/id80/v2/iso/readme.md @@ -1 +1 @@ -# The ISO variant of the id80 +# The ISO variant of the ID80 diff --git a/keyboards/idobao/id80/v2/readme.md b/keyboards/idobao/id80/v2/readme.md index 7c4af604e074..fcba9255e11f 100644 --- a/keyboards/idobao/id80/v2/readme.md +++ b/keyboards/idobao/id80/v2/readme.md @@ -7,12 +7,18 @@ A 75% hotswap keyboard from IDOBAO. ## ANSI support *(v1 & v2)*: * Keyboard Maintainer: [Sergey Vlasov](https://github.com/sigprof) -* Hardware Supported: IDOBAO ID80v1, IDOBAO ID80v2 -* Hardware Availability: [IDOBAO](https://idobao.net/search?type=product&q=ID80*), [AliExpress](https://www.aliexpress.com/store/5072109/search?origin=y&SearchText=ID80) +* Hardware Supported: + * IDOBAO ID80v1 + * IDOBAO ID80v2 +* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=ID80*), [AliExpress](https://www.aliexpress.com/store/5072109/search?origin=y&SearchText=ID80) Make example for this keyboard (after setting up your build environment): make idobao/id80/v2/ansi:default + +To compile for the **v1** please use: + + make idobao/id80/v2:default BACKLIGHT_ENABLE=no ## ISO support *(v2-iso)*: @@ -32,4 +38,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the Escape key and plug in the keyboard * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `RESET` if it is available *(default is [Fn]+[Esc])* From 845a80edb17fa36d6d7a287abb935dbfc852d7e5 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 18 May 2022 00:16:06 +1000 Subject: [PATCH 11/71] RESET -> QK_BOOT default keymaps --- keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c | 2 +- keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c | 2 +- keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c | 2 +- keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c | 2 +- keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c | 2 +- keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c index 04ef561a4faf..b09718dda072 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_ansi( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c index 55b3db74ad36..bc31cfb0b826 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_ansi( - RESET, KC_CALC, _______, _______, _______, KC_MUTE, KC_F6, KC_F7, KC_MPLY, KC_MSTP, KC_BRID, KC_BRIU, KC_F11, KC_F12, _______, + QK_BOOT, KC_CALC, _______, _______, _______, KC_MUTE, KC_F6, KC_F7, KC_MPLY, KC_MSTP, KC_BRID, KC_BRIU, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c index 17b0445a5a66..1e751e751d15 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO , KC_NO , GUI_ON , KC_NO , KC_NO , RCG_SWP, RGB_RMOD,RGB_M_P, RGB_MOD ), [5] = LAYOUT_ansi( - RESET , RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, + QK_BOOT, RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, KC_NO , RV_SM3S, RV_SM4S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , 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/idobao/id80/v2/ansi/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c index 491ebea9673f..4fc88dc59202 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_ansi( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c index 1cc606735631..01eaa2a44f33 100644 --- a/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_iso( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c index 710da2edf182..25ff6b084de9 100644 --- a/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c +++ b/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_iso( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, From 2797a4d3b1fbab8be18bef27fba4945aae8f3b42 Mon Sep 17 00:00:00 2001 From: Dmitry Nosachev Date: Tue, 19 Apr 2022 14:30:15 +0300 Subject: [PATCH 12/71] kin80 (#16754) Co-authored-by: Nick Brassel --- keyboards/kin80/blackpill103/blackpill103.c | 25 +++ keyboards/kin80/blackpill103/blackpill103.h | 19 ++ keyboards/kin80/blackpill103/chconf.h | 28 +++ keyboards/kin80/blackpill103/config.h | 35 +++ keyboards/kin80/blackpill103/halconf.h | 26 +++ keyboards/kin80/blackpill103/mcuconf.h | 30 +++ keyboards/kin80/blackpill103/rules.mk | 8 + keyboards/kin80/blackpill401/blackpill401.c | 25 +++ keyboards/kin80/blackpill401/blackpill401.h | 19 ++ keyboards/kin80/blackpill401/config.h | 32 +++ keyboards/kin80/blackpill401/halconf.h | 28 +++ keyboards/kin80/blackpill401/mcuconf.h | 25 +++ keyboards/kin80/blackpill401/rules.mk | 7 + keyboards/kin80/blackpill411/blackpill411.c | 26 +++ keyboards/kin80/blackpill411/blackpill411.h | 19 ++ keyboards/kin80/blackpill411/config.h | 32 +++ keyboards/kin80/blackpill411/halconf.h | 28 +++ keyboards/kin80/blackpill411/mcuconf.h | 25 +++ keyboards/kin80/blackpill411/rules.mk | 7 + keyboards/kin80/config.h | 24 ++ keyboards/kin80/info.json | 19 ++ keyboards/kin80/keymaps/andrew/keymap.c | 127 +++++++++++ keyboards/kin80/keymaps/debug/keymap.c | 38 ++++ keyboards/kin80/keymaps/debug/rules.mk | 1 + keyboards/kin80/keymaps/default/keymap.c | 102 +++++++++ keyboards/kin80/keymaps/maxim/keymap.c | 215 ++++++++++++++++++ keyboards/kin80/keymaps/quartz64/config.h | 24 ++ keyboards/kin80/keymaps/quartz64/keymap.c | 234 ++++++++++++++++++++ keyboards/kin80/keymaps/quartz64/rules.mk | 1 + keyboards/kin80/keymaps/roman/keymap.c | 134 +++++++++++ keyboards/kin80/kin80.c | 17 ++ keyboards/kin80/kin80.h | 62 ++++++ keyboards/kin80/micro/config.h | 30 +++ keyboards/kin80/micro/micro.c | 25 +++ keyboards/kin80/micro/micro.h | 20 ++ keyboards/kin80/micro/rules.mk | 5 + keyboards/kin80/readme.md | 33 +++ keyboards/kin80/rules.mk | 14 ++ 38 files changed, 1569 insertions(+) create mode 100644 keyboards/kin80/blackpill103/blackpill103.c create mode 100644 keyboards/kin80/blackpill103/blackpill103.h create mode 100644 keyboards/kin80/blackpill103/chconf.h create mode 100644 keyboards/kin80/blackpill103/config.h create mode 100644 keyboards/kin80/blackpill103/halconf.h create mode 100644 keyboards/kin80/blackpill103/mcuconf.h create mode 100644 keyboards/kin80/blackpill103/rules.mk create mode 100644 keyboards/kin80/blackpill401/blackpill401.c create mode 100644 keyboards/kin80/blackpill401/blackpill401.h create mode 100644 keyboards/kin80/blackpill401/config.h create mode 100644 keyboards/kin80/blackpill401/halconf.h create mode 100644 keyboards/kin80/blackpill401/mcuconf.h create mode 100644 keyboards/kin80/blackpill401/rules.mk create mode 100644 keyboards/kin80/blackpill411/blackpill411.c create mode 100644 keyboards/kin80/blackpill411/blackpill411.h create mode 100644 keyboards/kin80/blackpill411/config.h create mode 100644 keyboards/kin80/blackpill411/halconf.h create mode 100644 keyboards/kin80/blackpill411/mcuconf.h create mode 100644 keyboards/kin80/blackpill411/rules.mk create mode 100644 keyboards/kin80/config.h create mode 100644 keyboards/kin80/info.json create mode 100644 keyboards/kin80/keymaps/andrew/keymap.c create mode 100644 keyboards/kin80/keymaps/debug/keymap.c create mode 100644 keyboards/kin80/keymaps/debug/rules.mk create mode 100644 keyboards/kin80/keymaps/default/keymap.c create mode 100644 keyboards/kin80/keymaps/maxim/keymap.c create mode 100644 keyboards/kin80/keymaps/quartz64/config.h create mode 100644 keyboards/kin80/keymaps/quartz64/keymap.c create mode 100644 keyboards/kin80/keymaps/quartz64/rules.mk create mode 100644 keyboards/kin80/keymaps/roman/keymap.c create mode 100644 keyboards/kin80/kin80.c create mode 100644 keyboards/kin80/kin80.h create mode 100644 keyboards/kin80/micro/config.h create mode 100644 keyboards/kin80/micro/micro.c create mode 100644 keyboards/kin80/micro/micro.h create mode 100644 keyboards/kin80/micro/rules.mk create mode 100644 keyboards/kin80/readme.md create mode 100644 keyboards/kin80/rules.mk diff --git a/keyboards/kin80/blackpill103/blackpill103.c b/keyboards/kin80/blackpill103/blackpill103.c new file mode 100644 index 000000000000..c8fd4e5822d3 --- /dev/null +++ b/keyboards/kin80/blackpill103/blackpill103.c @@ -0,0 +1,25 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "blackpill103.h" + +void matrix_init_kb(void) { + /* LED pins setup */ + setPinOutput(LED4_PIN); + writePinLow(LED4_PIN); + + matrix_init_user(); +} diff --git a/keyboards/kin80/blackpill103/blackpill103.h b/keyboards/kin80/blackpill103/blackpill103.h new file mode 100644 index 000000000000..06cc42ba839e --- /dev/null +++ b/keyboards/kin80/blackpill103/blackpill103.h @@ -0,0 +1,19 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "kin80.h" diff --git a/keyboards/kin80/blackpill103/chconf.h b/keyboards/kin80/blackpill103/chconf.h new file mode 100644 index 000000000000..63236f2c2c8c --- /dev/null +++ b/keyboards/kin80/blackpill103/chconf.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/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/kin80/blackpill103/config.h b/keyboards/kin80/blackpill103/config.h new file mode 100644 index 000000000000..b8be5e648166 --- /dev/null +++ b/keyboards/kin80/blackpill103/config.h @@ -0,0 +1,35 @@ +/* +Copyright 2022 DmNosachev + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 DEVICE_VER 0x0002 + +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS + +//v.1.0 +//#define MATRIX_ROW_PINS { B8, B9, C13, B7, B6, B4, B3 } +//v.1.1 +#define MATRIX_ROW_PINS { B8, B9, C13, B7, B6, B5, B4 } +#define MATRIX_COL_PINS { A6, A7, B0, B1, B10, B11, A0, A1, A2, A3, A4, A5 } + +#define LED_PIN_ON_STATE 0 +#define LED_NUM_LOCK_PIN B14 +#define LED_CAPS_LOCK_PIN B13 +#define LED_SCROLL_LOCK_PIN B15 +#define LED4_PIN A8 diff --git a/keyboards/kin80/blackpill103/halconf.h b/keyboards/kin80/blackpill103/halconf.h new file mode 100644 index 000000000000..923b4e52d24d --- /dev/null +++ b/keyboards/kin80/blackpill103/halconf.h @@ -0,0 +1,26 @@ +/* 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/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/kin80/blackpill103/mcuconf.h b/keyboards/kin80/blackpill103/mcuconf.h new file mode 100644 index 000000000000..5e94a97e21e6 --- /dev/null +++ b/keyboards/kin80/blackpill103/mcuconf.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/handwired/onekey/bluepill/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 FALSE diff --git a/keyboards/kin80/blackpill103/rules.mk b/keyboards/kin80/blackpill103/rules.mk new file mode 100644 index 000000000000..019b1130d995 --- /dev/null +++ b/keyboards/kin80/blackpill103/rules.mk @@ -0,0 +1,8 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/kin80/blackpill401/blackpill401.c b/keyboards/kin80/blackpill401/blackpill401.c new file mode 100644 index 000000000000..26f32d85e0ae --- /dev/null +++ b/keyboards/kin80/blackpill401/blackpill401.c @@ -0,0 +1,25 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "blackpill401.h" + +void matrix_init_kb(void) { + /* LED pins setup */ + setPinOutput(LED4_PIN); + writePinLow(LED4_PIN); + + matrix_init_user(); +} diff --git a/keyboards/kin80/blackpill401/blackpill401.h b/keyboards/kin80/blackpill401/blackpill401.h new file mode 100644 index 000000000000..06cc42ba839e --- /dev/null +++ b/keyboards/kin80/blackpill401/blackpill401.h @@ -0,0 +1,19 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "kin80.h" diff --git a/keyboards/kin80/blackpill401/config.h b/keyboards/kin80/blackpill401/config.h new file mode 100644 index 000000000000..5f5f37c6d375 --- /dev/null +++ b/keyboards/kin80/blackpill401/config.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 DmNosachev + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 DEVICE_VER 0x0003 + +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS + +#define MATRIX_ROW_PINS { A4, B12, B13, B14, B15, A8, B5 } +#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A5, A6, A7, B0, B1, B10 } + +#define LED_PIN_ON_STATE 0 +#define LED_NUM_LOCK_PIN B4 +#define LED_CAPS_LOCK_PIN C13 +#define LED_SCROLL_LOCK_PIN B3 +#define LED4_PIN A15 diff --git a/keyboards/kin80/blackpill401/halconf.h b/keyboards/kin80/blackpill401/halconf.h new file mode 100644 index 000000000000..020a7722f0d5 --- /dev/null +++ b/keyboards/kin80/blackpill401/halconf.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/handwired/onekey/blackpill_f401/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/kin80/blackpill401/mcuconf.h b/keyboards/kin80/blackpill401/mcuconf.h new file mode 100644 index 000000000000..e614a9dfa93f --- /dev/null +++ b/keyboards/kin80/blackpill401/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This program is free software: you can 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_next "mcuconf.h" + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM5 +#define STM32_PWM_USE_TIM5 TRUE diff --git a/keyboards/kin80/blackpill401/rules.mk b/keyboards/kin80/blackpill401/rules.mk new file mode 100644 index 000000000000..264e71d0b5af --- /dev/null +++ b/keyboards/kin80/blackpill401/rules.mk @@ -0,0 +1,7 @@ +# MCU name +MCU = STM32F401 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +KEYBOARD_SHARED_EP = yes diff --git a/keyboards/kin80/blackpill411/blackpill411.c b/keyboards/kin80/blackpill411/blackpill411.c new file mode 100644 index 000000000000..1b68dfc2d37e --- /dev/null +++ b/keyboards/kin80/blackpill411/blackpill411.c @@ -0,0 +1,26 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "blackpill411.h" + +void matrix_init_kb(void) { + /* LED pins setup */ + setPinOutput(LED4_PIN); + writePinLow(LED4_PIN); + + matrix_init_user(); +} + diff --git a/keyboards/kin80/blackpill411/blackpill411.h b/keyboards/kin80/blackpill411/blackpill411.h new file mode 100644 index 000000000000..06cc42ba839e --- /dev/null +++ b/keyboards/kin80/blackpill411/blackpill411.h @@ -0,0 +1,19 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "kin80.h" diff --git a/keyboards/kin80/blackpill411/config.h b/keyboards/kin80/blackpill411/config.h new file mode 100644 index 000000000000..5f5f37c6d375 --- /dev/null +++ b/keyboards/kin80/blackpill411/config.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 DmNosachev + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 DEVICE_VER 0x0003 + +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS + +#define MATRIX_ROW_PINS { A4, B12, B13, B14, B15, A8, B5 } +#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A5, A6, A7, B0, B1, B10 } + +#define LED_PIN_ON_STATE 0 +#define LED_NUM_LOCK_PIN B4 +#define LED_CAPS_LOCK_PIN C13 +#define LED_SCROLL_LOCK_PIN B3 +#define LED4_PIN A15 diff --git a/keyboards/kin80/blackpill411/halconf.h b/keyboards/kin80/blackpill411/halconf.h new file mode 100644 index 000000000000..4a0da20890c7 --- /dev/null +++ b/keyboards/kin80/blackpill411/halconf.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/handwired/onekey/blackpill_f411/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/kin80/blackpill411/mcuconf.h b/keyboards/kin80/blackpill411/mcuconf.h new file mode 100644 index 000000000000..e614a9dfa93f --- /dev/null +++ b/keyboards/kin80/blackpill411/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This program is free software: you can 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_next "mcuconf.h" + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM5 +#define STM32_PWM_USE_TIM5 TRUE diff --git a/keyboards/kin80/blackpill411/rules.mk b/keyboards/kin80/blackpill411/rules.mk new file mode 100644 index 000000000000..75bc794ef0a9 --- /dev/null +++ b/keyboards/kin80/blackpill411/rules.mk @@ -0,0 +1,7 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +KEYBOARD_SHARED_EP = yes diff --git a/keyboards/kin80/config.h b/keyboards/kin80/config.h new file mode 100644 index 000000000000..a836bacf7541 --- /dev/null +++ b/keyboards/kin80/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2022 DmNosachev + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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" + +/* key matrix size */ +#define MATRIX_COLS 12 +#define MATRIX_ROWS 7 diff --git a/keyboards/kin80/info.json b/keyboards/kin80/info.json new file mode 100644 index 000000000000..269a88c0ef12 --- /dev/null +++ b/keyboards/kin80/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "Kin80", + "url": "https://github.com/DmNosachev/kinesis80", + "maintainer": "DmNosachev", + "usb": { + "vid": "0xFEED", + "pid": "0x4B4E" + }, + "manufacturer": "Quartz64" + "diode_direction": "COL2ROW", + "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":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":0, "y":1.25, "w":1.25}, {"x":1.25, "y":1.25}, {"x":2.25, "y":1.25}, {"x":3.25, "y":1.25}, {"x":4.25, "y":1.25}, {"x":5.25, "y":1.25}, {"x":11.25, "y":1.25}, {"x":12.25, "y":1.25}, {"x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25, "w":1.25}, {"x":0, "y":2.25, "w":1.25}, {"x":1.25, "y":2.25}, {"x":2.25, "y":2.25}, {"x":3.25, "y":2.25}, {"x":4.25, "y":2.25}, {"x":5.25, "y":2.25}, {"x":11.25, "y":2.25}, {"x":12.25, "y":2.25}, {"x":13.25, "y":2.25}, {"x":14.25, "y":2.25}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25, "w":1.25}, {"x":0, "y":3.25, "w":1.25}, {"x":1.25, "y":3.25}, {"x":2.25, "y":3.25}, {"x":3.25, "y":3.25}, {"x":4.25, "y":3.25}, {"x":5.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}, {"x":15.25, "y":3.25}, {"x":16.25, "y":3.25, "w":1.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":11.25, "y":4.25}, {"x":12.25, "y":4.25}, {"x":13.25, "y":4.25}, {"x":14.25, "y":4.25}, {"x":15.25, "y":4.25}, {"x":16.25, "y":4.25, "w":1.25}, {"x":1.25, "y":5.25}, {"x":2.25, "y":5.25}, {"x":3.25, "y":5.25}, {"x":4.25, "y":5.25}, {"x":12.25, "y":5.25}, {"x":13.25, "y":5.25}, {"x":14.25, "y":5.25}, {"x":15.25, "y":5.25}, {"x":6.25, "y":6}, {"x":7.25, "y":6}, {"x":9.25, "y":6}, {"x":10.25, "y":6}, {"x":5.25, "y":7, "h":2}, {"x":6.25, "y":7, "h":2}, {"x":7.25, "y":7}, {"x":9.25, "y":7}, {"x":10.25, "y":7, "h":2}, {"x":11.25, "y":7, "h":2}, {"x":7.25, "y":8}, {"x":9.25, "y":8}] + }, + "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":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, "y":1.25, "w":1.25}, {"x":1.25, "y":1.25}, {"x":2.25, "y":1.25}, {"x":3.25, "y":1.25}, {"x":4.25, "y":1.25}, {"x":5.25, "y":1.25}, {"x":11.75, "y":1.25}, {"x":12.75, "y":1.25}, {"x":13.75, "y":1.25}, {"x":14.75, "y":1.25}, {"x":15.75, "y":1.25}, {"x":16.75, "y":1.25, "w":1.25}, {"x":0, "y":2.25, "w":1.25}, {"x":1.25, "y":2.25}, {"x":2.25, "y":2.25}, {"x":3.25, "y":2.25}, {"x":4.25, "y":2.25}, {"x":5.25, "y":2.25}, {"x":11.75, "y":2.25}, {"x":12.75, "y":2.25}, {"x":13.75, "y":2.25}, {"x":14.75, "y":2.25}, {"x":15.75, "y":2.25}, {"x":16.75, "y":2.25, "w":1.25}, {"x":0, "y":3.25, "w":1.25}, {"x":1.25, "y":3.25}, {"x":2.25, "y":3.25}, {"x":3.25, "y":3.25}, {"x":4.25, "y":3.25}, {"x":5.25, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25}, {"x":13.75, "y":3.25}, {"x":14.75, "y":3.25}, {"x":15.75, "y":3.25}, {"x":16.75, "y":3.25, "w":1.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":11.75, "y":4.25}, {"x":12.75, "y":4.25}, {"x":13.75, "y":4.25}, {"x":14.75, "y":4.25}, {"x":15.75, "y":4.25}, {"x":16.75, "y":4.25, "w":1.25}, {"x":0.25, "y":5.25}, {"x":1.25, "y":5.25}, {"x":2.25, "y":5.25}, {"x":3.25, "y":5.25}, {"x":4.25, "y":5.25}, {"x":5.25, "y":5.25}, {"x":11.75, "y":5.25}, {"x":12.75, "y":5.25}, {"x":13.75, "y":5.25}, {"x":14.75, "y":5.25}, {"x":15.75, "y":5.25}, {"x":16.75, "y":5.25}, {"x":6.5, "y":6}, {"x":7.5, "y":6}, {"x":9.5, "y":6}, {"x":10.5, "y":6}, {"x":5.25, "y":7, "h":2}, {"x":6.25, "y":7, "h":2}, {"x":7.25, "y":7}, {"x":9.5, "y":7}, {"x":10.5, "y":7, "h":2}, {"x":11.5, "y":7, "h":2}, {"x":7.25, "y":8}, {"x":9.5, "y":8}] + } + } +} \ No newline at end of file diff --git a/keyboards/kin80/keymaps/andrew/keymap.c b/keyboards/kin80/keymaps/andrew/keymap.c new file mode 100644 index 000000000000..d8773f9d7284 --- /dev/null +++ b/keyboards/kin80/keymaps/andrew/keymap.c @@ -0,0 +1,127 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "version.h" + +enum layer_names { + _BASE, // default layer + _L2 // macros +}; + +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + VRSN, + EMAIL1 // Macro example (type email address) +}; + +/* +* +* +* ,-------------------------------------------, ,-------------------------------------------, +* | Esc | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | += | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '"/L2 | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | V | B | | N | M | <, | >. | /? | Shift | +* `--------+------+------+------+------+------- `------+------+------+------+------+--------' +* |`~/L2 | <, | Left | Right| | Up | Down | [ | ] | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | Cmd | Opt | | Ctrl | Cmd | +* ,------|------|------| |------+------+------. +* | | | Home | | PgUp | | | +* |Backsp|Delete|------| |------|Enter | Space| +* | | | End | | PgDn | | | +* `--------------------' `--------------------' +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = LAYOUT( + KC_ESC, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_L2, KC_QUOT), + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT, + LT(_L2, KC_GRV), KC_COMM, KC_LEFT, KC_RIGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + KC_LCMD, KC_LOPT, KC_RCTL, KC_RCMD, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENTER, KC_SPC + ), +/* +* +* +* ,-------------------------------------------, ,-------------------------------------------, +* | F1 | | | | | | |EMAIL1| | |PrnSc | ScrLk| Pause | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | VRSN | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | MbL | MUp | MbR | | |RESET | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | ML | MDn | MR | | | | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | | | | | | | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | |Insert| | | | | | | | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | | | | | | +* ,------|------|------| |------+------+------. +* | | | MWh+ | | | | | +* | | |------| |------| | | +* | | | MWh- | | | | | +* `--------------------' `--------------------' +*/ +[_L2] = LAYOUT( + KC_F1, _______, _______, _______, _______, _______, EMAIL1, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, _______, _______, VRSN, _______, _______, _______, _______, _______, + _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, RESET, _______, _______, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_INS, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + KC_WH_U, _______, + _______, _______, KC_WH_D, _______, _______, _______ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case VRSN: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + break; + + case EMAIL1: + if (record->event.pressed) { + SEND_STRING("MyEmail@gmail.com"); + } + return false; + break; + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(LED4_PIN, layer_state_cmp(state, _L2)); + return state; +} diff --git a/keyboards/kin80/keymaps/debug/keymap.c b/keyboards/kin80/keymaps/debug/keymap.c new file mode 100644 index 000000000000..ef92ee4fee17 --- /dev/null +++ b/keyboards/kin80/keymaps/debug/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // If console is enabled, it will print the matrix position and status of each key pressed +#ifdef CONSOLE_ENABLE + uprintf("row: %u, col: %u, pressed: %u\n", record->event.key.row, record->event.key.col, record->event.pressed); +#endif + return true; +} \ No newline at end of file diff --git a/keyboards/kin80/keymaps/debug/rules.mk b/keyboards/kin80/keymaps/debug/rules.mk new file mode 100644 index 000000000000..15b7f725b26d --- /dev/null +++ b/keyboards/kin80/keymaps/debug/rules.mk @@ -0,0 +1 @@ +CONSOLE_ENABLE = yes diff --git a/keyboards/kin80/keymaps/default/keymap.c b/keyboards/kin80/keymaps/default/keymap.c new file mode 100644 index 000000000000..5da48745107b --- /dev/null +++ b/keyboards/kin80/keymaps/default/keymap.c @@ -0,0 +1,102 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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, // default layer + _NM // numpad on right, mouse on left +}; + +/* +* +* +* ,-------------------------------------------. ,-------------------------------------------. +* | Esc | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | PrSc | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | += | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | NM | A | S | D | F | G | | H | J | K | L | ;: | '"/NM | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | `~ | Ins | Left | Right| | Up | Down | [ | ] | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | Ctrl | Alt | | Gui | Ctrl | +* ,------|------|------| |------+------+------. +* | | | Home | | PgUp | | | +* |Backsp|Delete|------| |------|Enter | Space| +* | | | End | | PgDn | | | +* `--------------------' `--------------------' +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = LAYOUT( + KC_ESC, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + MO(_NM), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_NM, 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_GRV, KC_INS, KC_LEFT, KC_RIGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + KC_LCTL, KC_LALT, KC_RGUI,KC_RCTL, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN,KC_ENTER, KC_SPC + ), +/* +* +* +* ,-------------------------------------------. ,-------------------------------------------. +* | F1 | | | | | | | | | | | | F12 | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | |ScrLk |Numlck| = | / | * | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | MbL | MUp | MbR | | |CapsLk| 7 | 8 | 9 | - | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | ML | MDn | MR | | | | 4 | 5 | 6 | + | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | . | 1 | 2 | 3 |Enter | | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* |RESET | | | | | | | | | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | | | | RAlt | | +* ,------|------|------| |------+------+------. +* | | |MWhUp | | | | | +* | | |------| |------| | 0 | +* | | |MWhDn | | | | | +* `--------------------' `--------------------' +*/ +[_NM] = LAYOUT( + KC_F1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, + _______, _______, _______, _______, _______, _______, KC_SLCK, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, KC_CAPS, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, _______, _______, _______, _______, _______, KC_PDOT, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_RALT, _______, + KC_WH_U, _______, + _______, _______, KC_WH_D, _______, _______, KC_P0 + ) +}; + + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(LED4_PIN, layer_state_cmp(state, _L2)); + return state; +} diff --git a/keyboards/kin80/keymaps/maxim/keymap.c b/keyboards/kin80/keymaps/maxim/keymap.c new file mode 100644 index 000000000000..a8be54a4dde4 --- /dev/null +++ b/keyboards/kin80/keymaps/maxim/keymap.c @@ -0,0 +1,215 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "version.h" + +enum layer_names { + _BASE, // default layer + _NM, // numpad on right, mouse on left + _MC // macros +}; + +#define MC1 COMP_FR_QUOTES +#define MC2 COMP_NBSP_EM_DASH +#define MC3 COMP_NBSP + +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + VRSN, + COMP_FR_QUOTES, // Compose: french quotes + COMP_NBSP_EM_DASH, // Compose: nbsp followed by em dash + COMP_NBSP, // Compose: nbsp + PWD1, // Windows password + PWD2, // Stand root password + PWD3, // KP password + EMAIL1 // Gmail address +}; + +/* +* +* +* ,-------------------------------------------- --------------------------------------------. +* | Esc | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | PrSc | RAlt | +* |--------+------+------+------+------+------+ +------+------+------+------+------+--------| +* | +=/Alt | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |`~/NM | A | S | D | F | G | | H | J | K | L | ;: | '"/NM | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | +* `--------+------+------+------+------+------- `------+------+------+------+------+--------' +* | MC |C+Shft| [ | ] | | Left | Down | Up | Right| +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | Ctl |Enter | | Gui | Ctrl | +* ,------|------|------| |------+------+------. +* | | | Home | | PgUp | | | +* |Space |Backsp|------| |------| Del | Enter| +* | | | End | | PgDn | | | +* `--------------------' `--------------------' +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = LAYOUT( + KC_ESC, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR, KC_RALT, + LALT_T(KC_EQL), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + LCTL_T(KC_GRV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_NM, 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(_MC), LCTL(KC_LSFT), KC_LBRC, KC_RBRC, KC_LEFT,KC_DOWN, KC_UP, KC_RGHT, + MO(_NM), KC_ENTER, KC_RGUI,KC_RCTRL, + KC_HOME, KC_PGUP, + KC_SPC, KC_BSPC, KC_END, KC_PGDN,KC_DEL, KC_ENTER + ), +/* +* +* +* ,-------------------------------------------- --------------------------------------------. +* | F1 | | | | | | | | | | | F11 | F12 | +* |--------+------+------+------+------+------+ +------+------+------+------+------+--------| +* | | | | | | | |ScrLk |Numlck| = | / | * | | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | | | MbL | MUp | MbR | Ins | |CapsLk| 7 | 8 | 9 | - | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | ML | MDn | MR | | | | 4 | 5 | 6 | + | L1 | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | . | 1 | 2 | 3 |Enter | | +* `--------+------+------+------+------+------- `------+------+------+------+------+--------' +* | | | | | | | | | | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | | | | | | +* ,------|------|------| |------+------+------. +* | | |MWhUp | | | | | +* | | |------| |------| | 0 | +* | | |MWhDn | | | | | +* `--------------------' `--------------------' +*/ +[_NM] = LAYOUT( + KC_F1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, KC_SLCK, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_INS, KC_CAPS, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, _______, _______, _______, _______, _______, KC_PDOT, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + KC_WH_U, _______, + _______, _______, KC_WH_D, _______, _______, KC_P0 + ), +/* +* +* +* ,-------------------------------------------- --------------------------------------------. +* | version| | | | | | |email | | | | | | +* |--------+------+------+------+------+------+ +------+------+------+------+------+--------| +* | | | | | | | | | | | | | MC2 | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | | | | |reset | | | | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | | | MC1 | | | | +* `--------+------+------+------+------+------- `------+------+------+------+------+--------' +* | | | | | | | | | | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | | | | | | +* ,------|------|------| |------+------+------. +* | | | | | | | | +* | MC3 | |------| |------| | | +* | | | | | | | | +* `--------------------' `--------------------' +*/ +[_MC] = LAYOUT( + VRSN, _______, _______, _______, _______, _______, EMAIL1, _______, _______, PWD3, PWD2, PWD1, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MC2, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, MC1, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, + MC3, _______, _______, _______, _______, _______ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case VRSN: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + break; + + case COMP_FR_QUOTES: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_RALT)"<<"SS_TAP(X_RALT)">>"SS_TAP(X_LEFT)); + } + return false; + break; + + case COMP_NBSP_EM_DASH: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_RALT)" "SS_TAP(X_RALT)"--- "); + } + return false; + break; + + case COMP_NBSP: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_RALT)" "); + } + return false; + break; + + case PWD1: + if (record->event.pressed) { + SEND_STRING("password1"SS_TAP(X_ENTER)); + } + return false; + break; + + case PWD2: + if (record->event.pressed) { + SEND_STRING("password2"SS_TAP(X_ENTER)); + } + return false; + break; + + case PWD3: + if (record->event.pressed) { + SEND_STRING("password3"SS_TAP(X_ENTER)); + } + return false; + break; + + case EMAIL1: + if (record->event.pressed) { + SEND_STRING("email@example.com"); + } + return false; + break; + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(LED4_PIN, layer_state_cmp(state, _MC)); + return state; +} diff --git a/keyboards/kin80/keymaps/quartz64/config.h b/keyboards/kin80/keymaps/quartz64/config.h new file mode 100644 index 000000000000..0b5cc5399b3c --- /dev/null +++ b/keyboards/kin80/keymaps/quartz64/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2022 DmNosachev + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 LSPO_KEYS KC_LSFT, KC_TRNS, KC_LBRC +#define RSPC_KEYS KC_RSFT, KC_TRNS, KC_RBRC + +#define ENCODERS_PAD_A { A10 } +#define ENCODERS_PAD_B { A9 } \ No newline at end of file diff --git a/keyboards/kin80/keymaps/quartz64/keymap.c b/keyboards/kin80/keymaps/quartz64/keymap.c new file mode 100644 index 000000000000..611c86a09d8c --- /dev/null +++ b/keyboards/kin80/keymaps/quartz64/keymap.c @@ -0,0 +1,234 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "version.h" + +enum layer_names { + _BASE, // default layer + _NM, // numpad onright, mouse on left + _MC // macros +}; + +#define MC1 COMP_FR_QUOTES +#define MC2 COMP_NBSP_EM_DASH +#define MC3 COMP_NBSP + +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + VRSN, + COMP_FR_QUOTES, // Compose: french quotes + COMP_NBSP_EM_DASH, // Compose: nbsp followed by em dash + COMP_NBSP, // Compose: nbsp + PWD1, + PWD2, + PWD3, + PWD4, + EMAIL1 // Gmail address +}; + +/* +* +* +* ,-------------------------------------------- --------------------------------------------. +* | Esc | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | PrSc | RAlt | +* |--------+------+------+------+------+------+ +------+------+------+------+------+--------| +* | +=/Alt | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |`~/Ctrl | A | S | D | F | G | | H | J | K | L | ;: | '"/NM | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift |Z/Ctrl| X | C | V | B | | N | M | ,. | .> | /? | Shift | +* `-+------+------+------+------+------+------| |------+------+------+------+------+------+-' +* | Play | MC |C+Shft| [ | ] | | | | Left | Down | Up | Right| | +* `-----------------------------------------' `-----------------------------------------' +* ,-------------. ,-------------. +* | NM |Enter | | Gui | Ctrl | +* ,------|------|------| |------+------+------. +* | | | Home | | PgUp | | | +* |Space |Backsp|------| |------| Del | Enter| +* | | | End | | PgDn | | | +* `--------------------' `--------------------' +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = LAYOUT_all( + KC_ESC, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR, KC_RALT, + LALT_T(KC_EQL), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + LCTL_T(KC_GRV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_NM, KC_QUOT), + KC_LSPO, LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_MPLY, MO(_MC), LCTL(KC_LSFT), KC_LBRC, KC_RBRC, KC_NO, KC_NO, KC_LEFT,KC_DOWN, KC_UP, KC_RGHT,KC_NO, + MO(_NM), KC_ENTER, KC_RGUI,KC_RCTRL, + KC_HOME, KC_PGUP, + KC_SPC, KC_BSPC, KC_END, KC_PGDN,KC_DEL, KC_ENTER + ), +/* +* +* +* ,-------------------------------------------- --------------------------------------------. +* | F1 |au on |au off| | | | |ck tg |ck up |ck dn |ck rst| F11 | F12 | +* |--------+------+------+------+------+------+ +------+------+------+------+------+--------| +* | | | | | | | |ScrLk |Numlck| = | / | * | | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | | | MbL | MUp | MbR | Ins | |CapsLk| 7 | 8 | 9 | - | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | ML | MDn | MR | | | | 4 | 5 | 6 | + | L1 | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | . | 1 | 2 | 3 |Enter | | +* `-+------+------+------+------+------+------| |------+------+------+------+------+------+-' +* | | | | | | | | | | | | | | +* `-----------------------------------------' `-----------------------------------------' +* ,-------------. ,-------------. +* | | | | | | +* ,------|------|------| |------+------+------. +* | | |MWhUp | | | | | +* | | |------| |------| | 0 | +* | | |MWhDn | | | | | +* `--------------------' `--------------------' +*/ +[_NM] = LAYOUT_all( + KC_F1, AU_ON, AU_OFF, _______, _______, _______, CK_TOGG, CK_UP, CK_DOWN, CK_RST, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, KC_SLCK, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_INS, KC_CAPS, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, _______, _______, _______, _______, _______, KC_PDOT, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + KC_WH_U, _______, + _______, _______, KC_WH_D, _______, _______, KC_P0 + ), +/* +* +* +* ,-------------------------------------------- --------------------------------------------. +* | | | | | | | |email | | PWD4 | PWD3 | PWD2 | PWD1 | +* |--------+------+------+------+------+------+ +------+------+------+------+------+--------| +* | | | | | | | | | | | | | MC2 | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | | | | |reset | | | | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | | | MC1 | | | | +* `-+------+------+------+------+------+------| |------+------+------+------+------+------+-' +* | | | | | | | | | | | | | | +* `-----------------------------------------' `-----------------------------------------' +* ,-------------. ,-------------. +* | | | | | | +* ,------|------|------| |------+------+------. +* | | | | | | | | +* | MC3 | |------| |------| | | +* | | | | | | | | +* `--------------------' `--------------------' +*/ +[_MC] = LAYOUT_all( + VRSN, _______, _______, _______, _______, _______, EMAIL1, _______, PWD4, PWD3, PWD2, PWD1, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MC2, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, MC1, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, + MC3, _______, _______, _______, _______, _______ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case VRSN: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + break; + + case COMP_FR_QUOTES: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_RALT)"<<"SS_TAP(X_RALT)">>"SS_TAP(X_LEFT)); + } + return false; + break; + + case COMP_NBSP_EM_DASH: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_RALT)" "SS_TAP(X_RALT)"--- "); + } + return false; + break; + + case COMP_NBSP: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_RALT)" "); + } + return false; + break; + + case PWD1: + if (record->event.pressed) { + SEND_STRING("NakedLunch1991"SS_TAP(X_ENTER)); + } + return false; + break; + + case PWD2: + if (record->event.pressed) { + SEND_STRING("O94nx4sUWHc4akud"SS_TAP(X_ENTER)); + } + return false; + break; + + case PWD3: + if (record->event.pressed) { + SEND_STRING("Q123qQ123q"SS_TAP(X_ENTER)); + } + return false; + break; + + case PWD4: + if (record->event.pressed) { + SEND_STRING("EraserHead1976"SS_TAP(X_ENTER)); + } + return false; + break; + + case EMAIL1: + if (record->event.pressed) { + SEND_STRING("quartz64@gmail.com"); + } + return false; + break; + } + return true; +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(LED4_PIN, !layer_state_cmp(state, _MC)); + return state; +} diff --git a/keyboards/kin80/keymaps/quartz64/rules.mk b/keyboards/kin80/keymaps/quartz64/rules.mk new file mode 100644 index 000000000000..5af1ba85367f --- /dev/null +++ b/keyboards/kin80/keymaps/quartz64/rules.mk @@ -0,0 +1 @@ +ENCODER_ENABLE = yes diff --git a/keyboards/kin80/keymaps/roman/keymap.c b/keyboards/kin80/keymaps/roman/keymap.c new file mode 100644 index 000000000000..9242a2ef9ef8 --- /dev/null +++ b/keyboards/kin80/keymaps/roman/keymap.c @@ -0,0 +1,134 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "version.h" + +enum layer_names { + _BASE, // default layer + _L2 // macros +}; + +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + VRSN, + EMAIL1 // Macro example (type email address) +}; + +/* +* +* +* ,-------------------------------------------, ,-------------------------------------------, +* | Esc | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | += | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '"/L2 | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | V | B | | N | M | <, | >. | /? | Shift | +* `--------+------+------+------+------+------- `------+------+------+------+------+--------' +* |`~/L2 | <, | Left | Right| | Up | Down | [ | ] | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* |LCtrl | Alt | | GUI |Shift | +* ,------|------|------| |------+------+------. +* | | | Home | | PgUp | | | +* |Backsp|Delete|------| |------|Enter | Space| +* | | | End | | PgDn | | | +* `--------------------' `--------------------' +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = LAYOUT( + KC_ESC, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_L2, KC_QUOT), + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT, + LT(_L2, KC_GRV), KC_COMM, KC_LEFT, KC_RIGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + KC_LCTRL, KC_LALT, KC_RGUI, KC_RSHIFT, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENTER, KC_SPC + ), +/* +* +* +* ,-------------------------------------------, ,-------------------------------------------, +* | F1 | | | | | | |EMAIL1| | |PrnSc | ScrLk| Pause | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | VRSN | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | MbL | MUp | MbR | | | | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | ML | MDn | MR | | | | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | | | | | | | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | |Insert| | | | | | | | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | | | | Ralt |RCtrl | +* ,------|------|------| |------+------+------. +* | | | MWh+ | | | | | +* | | |------| |------| | | +* | | | MWh- | | | | | +* `--------------------' `--------------------' +*/ +[_L2] = LAYOUT( + KC_F1, _______, _______, _______, _______, _______, EMAIL1, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, _______, _______, VRSN, _______, _______, _______, _______, _______, + _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_INS, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + KC_WH_U, _______, + _______, _______, KC_WH_D, _______, _______, _______ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case VRSN: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + break; + + case EMAIL1: + if (record->event.pressed) { + SEND_STRING("MyEmail@gmail.com"); + } + return false; + break; + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _L2: + writePinHigh(LED4_PIN); + break; + default: // for any other layers, or the default layer + writePinLow(LED4_PIN); + break; + } + return state; +} diff --git a/keyboards/kin80/kin80.c b/keyboards/kin80/kin80.c new file mode 100644 index 000000000000..89b46c340e02 --- /dev/null +++ b/keyboards/kin80/kin80.c @@ -0,0 +1,17 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "kin80.h" diff --git a/keyboards/kin80/kin80.h b/keyboards/kin80/kin80.h new file mode 100644 index 000000000000..2bda24d19a92 --- /dev/null +++ b/keyboards/kin80/kin80.h @@ -0,0 +1,62 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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" + +/* readability */ +#define XXX KC_NO + +#define LAYOUT( \ + 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, k45, k46, k47, k48, k49, k4A, k4B, \ + k51, k52, k53, k54, k57, k58, k59, k5A, \ + k62, k63, k69, k68, \ + k64, k6A, \ + k60, k61, k65, k6B, k67, k66 \ +) { \ + { 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, k45, k46, k47, k48, k49, k4A, k4B }, \ + { XXX, k51, k52, k53, k54, XXX, XXX, k57, k58, k59, k5A, XXX }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6A, k6B } \ +} + +#define LAYOUT_all( \ + 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, k45, k46, k47, k48, k49, k4A, k4B, \ + k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, \ + k62, k63, k69, k68, \ + k64, k6A, \ + k60, k61, k65, k6B, k67, k66 \ +) { \ + { 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, k45, k46, k47, k48, k49, k4A, k4B }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6A, k6B } \ +} diff --git a/keyboards/kin80/micro/config.h b/keyboards/kin80/micro/config.h new file mode 100644 index 000000000000..546d0bc5f5e1 --- /dev/null +++ b/keyboards/kin80/micro/config.h @@ -0,0 +1,30 @@ +/* +Copyright 2022 DmNosachev + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 DEVICE_VER 0x0001 + +#define MATRIX_ROW_PINS { B6, B3, B1, D6, B7, B5, D1 } +#define MATRIX_COL_PINS { B4, E6, D7, C6, D4, D0, F7, F6, F5, F4, F1, F0 } +#define UNUSED_PINS { C7 } + +#define LED_PIN_ON_STATE 0 +#define NUM_LOCK_LED_PIN D2 +#define SCROLL_LOCK_LED_PIN D3 +#define CAPS_LOCK_LED_PIN B0 +#define LED4_PIN B2 diff --git a/keyboards/kin80/micro/micro.c b/keyboards/kin80/micro/micro.c new file mode 100644 index 000000000000..264d1a8577de --- /dev/null +++ b/keyboards/kin80/micro/micro.c @@ -0,0 +1,25 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "micro.h" + +void matrix_init_kb(void) { + /* LED pins setup */ + setPinOutput(LED4_PIN); + writePinLow(LED4_PIN); + + matrix_init_user(); +} diff --git a/keyboards/kin80/micro/micro.h b/keyboards/kin80/micro/micro.h new file mode 100644 index 000000000000..6efe88e6633f --- /dev/null +++ b/keyboards/kin80/micro/micro.h @@ -0,0 +1,20 @@ +/* Copyright 2022 DmNosachev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "kin80.h" + diff --git a/keyboards/kin80/micro/rules.mk b/keyboards/kin80/micro/rules.mk new file mode 100644 index 000000000000..def852a53152 --- /dev/null +++ b/keyboards/kin80/micro/rules.mk @@ -0,0 +1,5 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = lufa-dfu \ No newline at end of file diff --git a/keyboards/kin80/readme.md b/keyboards/kin80/readme.md new file mode 100644 index 000000000000..9adee072e7f3 --- /dev/null +++ b/keyboards/kin80/readme.md @@ -0,0 +1,33 @@ +# Kin80 + +![Kin80 controller](https://i.imgur.com/Im19DdHh.jpg) + +Kin80 is a set of replacement PCBs and switch mounting plates for [Kinesis Contoured keyboards](https://deskthority.net/wiki/Kinesis_Contoured). + +* Keyboard Maintainer: [Dmitriy Nosachev](mailto:quartz64@gmail.com) +* Hardware Supported: Kin80 PCB +* Hardware Availability: [Open Source (CC-BY-SA](https://github.com/DmNosachev/kin80) + +There are 4 versions of the controller PCB, which correspond to the subfolder names: + +* 'micro': rev. 1.1 (obsolete) used Arduino Micro board. +* 'blackpill103': rev. 1.2 (obsolete) used 'Black Pill' boards with STM32F103C8T6 MCU. +* 'blackpill401' and 'blackpill411'. Latest Kin80 PCB revisions (1.3+) use WeAct Studio STM32F401 or STM32F411 boards. They are pin compatible with each other, but use different MCUs. + +Make example for this keyboard (after setting up your build environment): + + `qmk compile -kb kin80 -km 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). + +Default version is 'blackpill401'. If you need to build a firmware for STM32F411, use 'blackpill411' version, e.g.: + + `qmk compile -kb kin80:blackpill411 -km default` + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the the top left key and plug in the keyboard. +* **Physical reset button**. Hold 'boot0' button on MCU board, press 'reset', then release 'boot0'. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available \ No newline at end of file diff --git a/keyboards/kin80/rules.mk b/keyboards/kin80/rules.mk new file mode 100644 index 000000000000..2dad32f8efa6 --- /dev/null +++ b/keyboards/kin80/rules.mk @@ -0,0 +1,14 @@ +DEFAULT_FOLDER = kin80/blackpill401 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file From 4b9b96ade797ce47792f32d31d0b809ea3d6dbb0 Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 19 Apr 2022 13:57:58 -0400 Subject: [PATCH 13/71] [Keyboard] Add notes on Iris rev6a firmware (#16878) --- keyboards/keebio/iris/readme.md | 14 +++++++++++--- keyboards/keebio/iris/rev6a/config.h | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/keyboards/keebio/iris/readme.md b/keyboards/keebio/iris/readme.md index 00126a390844..e98f98539427 100644 --- a/keyboards/keebio/iris/readme.md +++ b/keyboards/keebio/iris/readme.md @@ -9,12 +9,20 @@ Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): - make keebio/iris/rev4:default + make keebio/iris/rev6:default Example of flashing this keyboard: - make keebio/iris/rev4:default:flash + make keebio/iris/rev6:default:flash See [build environment setup](https://docs.qmk.fm/#/newbs_getting_started) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. -A build guide for this keyboard can be found here: [Iris Build Guide](https://docs.keeb.io/iris-build-guide.html) +A build guide for this keyboard can be found here: [Iris Build Guide](https://docs.keeb.io/iris-rev6-build-guide) + +## Iris Rev. 6 Notes + +The Iris Rev. 6 and Rev. 6.1 PCBs are nearly identical and have the same firmware (`rev6`) pre-flashed to them that has VIA support enabled. However this stock firmware does not support for Lighting controls in VIA. + +To enable Lighting controls in VIA, you will need the `rev6a` firmware. See [Enabling Iris Rev. 6 VIA RGB Controls](https://docs.keeb.io/iris-rev6-rgb-via) for more details. + +Both the Rev. 6 and Rev. 6.1 PCBs are compatible with the `rev6a` firmware. diff --git a/keyboards/keebio/iris/rev6a/config.h b/keyboards/keebio/iris/rev6a/config.h index 06c1f38e11b6..d846891d9203 100644 --- a/keyboards/keebio/iris/rev6a/config.h +++ b/keyboards/keebio/iris/rev6a/config.h @@ -22,7 +22,7 @@ along with this program. If not, see . #define PRODUCT_ID 0x6356 #define DEVICE_VER 0x0610 #define MANUFACTURER Keebio -#define PRODUCT Iris Rev. 6.1 +#define PRODUCT Iris Rev. 6a /* key matrix size */ // Rows are doubled-up From 3a37200a2c1b4ec5b5d31d77a3e3839766d508da Mon Sep 17 00:00:00 2001 From: jels <66403163+Jels02@users.noreply.github.com> Date: Wed, 20 Apr 2022 17:46:30 +1000 Subject: [PATCH 14/71] Fixed error in config (#16895) --- keyboards/jels/jels60/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/jels/jels60/config.h b/keyboards/jels/jels60/config.h index 0157da213c17..6805018dd722 100644 --- a/keyboards/jels/jels60/config.h +++ b/keyboards/jels/jels60/config.h @@ -30,7 +30,7 @@ #define MATRIX_COLS 14 /*Define Matrix Pins */ -#define MATRIX_ROW_PINS {B3, D1, F0, F4, F1} +#define MATRIX_ROW_PINS {B3, D2, F0, F4, F1} #define MATRIX_COL_PINS {E6, C7, B4, D7, D6, D4, D5, D3, F5, F6, F7, C6, B6, B5} // Caps lock Pin From a6288767b06d03fe87ce47227bf513360b103ce9 Mon Sep 17 00:00:00 2001 From: jpe230 Date: Wed, 20 Apr 2022 12:10:20 -0500 Subject: [PATCH 15/71] Fix i2c driver doc: Incorrect name (#16898) --- docs/i2c_driver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/i2c_driver.md b/docs/i2c_driver.md index 95c588af4415..f4e6c6619e64 100644 --- a/docs/i2c_driver.md +++ b/docs/i2c_driver.md @@ -166,7 +166,7 @@ Send multiple bytes to the selected I2C device. ### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` -Receive multiple bytes from the selected SPI device. +Receive multiple bytes from the selected I2C device. #### Arguments From bc3d28f898b60491a95f102ff956896bc6f923bd Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Thu, 21 Apr 2022 17:08:47 +0100 Subject: [PATCH 16/71] [Keyboard] Fix kin80 default keymap (#16893) --- keyboards/kin80/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/kin80/keymaps/default/keymap.c b/keyboards/kin80/keymaps/default/keymap.c index 5da48745107b..9ef3e2b2fc2c 100644 --- a/keyboards/kin80/keymaps/default/keymap.c +++ b/keyboards/kin80/keymaps/default/keymap.c @@ -97,6 +97,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { - writePin(LED4_PIN, layer_state_cmp(state, _L2)); + writePin(LED4_PIN, layer_state_cmp(state, _NM)); return state; } From 4a2d033f929676ce2955eaad95212e106de29c38 Mon Sep 17 00:00:00 2001 From: Simon Arlott <70171+nomis@users.noreply.github.com> Date: Thu, 21 Apr 2022 17:33:29 +0100 Subject: [PATCH 17/71] rgblight: Fix rgblight_blink_layer when multiple layers are active (#16824) --- quantum/rgblight/rgblight.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index dc5757cb00c1..cc856a0e8686 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -844,18 +844,19 @@ void rgblight_unblink_all_but_layer(uint8_t layer) { void rgblight_blink_layer_repeat_helper(void) { if (_blinking_layer_mask != 0 && timer_expired(sync_timer_read(), _repeat_timer)) { for (uint8_t layer = 0; layer < RGBLIGHT_MAX_LAYERS; layer++) { - if ((_blinking_layer_mask & (rgblight_layer_mask_t)1 << layer) != 0 && _times_remaining > 0) { + if ((_blinking_layer_mask & (rgblight_layer_mask_t)1 << layer) != 0) { if (_times_remaining % 2 == 1) { rgblight_set_layer_state(layer, false); } else { rgblight_set_layer_state(layer, true); } - _times_remaining--; - _repeat_timer = sync_timer_read() + _dur; } } + _times_remaining--; if (_times_remaining <= 0) { _blinking_layer_mask = 0; + } else { + _repeat_timer = sync_timer_read() + _dur; } } } From e3c5cc73f97cc268f78f2c49d20677cee1bbeeb4 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Fri, 22 Apr 2022 06:48:50 +0900 Subject: [PATCH 18/71] [Keymap] Fix build error `helix:five_rows` (#16847) --- .../rev2/keymaps/five_rows/oled_display.c | 279 ------------------ .../helix/rev2/keymaps/five_rows/rules.mk | 3 +- .../rev3_5rows/keymaps/five_rows/config.h | 2 + .../rev3_5rows/keymaps/five_rows/rules.mk | 2 + .../five_rows => users/mtei}/oled_display.c | 10 +- users/mtei/pseudo_sprintf.c | 53 ++++ users/mtei/pseudo_sprintf.h | 8 + 7 files changed, 74 insertions(+), 283 deletions(-) delete mode 100644 keyboards/helix/rev2/keymaps/five_rows/oled_display.c rename {keyboards/helix/rev3_5rows/keymaps/five_rows => users/mtei}/oled_display.c (97%) create mode 100644 users/mtei/pseudo_sprintf.c create mode 100644 users/mtei/pseudo_sprintf.h diff --git a/keyboards/helix/rev2/keymaps/five_rows/oled_display.c b/keyboards/helix/rev2/keymaps/five_rows/oled_display.c deleted file mode 100644 index dc6de02b1764..000000000000 --- a/keyboards/helix/rev2/keymaps/five_rows/oled_display.c +++ /dev/null @@ -1,279 +0,0 @@ -/* Copyright 2020 mtei - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more 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 -#ifdef CONSOLE_ENABLE - #include "print.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif -#include -#include "layer_number.h" - -extern int current_default_layer; - -void init_helix_oled(void) { -#ifdef SSD1306OLED - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - iota_gfx_init(!has_usb()); // turns on the display -#endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#if defined(SSD1306OLED) || defined(OLED_ENABLE) - -# if defined(OLED_ENABLE) -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (is_keyboard_master()) { - return OLED_ROTATION_0; - } else { - return OLED_ROTATION_180; - } -} -# else -# define oled_write(data,flag) matrix_write(matrix, data) -# define oled_write_P(data,flag) matrix_write_P(matrix, data) -# endif - -# ifdef SSD1306OLED -void matrix_scan_user(void) { - iota_gfx_task(); // this is what updates the display continuously -} - -void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} -# endif - -static char *sprint_decimal(char *buf, int data) { - if (data > 9) { - buf = sprint_decimal(buf, data/10); - } - *buf++ = "0123456789"[data%10]; - *buf = '\0'; - return buf; -} - -static char *sprint_hex(char *buf, uint32_t data) { - if (data > 0xf) { - buf = sprint_hex(buf, data/0x10); - } - *buf++ = "0123456789abcdef"[data & 0xf]; - *buf = '\0'; - return buf; -} - -char *sprints(char *buf, char *src) { - while (*src) { - *buf++ = *src++; - } - *buf = '\0'; - return buf; -} - -char *sprintx(char *buf, char *leadstr, uint32_t data) { - buf = sprints(buf, leadstr); - buf = sprint_hex(buf, data); - return buf; -} - -char *sprintd(char *buf, char *leadstr, int data) { - buf = sprints(buf, leadstr); - buf = sprint_decimal(buf, data); - return buf; -} - -char *sprint2d(char *buf, char *leadstr, int data) { - buf = sprints(buf, leadstr); - if (data > 99) { - return sprint_decimal(buf, data); - } - if (data < 10) { - *buf++ = ' '; - } - return sprint_decimal(buf, data); -} - -# ifdef SSD1306OLED -static void render_logo(struct CharacterMatrix *matrix) { -# else -static void render_logo(void) { -# endif - - static const char helix_logo[] PROGMEM = { - 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(helix_logo, false); - char buf[30]; - char *bufp; -# ifdef RGBLIGHT_ENABLE - if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { - bufp = sprint2d(buf, " LED ", rgblight_get_mode()); -# ifdef DEBUG_MATRIX_SCAN_RATE - bufp = sprintd(bufp, " scan:", get_matrix_scan_rate()); -# else - bufp = sprintd(bufp, ": ", rgblight_get_hue()/RGBLIGHT_HUE_STEP); - bufp = sprintd(bufp, ",", rgblight_get_sat()/RGBLIGHT_SAT_STEP); - bufp = sprintd(bufp, ",", rgblight_get_val()/RGBLIGHT_VAL_STEP); - bufp = sprints(bufp, " "); -# endif - oled_write(buf, false); -# ifndef SSD1306OLED - } else { -# ifdef DEBUG_MATRIX_SCAN_RATE - bufp = sprintd(buf, " scan:", get_matrix_scan_rate()); - oled_write(buf, false); -# endif - oled_write_P( PSTR("\n"), false); -# endif - } -# else -# ifdef DEBUG_MATRIX_SCAN_RATE - bufp = sprintd(buf, " scan:", get_matrix_scan_rate()); - bufp = sprints(bufp, " "); - oled_write(buf, false); -# endif -# endif -} - -static const char Qwerty_name[] PROGMEM = " Qwerty"; -static const char Colemak_name[] PROGMEM = " Colemak"; -static const char Dvorak_name[] PROGMEM = " Dvorak"; -static const char Eucalyn_name[] PROGMEM = " Eucalyn"; -static const char Keypad_name[] PROGMEM = " Keypad"; - -static const char AUX_name[] PROGMEM = ":AUX"; -static const char KAUX_name[] PROGMEM = ":00"; -static const char Padfunc_name[] PROGMEM = ":PadFunc"; -static const char Lower_name[] PROGMEM = ":Func"; -static const char Raise_name[] PROGMEM = ":Extra"; -static const char Adjust_name[] PROGMEM = ":Adjust"; - -static const char *layer_names[] = { - [_QWERTY] = Qwerty_name, - [_COLEMAK] = Colemak_name, - [_DVORAK] = Dvorak_name, - [_EUCALYN]= Eucalyn_name, - [_KEYPAD] = Keypad_name, - [_AUX] = AUX_name, - [_KAUX] = KAUX_name, - [_LOWER] = Lower_name, - [_RAISE] = Raise_name, - [_PADFUNC]= Padfunc_name, - [_ADJUST] = Adjust_name -}; - -# ifdef SSD1306OLED -void render_status(struct CharacterMatrix *matrix) { -# else -void render_status(void) { -# endif - - // Render to mode icon - static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; - if(keymap_config.swap_lalt_lgui==false){ - oled_write_P(os_logo[0][0], false); - oled_write_P(PSTR("\n"), false); - oled_write_P(os_logo[0][1], false); - } else { - oled_write_P(os_logo[1][0], false); - oled_write_P(PSTR("\n"), false); - oled_write_P(os_logo[1][1], false); - } - - // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below - int name_num; - uint32_t lstate; - oled_write_P(layer_names[current_default_layer], false); -# ifdef DEBUG_MATRIX_SCAN_RATE - char buf[16]; - sprintd(buf, " scan:", get_matrix_scan_rate()); - oled_write(buf, false); -# endif - oled_write_P(PSTR("\n"), false); - for (lstate = layer_state, name_num = 0; - lstate && name_num < sizeof(layer_names)/sizeof(char *); - lstate >>=1, name_num++) { - if ((lstate & 1) != 0) { - if (layer_names[name_num]) { - oled_write_P(layer_names[name_num], false); - } - } - } - oled_write_P(PSTR("\n"), false); - - // Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("NUMLOCK ") : PSTR(" "), false); - oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false); - oled_write_P(led_state.scroll_lock ? PSTR("SCLK ") : PSTR(" "), false); -} - -# ifdef SSD1306OLED -# if OLED_UPDATE_INTERVAL > 0 -uint16_t oled_update_timeout; -# endif - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - -# if DEBUG_TO_SCREEN - if (debug_enable) { - return; - } -# endif - -#if OLED_UPDATE_INTERVAL > 0 - if (timer_elapsed(oled_update_timeout) < OLED_UPDATE_INTERVAL) { - return; - } - oled_update_timeout = timer_read(); -#endif - matrix_clear(&matrix); - if (is_keyboard_master()) { - render_status(&matrix); - } else { - render_logo(&matrix); - } - matrix_update(&display, &matrix); -} -# else -bool oled_task_user(void) { - -# if DEBUG_TO_SCREEN - if (debug_enable) { - return; - } -# endif - - if(is_keyboard_master()){ - render_status(); - }else{ - render_logo(); - } - return false; -} -# endif - -#endif diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk index a92591d36bef..6604f6309be9 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk +++ b/keyboards/helix/rev2/keymaps/five_rows/rules.mk @@ -1,4 +1,5 @@ - SPLIT_KEYBOARD = yes +USER_NAME := mtei +SPLIT_KEYBOARD = yes CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h index e1c124f419c8..02d4425d62f8 100644 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h +++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h @@ -35,6 +35,8 @@ along with this program. If not, see . # define OLED_UPDATE_INTERVAL 50 #endif +#define PSEUDO_SPRINTF_DEFINED + // place overrides here // If you need more program area, try select and reduce rgblight modes to use. diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk index 3f3bd9a9ab50..1d7f2f2744cc 100644 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk +++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk @@ -1,3 +1,5 @@ +USER_NAME := mtei + CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration # CONSOLE_ENABLE and COMMAND_ENABLE diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c b/users/mtei/oled_display.c similarity index 97% rename from keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c rename to users/mtei/oled_display.c index cee415ad30b8..6a16b23b0e1d 100644 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c +++ b/users/mtei/oled_display.c @@ -25,9 +25,7 @@ #include #include "layer_number.h" -char *sprints(char *buf, char *src); -char *sprintd(char *buf, char *leadstr, int data); -char *sprint2d(char *buf, char *leadstr, int data); +#include "pseudo_sprintf.h" extern int current_default_layer; @@ -68,6 +66,10 @@ void matrix_update(struct CharacterMatrix *dest, } # endif +#ifndef PSEUDO_SPRINTF_DEFINED +#include "pseudo_sprintf.c" +#endif + # ifdef SSD1306OLED static void render_logo(struct CharacterMatrix *matrix) { # else @@ -80,8 +82,10 @@ static void render_logo(void) { 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(helix_logo, false); +# if defined(RGBLIGHT_ENABLE) || defined(DEBUG_MATRIX_SCAN_RATE) char buf[30]; char *bufp; +# endif # ifdef RGBLIGHT_ENABLE if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { bufp = sprint2d(buf, " LED ", rgblight_get_mode()); diff --git a/users/mtei/pseudo_sprintf.c b/users/mtei/pseudo_sprintf.c new file mode 100644 index 000000000000..446e3efc655a --- /dev/null +++ b/users/mtei/pseudo_sprintf.c @@ -0,0 +1,53 @@ +// Copyright 2022 Takeshi Ishii (@mtei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "pseudo_sprintf.h" + +static char *sprint_decimal(char *buf, int data) { + if (data > 9) { + buf = sprint_decimal(buf, data/10); + } + *buf++ = "0123456789"[data%10]; + *buf = '\0'; + return buf; +} + +static char *sprint_hex(char *buf, uint32_t data) { + if (data > 0xf) { + buf = sprint_hex(buf, data/0x10); + } + *buf++ = "0123456789abcdef"[data & 0xf]; + *buf = '\0'; + return buf; +} + +char *sprints(char *buf, char *src) { + while (*src) { + *buf++ = *src++; + } + *buf = '\0'; + return buf; +} + +char *sprintx(char *buf, char *leadstr, uint32_t data) { + buf = sprints(buf, leadstr); + buf = sprint_hex(buf, data); + return buf; +} + +char *sprintd(char *buf, char *leadstr, int data) { + buf = sprints(buf, leadstr); + buf = sprint_decimal(buf, data); + return buf; +} + +char *sprint2d(char *buf, char *leadstr, int data) { + buf = sprints(buf, leadstr); + if (data > 99) { + return sprint_decimal(buf, data); + } + if (data < 10) { + *buf++ = ' '; + } + return sprint_decimal(buf, data); +} diff --git a/users/mtei/pseudo_sprintf.h b/users/mtei/pseudo_sprintf.h new file mode 100644 index 000000000000..1b91ee5ea8d0 --- /dev/null +++ b/users/mtei/pseudo_sprintf.h @@ -0,0 +1,8 @@ +// Copyright 2022 Takeshi Ishii (@mtei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +char *sprints(char *buf, char *src); +char *sprintd(char *buf, char *leadstr, int data); +char *sprint2d(char *buf, char *leadstr, int data); From 8ce86d53481a603c64b13c6810c0bfa5c03c7c98 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Fri, 22 Apr 2022 14:17:28 +0700 Subject: [PATCH 19/71] Added new keyboard Gas75 (#16768) --- keyboards/ml/gas75/config.h | 107 +++++++++ keyboards/ml/gas75/gas75.c | 29 +++ keyboards/ml/gas75/gas75.h | 55 +++++ keyboards/ml/gas75/info.json | 99 +++++++++ keyboards/ml/gas75/keymaps/default/keymap.c | 201 +++++++++++++++++ keyboards/ml/gas75/keymaps/default/readme.md | 3 + keyboards/ml/gas75/keymaps/via/config.h | 23 ++ keyboards/ml/gas75/keymaps/via/keymap.c | 221 +++++++++++++++++++ keyboards/ml/gas75/keymaps/via/readme.md | 3 + keyboards/ml/gas75/keymaps/via/rules.mk | 2 + keyboards/ml/gas75/readme.md | 25 +++ keyboards/ml/gas75/rules.mk | 25 +++ 12 files changed, 793 insertions(+) create mode 100644 keyboards/ml/gas75/config.h create mode 100644 keyboards/ml/gas75/gas75.c create mode 100644 keyboards/ml/gas75/gas75.h create mode 100644 keyboards/ml/gas75/info.json create mode 100644 keyboards/ml/gas75/keymaps/default/keymap.c create mode 100644 keyboards/ml/gas75/keymaps/default/readme.md create mode 100644 keyboards/ml/gas75/keymaps/via/config.h create mode 100644 keyboards/ml/gas75/keymaps/via/keymap.c create mode 100644 keyboards/ml/gas75/keymaps/via/readme.md create mode 100644 keyboards/ml/gas75/keymaps/via/rules.mk create mode 100644 keyboards/ml/gas75/readme.md create mode 100644 keyboards/ml/gas75/rules.mk diff --git a/keyboards/ml/gas75/config.h b/keyboards/ml/gas75/config.h new file mode 100644 index 000000000000..4afc29952bae --- /dev/null +++ b/keyboards/ml/gas75/config.h @@ -0,0 +1,107 @@ +/* Copyright 2022 ML + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 0xC0B0 +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ML +#define PRODUCT Gas75 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D3, D5, D4, D7, D6, B4 } +#define MATRIX_COL_PINS { D1, D2, B5, B6, C6, C7, F7, F6, F5, F4, E6, B0, B1, B2, B3 } + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Forcing to use NKRO instead 6KRO */ +#define FORCE_NKRO + +/* Larger keys per scan */ +#define QMK_KEYS_PER_SCAN 12 + +/* Encoder pins */ +#define ENCODERS_PAD_A { F0 } +#define ENCODERS_PAD_B { F1 } + +#ifdef RGB_MATRIX_ENABLE + #define DRIVER_LED_TOTAL 3 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define RGB_MATRIX_KEYPRESSES + + /* RGB Matrix config */ + #define RGB_DI_PIN D0 + + /* RGB Matrix effect */ + #define ENABLE_RGB_MATRIX_ALPHAS_MODS + #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #define ENABLE_RGB_MATRIX_BREATHING + #define ENABLE_RGB_MATRIX_BAND_SAT + #define ENABLE_RGB_MATRIX_BAND_VAL + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #define ENABLE_RGB_MATRIX_CYCLE_ALL + #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN + #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL + #define ENABLE_RGB_MATRIX_DUAL_BEACON + #define ENABLE_RGB_MATRIX_RAINBOW_BEACON + #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define ENABLE_RGB_MATRIX_RAINDROPS + #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define ENABLE_RGB_MATRIX_HUE_BREATHING + #define ENABLE_RGB_MATRIX_HUE_PENDULUM + #define ENABLE_RGB_MATRIX_HUE_WAVE + #define ENABLE_RGB_MATRIX_PIXEL_RAIN + #define ENABLE_RGB_MATRIX_PIXEL_FLOW + #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + #define ENABLE_RGB_MATRIX_SPLASH + #define ENABLE_RGB_MATRIX_MULTISPLASH + #define ENABLE_RGB_MATRIX_SOLID_SPLASH + #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/ml/gas75/gas75.c b/keyboards/ml/gas75/gas75.c new file mode 100644 index 000000000000..61054273e4f2 --- /dev/null +++ b/keyboards/ml/gas75/gas75.c @@ -0,0 +1,29 @@ +/* Copyright 2022 ML + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "gas75.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 0, 1, 2 } +}, { + //Key matrix (0 -> 2) + {224, 0}, {0 , 0}, {6 , 38}, +}, { + //Key matrix (0 -> 2) + 4, 1, 8, +} }; +#endif diff --git a/keyboards/ml/gas75/gas75.h b/keyboards/ml/gas75/gas75.h new file mode 100644 index 000000000000..88291ac4a8fa --- /dev/null +++ b/keyboards/ml/gas75/gas75.h @@ -0,0 +1,55 @@ +/* Copyright 2022 ML + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 + +/* 54 ◯ 53 + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + * │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 │2D ││2E │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D ││3E │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─────┘│4D │ + * │50 │51 │52 │56 │5A │5B │ ┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴────┴────┘ │5C │5D │5E │ + * └───┴───┴───┘ + */ + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K54, K0E, K53, \ + 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, K4C, K4D, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \ +) { \ + { 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 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, XXX }, \ + { K50, K51, K52, K53, K54, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E } \ +} diff --git a/keyboards/ml/gas75/info.json b/keyboards/ml/gas75/info.json new file mode 100644 index 000000000000..4f9e0ad9d1e4 --- /dev/null +++ b/keyboards/ml/gas75/info.json @@ -0,0 +1,99 @@ +{ + "keyboard_name": "Gas75", + "url": "https://item.taobao.com/item.htm?ft=t&id=652142230132", + "maintainer": "ML", + "layouts": { + "LAYOUT": { + "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":"Pause", "x":14, "y":0}, + {"label":"Encoder CCW", "x":15.25, "y":0, "w":0.5, "h":0.5}, + {"label":"Encoder CW", "x":15.75, "y":0, "w":0.5, "h":0.5}, + {"label":"Delete", "x":15.25, "y":0.5, "h":0.5}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25}, + {"label":"Home", "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":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"PgUp", "x":12.5, "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":"PgDn", "x":12.5, "y":3.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":"\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, "w":1.25}, + {"label":"Fn", "x":11.25, "y":5.25, "w":1.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/ml/gas75/keymaps/default/keymap.c b/keyboards/ml/gas75/keymaps/default/keymap.c new file mode 100644 index 000000000000..65ece63bad8e --- /dev/null +++ b/keyboards/ml/gas75/keymaps/default/keymap.c @@ -0,0 +1,201 @@ +/* Copyright 2022 ML + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 + +#include + +// 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, + _FN, +}; + +enum user_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_NONE, +}; + +typedef union { + uint32_t raw; + struct { + uint8_t rgb_mode :8; + }; +} user_config_t; + +user_config_t user_config; + +// enum layer_keycodes { }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││Pse││Del│ + └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bckspc││Del│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ ││PgU│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter ││PgD│ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │┌───┐ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─────┘│ ↑ │ + │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ ┌───┼───┼───┐ + └────┴────┴────┴────────────────────────┴────┴────┘ │ ← │ ↓ │ → │ + └───┴───┴───┘ + ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ + └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┐ + │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ ~ │ ││ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | ││ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ ││ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │┌───┐ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─────┘│ │ + │ │ │ │ │ │ │ ┌───┼───┼───┐ + └────┴────┴────┴────────────────────────┴────┴────┘ │ │ │ │ + └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + │Rst││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││Tog│ + └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││Hui│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││Hud│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │┌───┐ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─────┘│Vai│ + │ │ │ │ │ │ │ ┌───┼───┼───┐ + └────┴────┴────┴────────────────────────┴────┴────┘ │Spd│Vad│Spi│ + └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_FN] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), +}; + +void keyboard_post_init_user(void) { + user_config.raw = eeconfig_read_user(); + switch (user_config.rgb_mode) { + case RGB_MODE_ALL: + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + break; + case RGB_MODE_NONE: + rgb_matrix_set_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_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_NONE; + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + user_config.rgb_mode = RGB_MODE_ALL; + } + break; + } + eeconfig_update_user(user_config.raw); + } + return false; + } + return true; +} + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (layer_state_is(_BASE)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (layer_state_is(_FN)) { + if (clockwise) { + rgb_matrix_step(); + } else { + rgb_matrix_step_reverse(); + } + } + } + return true; +} +#endif + +void rgb_matrix_indicators_user(void) { + rgb_matrix_set_color(2, 0, 0, 0); + + HSV hsv = rgb_matrix_config.hsv; + uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); + hsv.h = time; + RGB rgb = hsv_to_rgb(hsv); + + if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(2, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(2, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(2, 0, 0, 0); + } + } +} diff --git a/keyboards/ml/gas75/keymaps/default/readme.md b/keyboards/ml/gas75/keymaps/default/readme.md new file mode 100644 index 000000000000..30d8c00f4305 --- /dev/null +++ b/keyboards/ml/gas75/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default Layout + +Keymap is default 81 qwerty, 75% exploded layout with F13 & knob diff --git a/keyboards/ml/gas75/keymaps/via/config.h b/keyboards/ml/gas75/keymaps/via/config.h new file mode 100644 index 000000000000..18d8c180baeb --- /dev/null +++ b/keyboards/ml/gas75/keymaps/via/config.h @@ -0,0 +1,23 @@ +/* Copyright 2022 ML + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 + +#ifdef RGB_MATRIX_ENABLE + #define VIA_QMK_RGBLIGHT_ENABLE +#endif diff --git a/keyboards/ml/gas75/keymaps/via/keymap.c b/keyboards/ml/gas75/keymaps/via/keymap.c new file mode 100644 index 000000000000..46408fba6899 --- /dev/null +++ b/keyboards/ml/gas75/keymaps/via/keymap.c @@ -0,0 +1,221 @@ +/* Copyright 2022 ML + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 + +#include + +// 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, + _FN, +}; + +enum user_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_NONE, +}; + +typedef union { + uint32_t raw; + struct { + uint8_t rgb_mode :8; + }; +} user_config_t; + +user_config_t user_config; + +// enum layer_keycodes { }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││Pse││Del│ + └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bckspc││Del│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ ││PgU│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter ││PgD│ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │┌───┐ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─────┘│ ↑ │ + │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ ┌───┼───┼───┐ + └────┴────┴────┴────────────────────────┴────┴────┘ │ ← │ ↓ │ → │ + └───┴───┴───┘ + ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ + └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┐ + │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ ~ │ ││ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | ││ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ ││ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │┌───┐ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─────┘│ │ + │ │ │ │ │ │ │ ┌───┼───┼───┐ + └────┴────┴────┴────────────────────────┴────┴────┘ │ │ │ │ + └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_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_DEL, KC_VOLD, KC_MUTE, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + │Rst││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││Tog│ + └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││Hui│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││Hud│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │┌───┐ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─────┘│Vai│ + │ │ │ │ │ │ │ ┌───┼───┼───┐ + └────┴────┴────┴────────────────────────┴────┴────┘ │Spd│Vad│Spi│ + └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_FN] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), +}; + +void keyboard_post_init_user(void) { + user_config.raw = eeconfig_read_user(); + switch (user_config.rgb_mode) { + case RGB_MODE_ALL: + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + break; + case RGB_MODE_NONE: + rgb_matrix_set_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_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_NONE; + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + user_config.rgb_mode = RGB_MODE_ALL; + } + break; + } + eeconfig_update_user(user_config.raw); + } + return false; + } + return true; +} + +#ifdef ENCODER_ENABLE + +#define ENCODERS 1 +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = {{3, 5}}; +static keypos_t encoder_ccw[ENCODERS] = {{4, 5}}; + +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_user(void) { + encoder_action_unregister(); +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + encoder_action_register(index, clockwise); + return false; +} +#endif + +void rgb_matrix_indicators_user(void) { + rgb_matrix_set_color(2, 0, 0, 0); + + HSV hsv = rgb_matrix_config.hsv; + uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); + hsv.h = time; + RGB rgb = hsv_to_rgb(hsv); + + if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(2, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(2, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(2, 0, 0, 0); + } + } +} diff --git a/keyboards/ml/gas75/keymaps/via/readme.md b/keyboards/ml/gas75/keymaps/via/readme.md new file mode 100644 index 000000000000..a4f2599f49a3 --- /dev/null +++ b/keyboards/ml/gas75/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# Default Layout with VIA + +Keymap is default 81 qwerty, 75% exploded layout with F13 & knob diff --git a/keyboards/ml/gas75/keymaps/via/rules.mk b/keyboards/ml/gas75/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/ml/gas75/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/ml/gas75/readme.md b/keyboards/ml/gas75/readme.md new file mode 100644 index 000000000000..fcf535038465 --- /dev/null +++ b/keyboards/ml/gas75/readme.md @@ -0,0 +1,25 @@ +# Gas75 + +A 75% exploded keyboard made by ML, which controlled by an Atmega32u4 chipset. + +* Keyboard Maintainer: ML +* Hardware Supported: Atmega32u4 +* Hardware Availability: https://item.taobao.com/item.htm?ft=t&id=652142230132 + +Make example for this keyboard (after setting up your build environment): + + make ml/gas75:default + +Flashing example for this keyboard: + + make ml/gas75: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 (Esc key) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to RESET if it is available diff --git a/keyboards/ml/gas75/rules.mk b/keyboards/ml/gas75/rules.mk new file mode 100644 index 000000000000..a0fe1627d43c --- /dev/null +++ b/keyboards/ml/gas75/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 # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +# RGB Matrix enabled +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 + +# Encoder enabled +ENCODER_ENABLE = yes From 5b67266993cd97e9bfb15302b71a1b8f67c58723 Mon Sep 17 00:00:00 2001 From: Ladduro Date: Fri, 22 Apr 2022 10:21:15 +0300 Subject: [PATCH 20/71] Keychron Q2 add Caps Lock indicator and layer RGB (#16641) --- .../q2/rev_0110/keymaps/ladduro/config.h | 25 +++++ .../q2/rev_0110/keymaps/ladduro/keymap.c | 96 +++++++++++++++++++ .../q2/rev_0110/keymaps/ladduro/keymap_user.h | 27 ++++++ .../q2/rev_0110/keymaps/ladduro/readme.md | 29 ++++++ .../keymaps/ladduro/rgb_matrix_user.c | 72 ++++++++++++++ .../keymaps/ladduro/rgb_matrix_user.h | 25 +++++ .../q2/rev_0110/keymaps/ladduro/rules.mk | 5 + 7 files changed, 279 insertions(+) create mode 100644 keyboards/keychron/q2/rev_0110/keymaps/ladduro/config.h create mode 100644 keyboards/keychron/q2/rev_0110/keymaps/ladduro/keymap.c create mode 100644 keyboards/keychron/q2/rev_0110/keymaps/ladduro/keymap_user.h create mode 100644 keyboards/keychron/q2/rev_0110/keymaps/ladduro/readme.md create mode 100644 keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.c create mode 100644 keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.h create mode 100644 keyboards/keychron/q2/rev_0110/keymaps/ladduro/rules.mk diff --git a/keyboards/keychron/q2/rev_0110/keymaps/ladduro/config.h b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/config.h new file mode 100644 index 000000000000..a8ad37d0036e --- /dev/null +++ b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/config.h @@ -0,0 +1,25 @@ +/* Copyright 2022 @ Ionut Micu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#ifdef RGB_MATRIX_ENABLE +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# define CAPS_LOCK_INDICATOR_COLOR RGB_RED +# define CAPS_LOCK_INDICATOR_LIGHT_ALPHAS +# define FN_LAYER_TRANSPARENT_KEYS_OFF +#endif \ No newline at end of file diff --git a/keyboards/keychron/q2/rev_0110/keymaps/ladduro/keymap.c b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/keymap.c new file mode 100644 index 000000000000..cc83640b39b8 --- /dev/null +++ b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/keymap.c @@ -0,0 +1,96 @@ +/* Copyright 2022 @ Ionut Micu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_user.h" +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix_user.h" +#endif + +enum custom_keycodes { + KC_MISSION_CONTROL = SAFE_RANGE, + KC_LAUNCHPAD +}; + +#define KC_WAVE S(KC_GRV) +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) +#define KC_MCTL KC_MISSION_CONTROL +#define KC_LPAD KC_LAUNCHPAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_67( + 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_TAB, KC_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_BASE] = LAYOUT_ansi_67( + 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_TAB, KC_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_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(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN1] = LAYOUT_ansi_67( + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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), + + [_FN2] = LAYOUT_ansi_67( + KC_GRV, 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, + 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), + + [_FN3] = LAYOUT_ansi_67( + KC_WAVE, 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, + 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) +}; + +void matrix_init_user(void) { +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_init_user(); +#endif +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_MISSION_CONTROL: + if (record->event.pressed) { + host_consumer_send(0x29F); + } else { + host_consumer_send(0); + } + return false; // Skip all further processing of this key + case KC_LAUNCHPAD: + if (record->event.pressed) { + host_consumer_send(0x2A0); + } else { + host_consumer_send(0); + } + return false; // Skip all further processing of this key + default: + return true; // Process all other keycodes normally + } +} diff --git a/keyboards/keychron/q2/rev_0110/keymaps/ladduro/keymap_user.h b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/keymap_user.h new file mode 100644 index 000000000000..ded78ae1b8eb --- /dev/null +++ b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/keymap_user.h @@ -0,0 +1,27 @@ +/* Copyright 2022 @ Ionut Micu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// clang-format off + +enum layers{ + MAC_BASE, + WIN_BASE, + _FN1, + _FN2, + _FN3, +}; \ No newline at end of file diff --git a/keyboards/keychron/q2/rev_0110/keymaps/ladduro/readme.md b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/readme.md new file mode 100644 index 000000000000..42ca81a1a1ef --- /dev/null +++ b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/readme.md @@ -0,0 +1,29 @@ +# Ladduro keymap for Keychron Q2 (ANSI rev_0110) v1.01 + +This keymap ports Q1 logic (by gtg465x) for RGB caps lock indicator and layer RBG assigned key. + +## Features: +- On macOS, F3 opens Mission Control and F4 opens Launchpad without needing to configure shortcuts in System Preferences +- RGB lighting turns off when the computer sleeps +- Caps Lock and alpha keys turn red to indicate when Caps Lock is on +- When the Fn layer is active, RGB lighting turns off for keys that are not assigned + +Make example for this keyboard (after setting up your build environment): + + make keychron/q2/rev_0110:ladduro + +Flashing example for this keyboard: + + make keychron/q2/rev_0110:ladduro: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). + +## Changelog + +### 14/03/2021 - 1. + +- Initial release + +### 02/04/2021 - 1.01 + +- Remove via enable from rules.mk as it breaks the layout for some reason diff --git a/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.c b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.c new file mode 100644 index 000000000000..19ddd54aa807 --- /dev/null +++ b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.c @@ -0,0 +1,72 @@ +/* Copyright 2022 @ Ionut Micu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "rgb_matrix_user.h" +#include "keymap_user.h" + +keypos_t led_index_key_position[DRIVER_LED_TOTAL]; + +void rgb_matrix_init_user(void) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + uint8_t led_index = g_led_config.matrix_co[row][col]; + if (led_index != NO_LED) { + led_index_key_position[led_index] = (keypos_t){.row = row, .col = col}; + } + } + } +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + uint8_t current_layer = get_highest_layer(layer_state); + switch (current_layer) { + case MAC_BASE: + case WIN_BASE: +#ifdef CAPS_LOCK_INDICATOR_COLOR + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_COLOR); + } +#endif + break; + case _FN1: + case _FN2: + case _FN3: +#ifdef FN_LAYER_TRANSPARENT_KEYS_OFF + rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_transparent, RGB_OFF); +#endif + break; + } +} + +void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue) { + for (uint8_t i = led_min; i < led_max; i++) { + uint16_t keycode = keymap_key_to_keycode(layer, led_index_key_position[i]); + if ((*is_keycode)(keycode)) { + rgb_matrix_set_color(i, red, green, blue); + } + } +} + +bool is_caps_lock_indicator(uint16_t keycode) { +#ifdef CAPS_LOCK_INDICATOR_LIGHT_ALPHAS + return (KC_A <= keycode && keycode <= KC_Z) || keycode == KC_CAPS; +#else + return keycode == KC_CAPS; +#endif +} + +bool is_transparent(uint16_t keycode) { return keycode == KC_TRNS; } \ No newline at end of file diff --git a/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.h b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.h new file mode 100644 index 000000000000..4d33f483aeee --- /dev/null +++ b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.h @@ -0,0 +1,25 @@ + +/* Copyright 2022 @ Ionut Micu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 rgb_matrix_init_user(void); + +void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue); + +bool is_caps_lock_indicator(uint16_t keycode); +bool is_transparent(uint16_t keycode); \ No newline at end of file diff --git a/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rules.mk b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rules.mk new file mode 100644 index 000000000000..c0ee640cd242 --- /dev/null +++ b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rules.mk @@ -0,0 +1,5 @@ +MOUSEKEY_ENABLE = no + +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + SRC += rgb_matrix_user.c +endif From 1c5c502b4b0ea35fb743b7e58340e914aaea9bbf Mon Sep 17 00:00:00 2001 From: yiancar Date: Fri, 22 Apr 2022 08:32:01 +0100 Subject: [PATCH 21/71] Loki65 (#16844) Co-authored-by: Drashna Jaelre Co-authored-by: yiancar --- keyboards/loki65/config.h | 104 +++++++++++++++++++++ keyboards/loki65/halconf.h | 21 +++++ keyboards/loki65/info.json | 10 ++ keyboards/loki65/keymaps/default/keymap.c | 32 +++++++ keyboards/loki65/keymaps/default/readme.md | 5 + keyboards/loki65/keymaps/via/keymap.c | 46 +++++++++ keyboards/loki65/keymaps/via/readme.md | 5 + keyboards/loki65/keymaps/via/rules.mk | 1 + keyboards/loki65/loki65.c | 21 +++++ keyboards/loki65/loki65.h | 34 +++++++ keyboards/loki65/mcuconf.h | 22 +++++ keyboards/loki65/readme.md | 32 +++++++ keyboards/loki65/rules.mk | 27 ++++++ 13 files changed, 360 insertions(+) create mode 100644 keyboards/loki65/config.h create mode 100644 keyboards/loki65/halconf.h create mode 100644 keyboards/loki65/info.json create mode 100644 keyboards/loki65/keymaps/default/keymap.c create mode 100644 keyboards/loki65/keymaps/default/readme.md create mode 100644 keyboards/loki65/keymaps/via/keymap.c create mode 100644 keyboards/loki65/keymaps/via/readme.md create mode 100644 keyboards/loki65/keymaps/via/rules.mk create mode 100644 keyboards/loki65/loki65.c create mode 100644 keyboards/loki65/loki65.h create mode 100644 keyboards/loki65/mcuconf.h create mode 100644 keyboards/loki65/readme.md create mode 100644 keyboards/loki65/rules.mk diff --git a/keyboards/loki65/config.h b/keyboards/loki65/config.h new file mode 100644 index 000000000000..5f017d8cbf95 --- /dev/null +++ b/keyboards/loki65/config.h @@ -0,0 +1,104 @@ +/* +Copyright 2022 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 0x4C36 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Yiancar-Designs +#define PRODUCT Loki65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { A2, B9, B8, B5, B4 } +#define MATRIX_COL_PINS { A1, B1, B0, A7, A6, A5, A4, A3, B2, B10, B11, B12, B13, B14, B15 } + +/* 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 + +/* Indicator LEDs */ +#define LED_CAPS_LOCK_PIN B6 +#define LED_PIN_ON_STATE 0 + +/* RGB Light */ +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 2 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 +#define WS2812_DMA_CHANNEL 5 + +#define RGB_DI_PIN A9 +#define RGBLED_NUM 37 +#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_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 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/loki65/halconf.h b/keyboards/loki65/halconf.h new file mode 100644 index 000000000000..4abd83bd3bae --- /dev/null +++ b/keyboards/loki65/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2022 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 HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/loki65/info.json b/keyboards/loki65/info.json new file mode 100644 index 000000000000..1b4fc1b91758 --- /dev/null +++ b/keyboards/loki65/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "Loki65", + "url": "https://yiancar-designs.com", + "maintainer": "Yiancar-Designs", + "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":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}] + } + } +} diff --git a/keyboards/loki65/keymaps/default/keymap.c b/keyboards/loki65/keymaps/default/keymap.c new file mode 100644 index 000000000000..3c3be3b24220 --- /dev/null +++ b/keyboards/loki65/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2022 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_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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_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_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/loki65/keymaps/default/readme.md b/keyboards/loki65/keymaps/default/readme.md new file mode 100644 index 000000000000..1ff110941fb4 --- /dev/null +++ b/keyboards/loki65/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# The default keymap for Loki 65. VIA support disabled. + +![Layer 0](https://i.imgur.com/DRphL9D.png) + +![Layer 1](https://i.imgur.com/4Sd4SP9.png) diff --git a/keyboards/loki65/keymaps/via/keymap.c b/keyboards/loki65/keymaps/via/keymap.c new file mode 100644 index 000000000000..2980ec515a0c --- /dev/null +++ b/keyboards/loki65/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2022 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_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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_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_VOLD, KC_MUTE, 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), + +[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) +}; diff --git a/keyboards/loki65/keymaps/via/readme.md b/keyboards/loki65/keymaps/via/readme.md new file mode 100644 index 000000000000..7f54a19cb36a --- /dev/null +++ b/keyboards/loki65/keymaps/via/readme.md @@ -0,0 +1,5 @@ +# The default keymap for Loki 65. VIA support enabled. + +![Layer 0](https://i.imgur.com/DRphL9D.png) + +![Layer 1](https://i.imgur.com/4Sd4SP9.png) diff --git a/keyboards/loki65/keymaps/via/rules.mk b/keyboards/loki65/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/loki65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/loki65/loki65.c b/keyboards/loki65/loki65.c new file mode 100644 index 000000000000..1a498e6aa04e --- /dev/null +++ b/keyboards/loki65/loki65.c @@ -0,0 +1,21 @@ +/* Copyright 2022 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 "loki65.h" + +void led_init_ports(void) { + // Set our LED pins as open drain outputs + palSetLineMode(LED_CAPS_LOCK_PIN, PAL_MODE_OUTPUT_OPENDRAIN); +} diff --git a/keyboards/loki65/loki65.h b/keyboards/loki65/loki65.h new file mode 100644 index 000000000000..ae8eacbea79a --- /dev/null +++ b/keyboards/loki65/loki65.h @@ -0,0 +1,34 @@ +/* Copyright 2022 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, \ + 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, 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, 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, K3C, K3D, K3E }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/loki65/mcuconf.h b/keyboards/loki65/mcuconf.h new file mode 100644 index 000000000000..0b3baa9b4b27 --- /dev/null +++ b/keyboards/loki65/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2022 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_next + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/loki65/readme.md b/keyboards/loki65/readme.md new file mode 100644 index 000000000000..ff4c7f8ae639 --- /dev/null +++ b/keyboards/loki65/readme.md @@ -0,0 +1,32 @@ +# Loki 65 + +This is a 65% layout PCB. 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://geekhack.org/index.php?topic=111422.0 + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make loki65: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 loki65::flash`) diff --git a/keyboards/loki65/rules.mk b/keyboards/loki65/rules.mk new file mode 100644 index 000000000000..a53d7daeb0f2 --- /dev/null +++ b/keyboards/loki65/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# 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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +WS2812_DRIVER = pwm # Driver for RGB uderglow +AUDIO_ENABLE = no # Audio output From 121f8bfd762f2d0631596748e4e32a9b08384782 Mon Sep 17 00:00:00 2001 From: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Fri, 22 Apr 2022 15:36:08 +0800 Subject: [PATCH 22/71] [Keyboard]Remove RGB light implementation of ID67, revert the file structure changes by #15558 (#15854) --- keyboards/idobao/id67/{rgb => }/config.h | 0 keyboards/idobao/id67/default_rgb/config.h | 67 ----- .../idobao/id67/default_rgb/default_rgb.h | 33 --- keyboards/idobao/id67/default_rgb/info.json | 85 ------ keyboards/idobao/id67/default_rgb/readme.md | 19 -- keyboards/idobao/id67/default_rgb/rules.mk | 22 -- keyboards/idobao/id67/id67.c | 61 ++++ keyboards/idobao/id67/{rgb/rgb.h => id67.h} | 12 +- keyboards/idobao/id67/{rgb => }/info.json | 0 .../idobao/id67/keymaps/default/keymap.c | 3 +- .../idobao/id67/keymaps/default_nug/config.h | 26 ++ .../default => keymaps/default_nug}/keymap.c | 5 + .../{rgb => }/keymaps/thewerther/config.h | 0 .../{rgb => }/keymaps/thewerther/keymap.c | 0 .../{rgb => }/keymaps/thewerther/rules.mk | 0 .../default_rgb.c => keymaps/via/config.h} | 7 +- .../idobao/id67/keymaps/via_nug/config.h | 27 ++ .../idobao/id67/keymaps/via_nug/keymap.c | 53 ++++ .../idobao/id67/keymaps/via_nug/rules.mk | 2 + .../id67/keymaps/vinorodrigues/config.h | 85 ++++++ .../id67/keymaps/vinorodrigues/keymap.c | 261 ++++++++++++++++++ .../id67/keymaps/vinorodrigues/rules.mk | 5 + keyboards/idobao/id67/readme.md | 37 ++- keyboards/idobao/id67/rgb/readme.md | 36 --- keyboards/idobao/id67/rgb/rgb.c | 49 ---- keyboards/idobao/id67/{rgb => }/rules.mk | 2 +- 26 files changed, 565 insertions(+), 332 deletions(-) rename keyboards/idobao/id67/{rgb => }/config.h (100%) delete mode 100644 keyboards/idobao/id67/default_rgb/config.h delete mode 100644 keyboards/idobao/id67/default_rgb/default_rgb.h delete mode 100644 keyboards/idobao/id67/default_rgb/info.json delete mode 100644 keyboards/idobao/id67/default_rgb/readme.md delete mode 100644 keyboards/idobao/id67/default_rgb/rules.mk create mode 100644 keyboards/idobao/id67/id67.c rename keyboards/idobao/id67/{rgb/rgb.h => id67.h} (68%) rename keyboards/idobao/id67/{rgb => }/info.json (100%) create mode 100644 keyboards/idobao/id67/keymaps/default_nug/config.h rename keyboards/idobao/id67/{rgb/keymaps/default => keymaps/default_nug}/keymap.c (95%) rename keyboards/idobao/id67/{rgb => }/keymaps/thewerther/config.h (100%) rename keyboards/idobao/id67/{rgb => }/keymaps/thewerther/keymap.c (100%) rename keyboards/idobao/id67/{rgb => }/keymaps/thewerther/rules.mk (100%) rename keyboards/idobao/id67/{default_rgb/default_rgb.c => keymaps/via/config.h} (85%) create mode 100644 keyboards/idobao/id67/keymaps/via_nug/config.h create mode 100644 keyboards/idobao/id67/keymaps/via_nug/keymap.c create mode 100644 keyboards/idobao/id67/keymaps/via_nug/rules.mk create mode 100644 keyboards/idobao/id67/keymaps/vinorodrigues/config.h create mode 100644 keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c create mode 100644 keyboards/idobao/id67/keymaps/vinorodrigues/rules.mk delete mode 100644 keyboards/idobao/id67/rgb/readme.md delete mode 100644 keyboards/idobao/id67/rgb/rgb.c rename keyboards/idobao/id67/{rgb => }/rules.mk (97%) diff --git a/keyboards/idobao/id67/rgb/config.h b/keyboards/idobao/id67/config.h similarity index 100% rename from keyboards/idobao/id67/rgb/config.h rename to keyboards/idobao/id67/config.h diff --git a/keyboards/idobao/id67/default_rgb/config.h b/keyboards/idobao/id67/default_rgb/config.h deleted file mode 100644 index fbf99cf673b4..000000000000 --- a/keyboards/idobao/id67/default_rgb/config.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright 2021 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 . - */ - -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 /* "id" */ -#define PRODUCT_ID 0x0067 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT ID67 - -/* 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, F7 } -#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, B7, D5, D1, D2, D3, D4, D0, D6, D7, B4 } - -#define DIODE_DIRECTION COL2ROW - -#define RGB_DI_PIN F0 -#ifdef RGB_DI_PIN - #define RGBLED_NUM 77 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LIMIT_VAL 150 /* 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 diff --git a/keyboards/idobao/id67/default_rgb/default_rgb.h b/keyboards/idobao/id67/default_rgb/default_rgb.h deleted file mode 100644 index 7c0a6d5aa8df..000000000000 --- a/keyboards/idobao/id67/default_rgb/default_rgb.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2021 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 . - */ - -#pragma once - -#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, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K43, 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, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ - { 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 }, \ -} diff --git a/keyboards/idobao/id67/default_rgb/info.json b/keyboards/idobao/id67/default_rgb/info.json deleted file mode 100644 index f3114121c18a..000000000000 --- a/keyboards/idobao/id67/default_rgb/info.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "keyboard_name": "ID67", - "url": "", - "maintainer": "qmk", - "layout_aliases": { - "LAYOUT": "LAYOUT_65_ansi_blocker" - }, - "layouts": { - "LAYOUT_65_ansi_blocker": { - "layout": [ - {"label":"K00 (B0,C7)", "x":0, "y":0}, - {"label":"K01 (B0,F6)", "x":1, "y":0}, - {"label":"K02 (B0,F5)", "x":2, "y":0}, - {"label":"K03 (B0,F4)", "x":3, "y":0}, - {"label":"K04 (B0,F1)", "x":4, "y":0}, - {"label":"K05 (B0,B7)", "x":5, "y":0}, - {"label":"K06 (B0,D5)", "x":6, "y":0}, - {"label":"K07 (B0,D1)", "x":7, "y":0}, - {"label":"K08 (B0,D2)", "x":8, "y":0}, - {"label":"K09 (B0,D3)", "x":9, "y":0}, - {"label":"K0A (B0,D4)", "x":10, "y":0}, - {"label":"K0B (B0,D0)", "x":11, "y":0}, - {"label":"K0C (B0,D6)", "x":12, "y":0}, - {"label":"K0D (B0,D7)", "x":13, "y":0, "w":2}, - {"label":"K0E (B0,B4)", "x":15, "y":0}, - - {"label":"K10 (B1,C7)", "x":0, "y":1, "w":1.5}, - {"label":"K11 (B1,F6)", "x":1.5, "y":1}, - {"label":"K12 (B1,F5)", "x":2.5, "y":1}, - {"label":"K13 (B1,F4)", "x":3.5, "y":1}, - {"label":"K14 (B1,F1)", "x":4.5, "y":1}, - {"label":"K15 (B1,B7)", "x":5.5, "y":1}, - {"label":"K16 (B1,D5)", "x":6.5, "y":1}, - {"label":"K17 (B1,D1)", "x":7.5, "y":1}, - {"label":"K18 (B1,D2)", "x":8.5, "y":1}, - {"label":"K19 (B1,D3)", "x":9.5, "y":1}, - {"label":"K1A (B1,D4)", "x":10.5, "y":1}, - {"label":"K1B (B1,D0)", "x":11.5, "y":1}, - {"label":"K1C (B1,D6)", "x":12.5, "y":1}, - {"label":"K1D (B1,D7)", "x":13.5, "y":1, "w":1.5}, - {"label":"K1E (B1,B4)", "x":15, "y":1}, - - {"label":"K20 (B2,C7)", "x":0, "y":2, "w":1.75}, - {"label":"K21 (B2,F6)", "x":1.75, "y":2}, - {"label":"K22 (B2,F5)", "x":2.75, "y":2}, - {"label":"K23 (B2,F4)", "x":3.75, "y":2}, - {"label":"K24 (B2,F1)", "x":4.75, "y":2}, - {"label":"K25 (B2,B7)", "x":5.75, "y":2}, - {"label":"K26 (B2,D5)", "x":6.75, "y":2}, - {"label":"K27 (B2,D1)", "x":7.75, "y":2}, - {"label":"K28 (B2,D2)", "x":8.75, "y":2}, - {"label":"K29 (B2,D3)", "x":9.75, "y":2}, - {"label":"K2A (B2,D4)", "x":10.75, "y":2}, - {"label":"K2B (B2,D0)", "x":11.75, "y":2}, - {"label":"K2D (B2,D7)", "x":12.75, "y":2, "w":2.25}, - {"label":"K2E (B2,B4)", "x":15, "y":2}, - - {"label":"K30 (B3,C7)", "x":0, "y":3, "w":2.25}, - {"label":"K32 (B3,F5)", "x":2.25, "y":3}, - {"label":"K33 (B3,F4)", "x":3.25, "y":3}, - {"label":"K34 (B3,F1)", "x":4.25, "y":3}, - {"label":"K35 (B3,B7)", "x":5.25, "y":3}, - {"label":"K36 (B3,D5)", "x":6.25, "y":3}, - {"label":"K37 (B3,D1)", "x":7.25, "y":3}, - {"label":"K38 (B3,D2)", "x":8.25, "y":3}, - {"label":"K39 (B3,D3)", "x":9.25, "y":3}, - {"label":"K3A (B3,D4)", "x":10.25, "y":3}, - {"label":"K3B (B3,D0)", "x":11.25, "y":3}, - {"label":"K3C (B3,D6)", "x":12.25, "y":3, "w":1.75}, - {"label":"K3D (B3,D7)", "x":14, "y":3}, - {"label":"K3E (B3,B4)", "x":15, "y":3}, - - {"label":"K40 (F7,C7)", "x":0, "y":4, "w":1.25}, - {"label":"K41 (F7,F6)", "x":1.25, "y":4, "w":1.25}, - {"label":"K43 (F7,F4)", "x":2.5, "y":4, "w":1.25}, - {"label":"K46 (F7,D5)", "x":3.75, "y":4, "w":6.25}, - {"label":"K4A (F7,D4)", "x":10, "y":4, "w":1.25}, - {"label":"K4B (F7,D0)", "x":11.25, "y":4, "w":1.25}, - {"label":"K4C (F7,D6)", "x":13, "y":4}, - {"label":"K4D (F7,D7)", "x":14, "y":4}, - {"label":"K4E (F7,B4)", "x":15, "y":4} - ] - } - } -} diff --git a/keyboards/idobao/id67/default_rgb/readme.md b/keyboards/idobao/id67/default_rgb/readme.md deleted file mode 100644 index 9559384f1e8c..000000000000 --- a/keyboards/idobao/id67/default_rgb/readme.md +++ /dev/null @@ -1,19 +0,0 @@ -# IDOBAO ID67 - -A 65% hotswap keyboard from IDOBAO. - -## ANSI support: - -* Keyboard Maintainer: Tybera -* Hardware Supported: IDOBAO ID67 -* Hardware Availability: [IDOBAO](https://www.idobao.net/products/idobao-id67-65-hot-swappable-mechanical-keyboard-kit-1) - -Make example for this keyboard (after setting up your build environment): - - make id67/default_rgb:default - -Flashing example for this keyboard: - - make id67/default_rgb: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/idobao/id67/default_rgb/rules.mk b/keyboards/idobao/id67/default_rgb/rules.mk deleted file mode 100644 index 574f0067fbc4..000000000000 --- a/keyboards/idobao/id67/default_rgb/rules.mk +++ /dev/null @@ -1,22 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -KEY_LOCK_ENABLE = yes # Enable KC_LOCK support - -LAYOUTS = 65_ansi_blocker diff --git a/keyboards/idobao/id67/id67.c b/keyboards/idobao/id67/id67.c new file mode 100644 index 000000000000..5f4ff39ae2c8 --- /dev/null +++ b/keyboards/idobao/id67/id67.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Tybera + * Copyright 2021 thewerther + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "id67.h" + +#define __ NO_LED + +// Indices are reveresed on the physical board, top left is bottom right. +led_config_t g_led_config = { { + // Key Matrix to LED Index + {66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52}, + {51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37}, + {36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, __, 24, 23}, + {22, __, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9}, + { 8, 7, __, 6, __, __, 5, __, __, __, 4, 3, 2, 1, 0}, +}, { + // LED Index to Physical Position + // based on: https://gist.github.com/vinorodrigues/07fd735683856b2a06c7c52b9b3878cb + {224, 64}, {209, 64}, {194, 64}, {170, 64}, {151, 64}, {95, 64}, {39, 64}, {21, 64}, {2, 64}, + {224, 48}, {209, 48}, {189, 48}, {168, 48}, {153, 48}, {138, 48}, {123, 48}, {108, 48}, {93, 48}, {78, 48}, {63, 48}, {49, 48}, {34, 48}, {9, 48}, + {224, 32}, {200, 32}, {175, 32}, {161, 32}, {146, 32}, {131, 32}, {116, 32}, {101, 32}, {86, 32}, {71, 32}, {56, 32}, {41, 32}, {26, 32}, {6, 32}, + {224, 16}, {205, 16}, {187, 16}, {172, 16}, {157, 16}, {142, 16}, {127, 16}, {112, 16}, {97, 16}, {82, 16}, {67, 16}, {52, 16}, {37, 16}, {22, 16}, {4, 16}, + {224, 0}, {202, 0}, {179, 0}, {164, 0}, {149, 0}, {134, 0}, {119, 0}, {105, 0}, {90, 0}, {75, 0}, {60, 0}, {45, 0}, {30, 0}, {15, 0}, {0, 0} + #ifndef ID67_DISABLE_UNDERGLOW + // underglow LEDs + , {0, 0}, {56, 0}, {112, 0}, {168, 0}, {224, 0}, + {224, 64}, {168, 64}, {112, 64}, {56, 64}, {0, 64} + #endif +}, { + // LED Index to Flag + 4, 4, 4, 1, 1, 4, 1, 1, 1, // first row + 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // second row + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, // third row + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // fourth row + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 // fifth row + // underglow leds + #ifndef ID67_DISABLE_UNDERGLOW + , 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + #endif +} }; + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, 0xFF, 0xFF, 0xFF); + } +} diff --git a/keyboards/idobao/id67/rgb/rgb.h b/keyboards/idobao/id67/id67.h similarity index 68% rename from keyboards/idobao/id67/rgb/rgb.h rename to keyboards/idobao/id67/id67.h index cca757bfc7df..a8eead92a035 100644 --- a/keyboards/idobao/id67/rgb/rgb.h +++ b/keyboards/idobao/id67/id67.h @@ -19,6 +19,8 @@ #include "quantum.h" +#define ___ KC_NO + #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, \ @@ -26,9 +28,9 @@ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ K40, K41, K43, 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, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ - { 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, 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, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, ___, K43, ___, ___, K46, ___, ___, ___, K4A, K4B, K4C, K4D, K4E }, \ } diff --git a/keyboards/idobao/id67/rgb/info.json b/keyboards/idobao/id67/info.json similarity index 100% rename from keyboards/idobao/id67/rgb/info.json rename to keyboards/idobao/id67/info.json diff --git a/keyboards/idobao/id67/keymaps/default/keymap.c b/keyboards/idobao/id67/keymaps/default/keymap.c index 3bb880891f5e..450550e12a1f 100644 --- a/keyboards/idobao/id67/keymaps/default/keymap.c +++ b/keyboards/idobao/id67/keymaps/default/keymap.c @@ -1,4 +1,5 @@ /* Copyright 2021 Tybera + * Copyright 2022 thewerther * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, 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_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, - _______, RESET, BL_DEC, BL_TOGG, BL_INC, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, + _______, RESET, RGB_SPI, RGB_SPD, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/idobao/id67/keymaps/default_nug/config.h b/keyboards/idobao/id67/keymaps/default_nug/config.h new file mode 100644 index 000000000000..d92c93ce1e99 --- /dev/null +++ b/keyboards/idobao/id67/keymaps/default_nug/config.h @@ -0,0 +1,26 @@ +/* Copyright 2021 thewerther + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * NB! THIS VARIANT DISABLES THE UNDERGLOW LEDs + * FOR BOARDS WITH A SOLID (NON-ACRILIC) BOTTOM + */ + +#pragma once + +#if defined(RGB_MATRIX_ENABLE) + #define ID67_DISABLE_UNDERGLOW +#endif diff --git a/keyboards/idobao/id67/rgb/keymaps/default/keymap.c b/keyboards/idobao/id67/keymaps/default_nug/keymap.c similarity index 95% rename from keyboards/idobao/id67/rgb/keymaps/default/keymap.c rename to keyboards/idobao/id67/keymaps/default_nug/keymap.c index 450550e12a1f..30e71734a39c 100644 --- a/keyboards/idobao/id67/rgb/keymaps/default/keymap.c +++ b/keyboards/idobao/id67/keymaps/default_nug/keymap.c @@ -15,6 +15,11 @@ * along with this program. If not, see . */ +/** + * NB! THIS VARIANT DISABLES THE UNDERGLOW LEDs + * FOR BOARDS WITH A SOLID (NON-ACRILIC) BOTTOM + */ + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/idobao/id67/rgb/keymaps/thewerther/config.h b/keyboards/idobao/id67/keymaps/thewerther/config.h similarity index 100% rename from keyboards/idobao/id67/rgb/keymaps/thewerther/config.h rename to keyboards/idobao/id67/keymaps/thewerther/config.h diff --git a/keyboards/idobao/id67/rgb/keymaps/thewerther/keymap.c b/keyboards/idobao/id67/keymaps/thewerther/keymap.c similarity index 100% rename from keyboards/idobao/id67/rgb/keymaps/thewerther/keymap.c rename to keyboards/idobao/id67/keymaps/thewerther/keymap.c diff --git a/keyboards/idobao/id67/rgb/keymaps/thewerther/rules.mk b/keyboards/idobao/id67/keymaps/thewerther/rules.mk similarity index 100% rename from keyboards/idobao/id67/rgb/keymaps/thewerther/rules.mk rename to keyboards/idobao/id67/keymaps/thewerther/rules.mk diff --git a/keyboards/idobao/id67/default_rgb/default_rgb.c b/keyboards/idobao/id67/keymaps/via/config.h similarity index 85% rename from keyboards/idobao/id67/default_rgb/default_rgb.c rename to keyboards/idobao/id67/keymaps/via/config.h index 972b0b8b065e..336ad1e58510 100644 --- a/keyboards/idobao/id67/default_rgb/default_rgb.c +++ b/keyboards/idobao/id67/keymaps/via/config.h @@ -1,4 +1,5 @@ /* Copyright 2021 Tybera + * Copyright 2022 thewerther * * This 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,4 +15,8 @@ * along with this program. If not, see . */ -#include "default_rgb.h" +#pragma once + +#if defined(RGB_MATRIX_ENABLE) + #define VIA_QMK_RGBLIGHT_ENABLE +#endif diff --git a/keyboards/idobao/id67/keymaps/via_nug/config.h b/keyboards/idobao/id67/keymaps/via_nug/config.h new file mode 100644 index 000000000000..a2fa129b2e53 --- /dev/null +++ b/keyboards/idobao/id67/keymaps/via_nug/config.h @@ -0,0 +1,27 @@ +/* Copyright 2021 thewerther + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * NB! THIS VARIANT DISABLES THE UNDERGLOW LEDs + * FOR BOARDS WITH A SOLID (NON-ACRILIC) BOTTOM + */ + +#pragma once + +#if defined(RGB_MATRIX_ENABLE) + #define VIA_QMK_RGBLIGHT_ENABLE + #define ID67_DISABLE_UNDERGLOW +#endif diff --git a/keyboards/idobao/id67/keymaps/via_nug/keymap.c b/keyboards/idobao/id67/keymaps/via_nug/keymap.c new file mode 100644 index 000000000000..b008f9d125ac --- /dev/null +++ b/keyboards/idobao/id67/keymaps/via_nug/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 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 . + */ + +/** + * NB! THIS VARIANT DISABLES THE UNDERGLOW LEDs + * FOR BOARDS WITH A SOLID (NON-ACRILIC) BOTTOM + */ + +#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_TILD, + KC_TAB, KC_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, MO(1), 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, _______, _______, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, + _______, RESET, BL_DEC, BL_TOGG, BL_INC, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/idobao/id67/keymaps/via_nug/rules.mk b/keyboards/idobao/id67/keymaps/via_nug/rules.mk new file mode 100644 index 000000000000..ca9fed0e6b53 --- /dev/null +++ b/keyboards/idobao/id67/keymaps/via_nug/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id67/keymaps/vinorodrigues/config.h b/keyboards/idobao/id67/keymaps/vinorodrigues/config.h new file mode 100644 index 000000000000..88fe361bde4d --- /dev/null +++ b/keyboards/idobao/id67/keymaps/vinorodrigues/config.h @@ -0,0 +1,85 @@ +/* + * Idobao ID67 Keymap for a ID67 Bestype, built for Mac use + * Copyright (C) 2022 Vino Rodrigues + * + * This program is free software: you can 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 . + */ + +#if defined(RGB_MATRIX_ENABLE) + #define VIA_QMK_RGBLIGHT_ENABLE + #define ID67_DISABLE_UNDERGLOW // personal choice, I use a ID67 Bestype + + #ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS + #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS + #endif + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // // limits maximum brightness of LEDs to 200 out of 255 + + //// #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended + + //// #define RGB_MATRIX_KEYPRESSES + + // RGB Matrix config, nit-pick a few animations. "////" = already defined in base `config.h`, `#undef` disables it + + //// #define ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue + //// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes + //// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes + //// #define ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation + //// #define ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right + //// #define ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right + //// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation + //// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness + //// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation + //// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness + //// #define ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient + //// #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right + //// #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom + //// #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in + //// #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in + //// #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right + //// #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard + //// #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard + //// #define ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard + //// #define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard + //// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard + //// #define ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue + //// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation + //// #define ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time, then shifts back + //// #define ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left + //// #define ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right + + #undef ENABLE_RGB_MATRIX_PIXEL_RAIN + #undef ENABLE_RGB_MATRIX_PIXEL_FLOW + #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL + + #if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) + //// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP + //// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN + #undef ENABLE_RGB_MATRIX_TYPING_HEATMAP + #endif + + #if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) + //// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out + //// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue + //// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out + //// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out + //// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out + //// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out + //// #define ENABLE_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 ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out + //// #define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out + //// #define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out + //// #define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out + //// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out + #endif +#endif diff --git a/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c new file mode 100644 index 000000000000..62fd4cfa8f7e --- /dev/null +++ b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c @@ -0,0 +1,261 @@ +/* + * Idobao ID67 Keymap for a ID67 Bestype, built for Mac use + * Copyright (C) 2022 Vino Rodrigues + * + * This program is free software: you can 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 +#include "version.h" + +enum { + LAYER_0 = 0, + LAYER_1, + LAYER_2, + LAYER_3 +}; + +enum { + KC_MCON = USER00, + KC_LPAD, + KB_VRSN = SAFE_RANGE +}; + +enum macos_consumer_usages { + _AC_SHOW_ALL_WINDOWS = 0x29F, // mapped to KC_MCON + _AC_SHOW_ALL_APPS = 0x2A0 // mapped to KC_LPAD +}; + +#define LT1_C_L LT(LAYER_1, KC_CAPS) + +#ifndef MIN + #define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_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_GRAVE, \ + KC_TAB, KC_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_DELETE, \ + LT1_C_L, 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_LALT, KC_LGUI, KC_SPC, FN_MO13, FN_MO23, KC_LEFT, KC_DOWN, KC_RIGHT), + [LAYER_1] = LAYOUT_65_ansi_blocker( + 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_ERAS, KC_F13, \ + _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_HOME, KC_END, KC_EJCT, KC_INS, \ + KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, KC_PENT, KC_HOME, \ + KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_DELETE, KC_LSFT, _______, KC_END, \ + KC_RCTL, KC_RALT, KC_RGUI, _______, _______, _______, _______, _______, _______), + [LAYER_2] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_BRID, KC_BRIU, KC_MCON, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_OUT, KC_F14, \ + RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, \ + XXXXXXX, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, XXXXXXX, KC_SLCK, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_SAD, XXXXXXX, RGB_VAI, KC_PAUS, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI), + [LAYER_3] = LAYOUT_65_ansi_blocker( + RESET, MACRO01, MACRO02, MACRO03, MACRO04, MACRO05, MACRO06, MACRO07, MACRO08, MACRO09, MACRO10, MACRO11, MACRO12, KC_POWER, KC_F15, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KB_VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MACRO00, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, KC_WAKE, XXXXXXX, XXXXXXX, MACRO13, MACRO14, MACRO15), +}; + +#ifdef RGB_MATRIX_ENABLE + +/* + * RGB Stuff + */ + +#ifdef RGBLIGHT_VAL_STEP + #define RGB_BRIGHTER_BY RGBLIGHT_VAL_STEP +#else + #define RGB_BRIGHTER_BY 26 // about 10% +#endif + +#define LED_FLAG_ALPHA_KEY 0x10 // Alpha keys (for Caps Lock) +#define LED_FLAG_LAYER_IND 0x20 // Layer indicator + +const uint8_t g_led_config_new_flags[DRIVER_LED_TOTAL] = { + // Extended LED Index to Flag + // ** Remember: on ID67 this is in reverse order + 0x21, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x21, // Spc row + 0x21, 0x01, 0x01, 0x04, 0x04, 0x04, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x21, // ZXC row + 0x21, 0x01, 0x04, 0x04, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x29, // ASD row + 0x21, 0x04, 0x04, 0x04, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x21, // QWE row + 0x21, 0x01, 0x04, 0x04, 0x04, 0x04, 0x24, 0x24, 0x24, 0x24, 0x04, 0x04, 0x04, 0x04, 0x21 // 123 row +}; + +bool isRGBOff = false; +bool isCapsBlink = false; +static uint16_t recording_timer; + +void keyboard_pre_init_user(void) { + // override `config.h` flags with new values + for (int i = 0; i < DRIVER_LED_TOTAL; i++) g_led_config.flags[i] = g_led_config_new_flags[i]; +} + +void keyboard_post_init_user(void) { + isRGBOff = false; +} + +void rgb_matrix_indicators_user(void) { + // do nothing, override base <> function to disable it +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + + uint8_t v = MIN( rgblight_get_val() + RGB_BRIGHTER_BY, 0xFF ); + uint8_t current_layer = get_highest_layer(layer_state); + + // Caps Lock key stuff + + if (host_keyboard_led_state().caps_lock) { + if (isRGBOff) { + rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, v, v, v); // white + } else { + // Caps Lock key/LED + if (timer_elapsed(recording_timer) > 500) { + isCapsBlink = !isCapsBlink; + recording_timer = timer_read(); + } + if (isCapsBlink) { + rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, v, v, v); // white + } + + // Alpha keys/LEDs + for (uint8_t i = led_min; i <= led_max; i++) { + if ((g_led_config.flags[i] & LED_FLAG_ALPHA_KEY) != 0) { + rgb_matrix_set_color(i, v, 0, 0); //red + } + } + } + } else if (isRGBOff) { + uint8_t r = 0; + uint8_t g = 0; + uint8_t b = 0; + + if ((g_led_config.flags[ID67_CAPS_LOCK_KEY_INDEX] & LED_FLAG_LAYER_IND) != 0) { + switch (current_layer) { + case LAYER_1: b = v; break; // blue + case LAYER_2: g = v; break; // green + case LAYER_3: r = v; break; // red + } + } + + rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, r, g, b); // off + } + + // Layer indicator stuff + + switch (current_layer) { + case LAYER_1: + for (uint8_t i = led_min; i <= led_max; i++) { + if ((g_led_config.flags[i] & LED_FLAG_LAYER_IND) != 0) { + rgb_matrix_set_color(i, 0, 0, v); // blue + } + } + break; + + case LAYER_2: + for (uint8_t i = led_min; i <= led_max; i++) { + if ((g_led_config.flags[i] & LED_FLAG_LAYER_IND) != 0) { + rgb_matrix_set_color(i, 0, v, 0); // green + } + } + break; + + case LAYER_3: + for (uint8_t i = led_min; i <= led_max; i++) { + if ((g_led_config.flags[i] & LED_FLAG_LAYER_IND) != 0) { + rgb_matrix_set_color(i, v, 0, 0); // red + } + } + break; + + default: + if (isRGBOff) { + // switch layer indicators off only if in OFF mode + for (uint8_t i = led_min; i <= led_max; i++) { + if ((g_led_config.flags[i] & LED_FLAG_LAYER_IND) != 0) { + rgb_matrix_set_color(i, 0, 0, 0); // red + } + } + } + break; + } +} + +/* + * Sleep mode stuff (untested) + */ + +void suspend_power_down_user(void) { + rgb_matrix_set_suspend_state(true); +} + +void suspend_wakeup_init_user(void) { + rgb_matrix_set_suspend_state(false); +} + +#endif + +/* + * Mac Fn-key stuff + */ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + // handle RGB toggle key + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: + isRGBOff = true; + rgb_matrix_set_flags(LED_FLAG_INDICATOR | LED_FLAG_LAYER_IND); + rgb_matrix_set_color_all(0, 0, 0); + break; + default: + isRGBOff = false; + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); // turn the lights back on + } + } + return false; + + // print firmware version + case KB_VRSN: + if (!get_mods()) { + if (!record->event.pressed) { + SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " (v" QMK_VERSION ")"); + } + } + return false; + + // @see: https://github.com/qmk/qmk_firmware/issues/10111#issuecomment-752300353 + case KC_MCON: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_WINDOWS); + } + return false; + + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_APPS); + } + return false; + + default: + return true; /* Process all other keycodes normally */ + } +} diff --git a/keyboards/idobao/id67/keymaps/vinorodrigues/rules.mk b/keyboards/idobao/id67/keymaps/vinorodrigues/rules.mk new file mode 100644 index 000000000000..24f7bdab9cd7 --- /dev/null +++ b/keyboards/idobao/id67/keymaps/vinorodrigues/rules.mk @@ -0,0 +1,5 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes + +KEY_LOCK_ENABLE = no # Enable KC_LOCK support +NKRO_ENABLE = no # N-Key Rollover must be OFF for mac keys to work diff --git a/keyboards/idobao/id67/readme.md b/keyboards/idobao/id67/readme.md index 134d45b18e91..c061db8f0301 100644 --- a/keyboards/idobao/id67/readme.md +++ b/keyboards/idobao/id67/readme.md @@ -1,29 +1,40 @@ # IDOBAO ID67 +![id67](https://i.imgur.com/9roQ4Mih.jpeg) + A 65% hotswap keyboard from IDOBAO. ## ANSI support: -* Keyboard Maintainer: Tybera -* Hardware Supported: IDOBAO ID67 -* Hardware Availability: [IDOBAO](https://www.idobao.net/products/idobao-id67-65-hot-swappable-mechanical-keyboard-kit-1) +* Keyboard Maintainer: Tybera *(fmr.)*, [thewerther](https://github.com/thewerther) *(curr.)* +* Hardware Supported: IDOBAO ID67, ID67V2, ID67 Crystal & ID67 Bestype +* Hardware Availability: IDOBAO website: +* [ID67](https://www.idobao.net/products/idobao-id67-65-hot-swappable-mechanical-keyboard-kit-1) +* [ID67V2](https://idobao.net/collections/65-layout/products/idobao-id67v2-65-hot-swappable-mechanical-keyboard-kit) +* [ID67 Crystal](https://idobao.net/collections/65-layout/products/idobao-id67-crystal-keyboard-kit-gasket-mount-version) +* [ID67 Bestype](https://idobao.net/collections/65-layout/products/idobao-id67-bestype-keyboard-kit-aluminum-with-brass-weight) -## Variants +## Layout -Currently there are two variants for the id67: -1. `rgb_default` which uses the `RGB Lightning` feature for the on-board LEDs. -2. `rgb` which uses the more advanced `RGB Matrix` feature for the per-key and underglow (bottom of PCB) LEDs. +![ID67 layout](https://i.imgur.com/Ge6Uxao.png) -Make examples for this keyboard (after setting up your build environment): - make idobao/id67/default_rgb:default +## Compiling and flashing - make idobao/id67/rgb:default +Make example for this keyboard (after setting up your build environment): -Flashing examples for this keyboard: + make id67:default - make idobao/id67/default_rgb:default:flash +Flashing example for this keyboard: - make idobao/id67/rgb:default:flash + make id67: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 `Escape` key and plug in the keyboard. +* **Physical reset button**: Briefly press the button on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `RESET` (FN+Z). diff --git a/keyboards/idobao/id67/rgb/readme.md b/keyboards/idobao/id67/rgb/readme.md deleted file mode 100644 index 8376af1468f3..000000000000 --- a/keyboards/idobao/id67/rgb/readme.md +++ /dev/null @@ -1,36 +0,0 @@ -# IDOBAO ID67 - -![id67](https://i.imgur.com/9roQ4Mih.jpeg) - -A 65% hotswap keyboard from IDOBAO. - -## ANSI support: - -* Keyboard Maintainer: Tybera -* Hardware Supported: IDOBAO ID67 -* Hardware Availability: [IDOBAO-website](https://www.idobao.net/products/idobao-id67-65-hot-swappable-mechanical-keyboard-kit-1) - -## Layout - -![ID67 layout](https://i.imgur.com/Ge6Uxao.png) - - -## Compiling and flashing - -Make example for this keyboard (after setting up your build environment): - - make id67/rgb:default - -Flashing example for this keyboard: - - make id67/rgb: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 `Escape` key and plug in the keyboard. -* **Physical reset button**: Briefly press the button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `RESET` (FN+Z). diff --git a/keyboards/idobao/id67/rgb/rgb.c b/keyboards/idobao/id67/rgb/rgb.c deleted file mode 100644 index 5fc007d19ab4..000000000000 --- a/keyboards/idobao/id67/rgb/rgb.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright 2021 Tybera - * Copyright 2021 thewerther - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "rgb.h" - -#define __ NO_LED - -// Indices are reveresed on the physical board, top left is bottom right. -led_config_t g_led_config = { { - // Key Matrix to LED Index - {66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52}, - {51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37}, - {36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, __, 24, 23}, - {22, __, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9}, - { 8, 7, __, 6, __, __, 5, __, __, __, 4, 3, 2, 1, 0}, -}, { - // LED Index to Physical Position - {224, 64}, {196, 64}, {168, 64}, {140, 64}, {112, 64}, {84, 64}, {56, 64}, {28, 64}, {0, 64}, - {224, 48}, {206, 48}, {189, 48}, {172, 48}, {155, 48}, {137, 48}, {120, 48}, {103, 48}, {86, 48}, {68, 48}, {51, 48}, {34, 48}, {17, 48}, {0, 48}, - {224, 32}, {206, 32}, {189, 32}, {172, 32}, {155, 32}, {137, 32}, {120, 32}, {103, 32}, {86, 32}, {68, 32}, {51, 32}, {34, 32}, {17, 32}, {0, 32}, - {224, 16}, {208, 16}, {192, 16}, {176, 16}, {160, 16}, {144, 16}, {128, 16}, {112, 16}, {96, 16}, {80, 16}, {64, 16}, {48, 16}, {32, 16}, {16, 16}, {0, 16}, - {224, 0}, {208, 0}, {192, 0}, {176, 0}, {160, 0}, {144, 0}, {128, 0}, {112, 0}, {96, 0}, {80, 0}, {64, 0}, {48, 0}, {32, 0}, {16, 0}, {0, 0}, - // underglow LEDs - {0, 0}, {56, 0}, {112, 0}, {168, 0}, {224, 0}, - {224, 64}, {168, 64}, {112, 64}, {56, 64}, {0, 64} -}, { - // LED Index to Flag - 4, 4, 4, 1, 1, 4, 1, 1, 1, // first row - 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // second row - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // third row - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // fourth row - 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // fifth row - // underglow leds - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; diff --git a/keyboards/idobao/id67/rgb/rules.mk b/keyboards/idobao/id67/rules.mk similarity index 97% rename from keyboards/idobao/id67/rgb/rules.mk rename to keyboards/idobao/id67/rules.mk index 5ebc2b824ab6..cda7bbd9cd26 100644 --- a/keyboards/idobao/id67/rgb/rules.mk +++ b/keyboards/idobao/id67/rules.mk @@ -21,5 +21,5 @@ RGB_MATRIX_ENABLE = yes # Enable RGB Matrix feature RGB_MATRIX_DRIVER = WS2812 # ID67 uses WS2812 driver KEY_LOCK_ENABLE = yes # Enable KC_LOCK support - +LTO_ENABLE = yes LAYOUTS = 65_ansi_blocker From 1f2ccafe4f16eccd007047d5755fba822bca52a0 Mon Sep 17 00:00:00 2001 From: IskandarMa Date: Fri, 22 Apr 2022 15:37:29 +0800 Subject: [PATCH 23/71] [Docs] zh-cn document translate: git parts (#15576) Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com> Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com> --- docs/zh-cn/newbs_git_best_practices.md | 23 +++++ .../newbs_git_resolving_merge_conflicts.md | 86 +++++++++++++++++++ .../zh-cn/newbs_git_resynchronize_a_branch.md | 76 ++++++++++++++++ .../newbs_git_using_your_master_branch.md | 79 +++++++++++++++++ 4 files changed, 264 insertions(+) create mode 100644 docs/zh-cn/newbs_git_best_practices.md create mode 100644 docs/zh-cn/newbs_git_resolving_merge_conflicts.md create mode 100644 docs/zh-cn/newbs_git_resynchronize_a_branch.md create mode 100644 docs/zh-cn/newbs_git_using_your_master_branch.md diff --git a/docs/zh-cn/newbs_git_best_practices.md b/docs/zh-cn/newbs_git_best_practices.md new file mode 100644 index 000000000000..af3359dfc55d --- /dev/null +++ b/docs/zh-cn/newbs_git_best_practices.md @@ -0,0 +1,23 @@ +# QMK所采用的Git最佳实践 + + + +*译者注:对于git相关的部分,除广为接受的名词外,会尽量保留git命令及各种术语的英文版本,部分名词及关键部分会附带中文翻译* + +## 或者讲,"怎么才能不害怕并喜欢上Git" + +本节旨在以最佳方式指导新手在为QMK做贡献时获得流畅的体验。我们将进行一次完整的QMK贡献操作流程,并在部分环节中详细讲述几种便捷的方法,之后我们会故意搞砸一些东西,并教导你如何回到正轨。 + +该章节做了如下假设: + +1. 你已有Github账号且已[fork了qmk_firmware仓库](zh-cn/getting_started_github.md)到你的账号下。 +2. 已完成了[构建环境](zh-cn/newbs_getting_started.md#set-up-your-environment)及[QMK](zh-cn/newbs_getting_started.md#set-up-qmk)配置。 + +--- + +- 第一节:[在你Fork的主干上:频繁更新,不要提交](zh-cn/newbs_git_using_your_master_branch.md) +- 第二节:[解决合并冲突](zh-cn/newbs_git_resolving_merge_conflicts.md) +- 第三节:[重新同步一个脱离同步状态的Git分支](zh-cn/newbs_git_resynchronize_a_branch.md) diff --git a/docs/zh-cn/newbs_git_resolving_merge_conflicts.md b/docs/zh-cn/newbs_git_resolving_merge_conflicts.md new file mode 100644 index 000000000000..bd9702a48802 --- /dev/null +++ b/docs/zh-cn/newbs_git_resolving_merge_conflicts.md @@ -0,0 +1,86 @@ +# 解决合并冲突 + + + +有时在你致力于一个较长周期才能完成的分支时,其它人提交的变更会与你提交的pull request中的变更发生冲突。我们将这种多个人编辑同一个模块同一个文件时产生的场景叫做 *合并冲突* + +?> 本文中的场景基于[在你Fork的主干上:频繁更新,不要提交](zh-cn/newbs_git_using_your_master_branch.md)一文。如果你对那篇文章不熟悉,请先阅读它,再回来继续。 + +## 变基/衍合(rebase) + + +Git的*变基*操作会将提交历史中的提交节点摘除并回滚,然后统一提交到一个新节点上。在解决合并冲突时,可以通过对当前分支进行变基,来获取从分支拉取到当前时刻的所有变更。 + +从执行如下命令开始: + +``` +git fetch upstream +git rev-list --left-right --count HEAD...upstram/master +``` + +此处输入的 `git rev-list` 命令可以得到当前分支与QMK主干分支间的提交数量差。而先执行 `git fetch` 是为了确保我们有上游仓库(upstream repo)的最新状态。`git rev-list` 命令会返回两个数字: + +``` +$ git rev-list --left-right --count HEAD...upstream/master +7 35 +``` + +第一个数字为当前分支自创建后新增的提交数量。第二个数字为当前分支创建后在 `upstream/master` 上的提交数量,而这部分就是我们当前分支上缺失的提交记录。 + +在我们了解了当前分支以及上游仓库的状态后,可以发起变基操作了: + +``` +git rebase upstream/master +``` + +这样可以让Git回滚该分支的提交,然后基于QMK的主干版本重新应用这些提交。 + +*译注:以下内容在中文Git下大同小异,且仅作为示例,不进行翻译* +``` +$ git rebase upstream/master +First, rewinding head to replay your work on top of it... +Applying: Commit #1 +Using index info to reconstruct a base tree... +M conflicting_file_1.txt +Falling back to patching base and 3-way merge... +Auto-merging conflicting_file_1.txt +CONFLICT (content): Merge conflict in conflicting_file_1.txt +error: Failed to merge in the changes. +hint: Use 'git am --show-current-patch' to see the failed patch +Patch failed at 0001 Commit #1 + +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +``` + +以上内容是在告诉我们有合并冲突存在,并给出了冲突所在的文件名。在编辑器中打开该文件,可以在某处发现类似如下形式的内容: + +``` +<<<<<<< HEAD +

For help with any issues, email us at support@webhost.us.

+======= +

Need help? Email support@webhost.us.

+>>>>>>> Commit #1 +``` + +`<<<<<<< HEAD` 标记了合并冲突的起始行,直至 `>>>>>>> Commit #1` 标记的结束行,中间通过 `=======` 分隔开冲突双方。其中 `HEAD` 部分为QMK主干上的版本,标记了提交日志的部分为当前分支的本地提交。 + +由于Git存储的是*文件差异部分*而非整个文件,所以当Git无法在文件中找到一个变更发生前的内容时,就无法知道如何去进行文件变更,重新编辑一下可以解决问题。在更改完成后,保存文件。 + +``` +

Need help? Email support@webhost.us.

+``` + +之后,执行: + +``` +git add conflicting_file_1.txt +git rebase --continue +``` + +Git即会记录对文件冲突做出的变更,并继续处理剩余的提交,直至全部完成。 diff --git a/docs/zh-cn/newbs_git_resynchronize_a_branch.md b/docs/zh-cn/newbs_git_resynchronize_a_branch.md new file mode 100644 index 000000000000..3f38138f6971 --- /dev/null +++ b/docs/zh-cn/newbs_git_resynchronize_a_branch.md @@ -0,0 +1,76 @@ +# 重新同步已失去同步状态的Git分支 + + + +假设你在自己的 `master` 分支之上有提交,并且想和QMK仓库进行同步,可以通过 `git pull` 拉取QMK的 `master` 分支到你的库,但同时Github也会提醒你当前分支相比 `qmk:master` 有几个领先的提交,会在你向QMK发起pr时造成麻烦。 + +?> 本文中的场景基于[在你Fork的主干上:频繁更新,不要提交](zh-cn/newbs_git_using_your_master_branch.md)一文。如果你对那篇文章不熟悉,请先阅读它,再回来继续。 + +## 备份你在自己的主干分支上的所有变更(可选) + +不会有人想把有用的成果弄丢的。如果你想将你的 `master` 分支上的变更另存一份,简便的方法是直接创建一个当前“脏” `master` 分支的副本: + +``` +git branch old_master master +``` + +现在 `master` 分支拥有了一个副本分支 `old_master`。 + +## 重新同步分支 + +现在可以重新同步 `master` 分支了,这里,我们将QMK仓库设置为Git的远程仓库。通过执行 `git remote -v` 可以确认远程仓库配置,输出信息应类似于: + +``` +QMKuser ~/qmk_firmware (master) +$ git remote -v +origin https://github.com//qmk_firmware.git (fetch) +origin https://github.com//qmk_firmware.git (push) +upstream https://github.com/qmk/qmk_firmware.git (fetch) +upstream https://github.com/qmk/qmk_firmware.git (push) +``` + +如果你只能看到一个仓库: + +``` +QMKuser ~/qmk_firmware (master) +$ git remote -v +origin https://github.com/qmk/qmk_firmware.git (fetch) +origin https://github.com/qmk/qmk_firmware.git (push) +``` + +通过如下命令添加新的远程仓库: + +``` +git remote add upstream https://github.com/qmk/qmk_firmware.git +``` + +然后,重新将 `origin` 远程仓库设置为自己的fork: + +``` +git remote set-url origin https://github.com//qmk_firmware.git +``` + +在两个远程仓库配置完毕后,需要从QMK的 upstream 仓库中获取到更新,执行: + +``` +git fetch upstream +``` + +此时,重新同步你的分支到QMK的版本: + +``` +git reset --hard upstream/master +``` + +以上操作会更新你的本地仓库,而你的Github远程仓库仍然处于未同步状态,通过推送,可以让其进入已同步状态。可以通过如下命令来指引Git强行覆盖掉那些仅在你远程仓库中存在的提交: + +``` +git push --force-with-lease +``` + +!> **不要**在其它使用者也会提交的分支上执行 `git push --force-with-lease`,否则会覆盖掉他人的提交。 + +此时你的Github fork,本地文件副本,以及QMK仓库就是一致的了。之后再进行变更([在分支上!](zh-cn/newbs_git_using_your_master_branch.md#making-changes))和提交。 diff --git a/docs/zh-cn/newbs_git_using_your_master_branch.md b/docs/zh-cn/newbs_git_using_your_master_branch.md new file mode 100644 index 000000000000..2a83fc213968 --- /dev/null +++ b/docs/zh-cn/newbs_git_using_your_master_branch.md @@ -0,0 +1,79 @@ +# 在你Fork的主干上:频繁更新,不要提交 + + + +我们强烈推荐所有QMK开发者,无论在哪里做什么改动,频繁更新你的 `master` 分支,但***不要***在其上提交。相对地,将你所有的改动提交到开发分支上并提交一个pull request。 + +为了减少冲突 — 多人同时编辑同一个文件 — 保持你的 `master` 分支更新到最新,并在新创建的分支上进行开发。 + +## 更新master分支 + +为了保持 `master` 更新到最新,推荐将QMK固件仓库("repo")设置为git远程仓库。打开Git命令行界面并键入: + +``` +git remote add upstream https://github.com/qmk/qmk_firmware.git +``` + +?> 名称 `upstream` 部分可以任意,这里给的是常用的;你可以将QMK远程仓库名称改成你想要的。Git的 `remote` 命令语法为 `git remote add `, `` 是远程仓库的简写名称,这个名称可以在很多Git命令中使用,包括但不限于 `fetch`,`pull` 及 `push`,以指定目标远程仓库。 + +要验证是否添加成功,可以执行 `git remote -v`,输出应该类似于: + +``` +$ git remote -v +origin https://github.com//qmk_firmware.git (fetch) +origin https://github.com//qmk_firmware.git (push) +upstream https://github.com/qmk/qmk_firmware.git (fetch) +upstream https://github.com/qmk/qmk_firmware.git (push) +``` + +在以上操作完成后,可以通过执行 `git fetch upstream` 来检查仓库是否有更新。该命令从QMK仓库拉取的分支(branches)及标签(tags) — 统称为“refs(引用)” —现在也被称作 `upstream`(上游)。此时我们可以比对自己fork版本的 `origin` 与QMK维护的分支的差异了。 + +要更新你的fork的master分支,执行以下指令,每一行结束都需要按回车: + +``` +git checkout master +git fetch upstream +git pull upstream master +git push origin master +``` + +以上操作会切换到 `master` 分支,从QMK仓库拉取refs,下载QMK `master` 分支的当前版本,并上传至你的fork中。 + +## 进行编辑 :id=making-changes + +要进行编辑,通过如下命令创建一个新分支: + +``` +git checkout -b dev_branch +git push --set-upstream origin dev_branch +``` + +以上操作会创建 `dev_branch` 新分支,检出(check out)并保存到你的fork中。`--set-upstream` 参数用于告知git使用你的fork仓库来处理 `dev_branch` 分支下的 `git push` 及 `git pull` 命令,且仅需要在第一次执行push命令时指定,之后再次执行 `git push` 或是 `git pull` 都无需加入该参数了。 + +?> 在 `git push` 时,可以使用 `-u` 替代 `--set-upstram` — `-u` 为 `--set-upsream` 参数的别名。 + +你可以任意命名该分支,但仍建议对分支起一个可以描述将在该分支下要做的工作的名称。 + +默认情况下 `git checkout -b` 会基于你当前检出的分支作为新分支的基准。可以在后面追加已存在但未检出的分支名来指定新分支的基准: + +``` +git checkout -b dev_branch master +``` + +此时你便有了一个开发用分支,可以打开编辑器并进行你期望的变更了。通常推荐提交大量的小规模提交(commit),这样在需要时会更容易地定位并回滚造成问题的提交。若要提交更改,编辑并保存要更新的文件,并将其添加到*暂存区(staged area)*,然后提交到分支中: + +``` +git add path/to/updated_file +git commit -m "My commit message." +``` + +`git add` 会将更改后的文件放到Git的*暂存区*,也称作Git的“装载区”。这里留存着即将通过 `git commit` 所提交并保存到仓库中的变更。请使用确切的描述来填写提交日志,以便于快速了解改动内容。 + +?> 如果更改了多个文件,可以通过 `git add -- path/to/file1 path/to/file2 ...` 来添加所有项目。 + +## 发布变更 + +最后一步为上传你的变更到你的fork中。通过执行 `git push`,Git将发布 `dev_branch` 分支的所有变更至你的fork中。 From b9e2c0e2b4a7a5653a0cdcfd917e3dfe3791fbe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Pont?= Date: Fri, 22 Apr 2022 09:38:16 +0200 Subject: [PATCH 24/71] [Keyboard] Fix Pegasus Hoof (2013) layout, matrix and pin assignment (#16042) --- keyboards/bpiphany/pegasushoof/2013/2013.h | 67 ++++++++++---------- keyboards/bpiphany/pegasushoof/2013/matrix.c | 64 +++++++++---------- 2 files changed, 65 insertions(+), 66 deletions(-) diff --git a/keyboards/bpiphany/pegasushoof/2013/2013.h b/keyboards/bpiphany/pegasushoof/2013/2013.h index 7a4d7f0b5862..f43fdcf92c00 100644 --- a/keyboards/bpiphany/pegasushoof/2013/2013.h +++ b/keyboards/bpiphany/pegasushoof/2013/2013.h @@ -21,21 +21,21 @@ along with this program. If not, see . #include "quantum.h" #define LAYOUT( \ - KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ - KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ - KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ - KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ - KB2, KH6, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ - KP4, KD2, KN6, KQ6, KN0, KA3, KM0, KP1, KC0, KQ0, KR0 \ - ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ - /* 0 */ { KC_NO , KC_NO , KC0 , KC_NO , KC_NO , KF0 , KC_NO , KC_NO , KC_NO , KJ0 , KK0 , KC_NO , KM0 , KN0 , KO0 , KC_NO , KQ0 , KR0 }, \ - /* 1 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KG1 , KH1 , KI1 , KJ1 , KK1 , KL1 , KM1 , KC_NO , KO1 , KP1 , KC_NO , KC_NO }, \ - /* 2 */ { KC_NO , KB2 , KC_NO , KD2 , KC_NO , KF2 , KG2 , KH2 , KI2 , KJ2 , KK2 , KL2 , KM2 , KC_NO , KO2 , KC_NO , KC_NO , KC_NO }, \ - /* 3 */ { KA3 , KB3 , KC_NO , KC_NO , KC_NO , KF3 , KG3 , KH3 , KI3 , KJ3 , KK3 , KL3 , KM3 , KC_NO , KO3 , KC_NO , KC_NO , KC_NO }, \ - /* 4 */ { KC_NO , KC_NO , KC4 , KC_NO , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , KM4 , KC_NO , KO4 , KP4 , KQ4 , KR4 }, \ - /* 5 */ { KC_NO , KC_NO , KC5 , KC_NO , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , KK5 , KL5 , KM5 , KN5 , KO5 , KP5 , KC_NO , KC_NO }, \ - /* 6 */ { KC_NO , KC_NO , KC6 , KC_NO , KC_NO , KF6 , KG6 , KH6 , KI6 , KJ6 , KK6 , KL6 , KC_NO , KN6 , KO6 , KC_NO , KQ6 , KC_NO }, \ - /* 7 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KF7 , KG7 , KH7 , KI7 , KJ7 , KK7 , KL7 , KM7 , KN7 , KC_NO , KP7 , KC_NO , KC_NO } \ + KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ + KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \ + KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \ + KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \ + KN2, KI6, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \ + KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \ + ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ + /* 0 */ { KC_NO, KB0, KC0, KD0, KC_NO, KF0, KG0, KC_NO, KC_NO, KC_NO, KK0, KL0, KC_NO, KC_NO, KO0, KC_NO, KC_NO, KR0 }, \ + /* 1 */ { KA1, KB1, KC_NO, KD1, KE1, KF1, KG1, KH1, KI1, KJ1, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + /* 2 */ { KC_NO, KB2, KC_NO, KD2, KE2, KF2, KG2, KH2, KI2, KJ2, KC_NO, KC_NO, KC_NO, KN2, KC_NO, KP2, KC_NO, KR2 }, \ + /* 3 */ { KC_NO, KB3, KC_NO, KD3, KE3, KF3, KG3, KH3, KI3, KJ3, KC_NO, KC_NO, KM3, KN3, KC_NO, KC_NO, KC_NO, KR3 }, \ + /* 4 */ { KA4, KB4, KC_NO, KD4, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KC_NO, KC_NO, KO4, KC_NO, KQ4, KR4 }, \ + /* 5 */ { KA5, KC_NO, KC5, KD5, KE5, KF5, KG5, KH5, KI5, KJ5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KR5 }, \ + /* 6 */ { KC_NO, KB6, KC6, KC_NO, KE6, KF6, KG6, KH6, KI6, KJ6, KK6, KC_NO, KC_NO, KC_NO, KO6, KC_NO, KC_NO, KR6 }, \ + /* 7 */ { KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7, KC_NO, KC_NO, KC_NO, KC_NO, KO7, KC_NO, KQ7, KR7 } \ } #define LAYOUT_tkl_ansi( \ @@ -45,15 +45,15 @@ along with this program. If not, see . KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ KB2, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ KP4, KD2, KN6, KQ6, KN0, KA3, KM0, KP1, KC0, KQ0, KR0 \ - ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ - /* 0 */ { KC_NO , KC_NO , KC0 , KC_NO , KC_NO , KF0 , KC_NO , KC_NO , KC_NO , KJ0 , KK0 , KC_NO , KM0 , KN0 , KO0 , KC_NO , KQ0 , KR0 }, \ - /* 1 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KG1 , KH1 , KI1 , KJ1 , KK1 , KL1 , KM1 , KC_NO , KO1 , KP1 , KC_NO , KC_NO }, \ - /* 2 */ { KC_NO , KB2 , KC_NO , KD2 , KC_NO , KF2 , KG2 , KH2 , KI2 , KJ2 , KK2 , KL2 , KM2 , KC_NO , KO2 , KC_NO , KC_NO , KC_NO }, \ - /* 3 */ { KA3 , KB3 , KC_NO , KC_NO , KC_NO , KF3 , KG3 , KH3 , KI3 , KJ3 , KK3 , KL3 , KM3 , KC_NO , KO3 , KC_NO , KC_NO , KC_NO }, \ - /* 4 */ { KC_NO , KC_NO , KC4 , KC_NO , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , KM4 , KC_NO , KO4 , KP4 , KQ4 , KR4 }, \ - /* 5 */ { KC_NO , KC_NO , KC5 , KC_NO , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , KK5 , KL5 , KM5 , KN5 , KO5 , KP5 , KC_NO , KC_NO }, \ - /* 6 */ { KC_NO , KC_NO , KC6 , KC_NO , KC_NO , KF6 , KG6 , KC_NO , KI6 , KJ6 , KK6 , KL6 , KC_NO , KN6 , KO6 , KC_NO , KQ6 , KC_NO }, \ - /* 7 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KF7 , KG7 , KH7 , KI7 , KJ7 , KK7 , KL7 , KM7 , KN7 , KC_NO , KP7 , KC_NO , KC_NO } \ + ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ + /* 0 */ { KC_NO, KC_NO, KC0, KC_NO, KC_NO, KF0, KC_NO, KC_NO, KC_NO, KJ0, KK0, KC_NO, KM0, KN0, KO0, KC_NO, KQ0, KR0 }, \ + /* 1 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KG1, KH1, KI1, KJ1, KK1, KL1, KM1, KC_NO, KO1, KP1, KC_NO, KC_NO }, \ + /* 2 */ { KC_NO, KB2, KC_NO, KD2, KC_NO, KF2, KG2, KH2, KI2, KJ2, KK2, KL2, KM2, KC_NO, KO2, KC_NO, KC_NO, KC_NO }, \ + /* 3 */ { KA3, KB3, KC_NO, KC_NO, KC_NO, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KC_NO, KO3, KC_NO, KC_NO, KC_NO }, \ + /* 4 */ { KC_NO, KC_NO, KC4, KC_NO, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KM4, KC_NO, KO4, KP4, KQ4, KR4 }, \ + /* 5 */ { KC_NO, KC_NO, KC5, KC_NO, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5, KM5, KN5, KO5, KP5, KC_NO, KC_NO }, \ + /* 6 */ { KC_NO, KC_NO, KC6, KC_NO, KC_NO, KF6, KG6, KC_NO, KI6, KJ6, KK6, KL6, KC_NO, KN6, KO6, KC_NO, KQ6, KC_NO }, \ + /* 7 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KF7, KG7, KH7, KI7, KJ7, KK7, KL7, KM7, KN7, KC_NO, KP7, KC_NO, KC_NO } \ } #define LAYOUT_tkl_jis( \ @@ -63,15 +63,15 @@ along with this program. If not, see . KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO3, KO1, \ KB2, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KL0, KB3, KC6, \ KP4, KD2, KN6, KG0, KQ6, KH0, KI0, KN0, KM0, KP1, KC0, KQ0, KR0 \ - ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ - /* 0 */ { KC_NO, KC_NO, KC0, KC_NO, KC_NO, KF0, KG0, KH0, KI0, KJ0, KK0, KL0, KM0, KN0, KO0, KC_NO, KQ0, KR0 }, \ - /* 1 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KG1, KH1, KI1, KJ1, KK1, KL1, KM1, KC_NO, KO1, KP1, KC_NO, KC_NO }, \ - /* 2 */ { KC_NO, KB2, KC_NO, KD2, KC_NO, KF2, KG2, KH2, KI2, KJ2, KK2, KL2, KM2, KC_NO, KO2, KC_NO, KC_NO, KC_NO }, \ - /* 3 */ { KC_NO, KB3, KC_NO, KC_NO, KC_NO, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KC_NO, KO3, KC_NO, KC_NO, KC_NO }, \ - /* 4 */ { KC_NO, KC_NO, KC4, KC_NO, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KM4, KC_NO, KO4, KP4, KQ4, KR4 }, \ - /* 5 */ { KC_NO, KC_NO, KC5, KC_NO, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5, KM5, KN5, KO5, KP5, KC_NO, KC_NO }, \ - /* 6 */ { KC_NO, KC_NO, KC6, KC_NO, KC_NO, KF6, KG6, KC_NO, KI6, KJ6, KK6, KL6, KC_NO, KN6, KO6, KC_NO, KQ6, KC_NO }, \ - /* 7 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KF7, KG7, KH7, KI7, KJ7, KK7, KL7, KK7, KL7, KO7, KP7, KC_NO, KC_NO } \ + ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ + /* 0 */ { KC_NO, KC_NO, KC0, KC_NO, KC_NO, KF0, KG0, KH0, KI0, KJ0, KK0, KL0, KM0, KN0, KO0, KC_NO, KQ0, KR0 },\ + /* 1 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KG1, KH1, KI1, KJ1, KK1, KL1, KM1, KC_NO, KO1, KP1, KC_NO, KC_NO },\ + /* 2 */ { KC_NO, KB2, KC_NO, KD2, KC_NO, KF2, KG2, KH2, KI2, KJ2, KK2, KL2, KM2, KC_NO, KO2, KC_NO, KC_NO, KC_NO },\ + /* 3 */ { KC_NO, KB3, KC_NO, KC_NO, KC_NO, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KC_NO, KO3, KC_NO, KC_NO, KC_NO },\ + /* 4 */ { KC_NO, KC_NO, KC4, KC_NO, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KM4, KC_NO, KO4, KP4, KQ4, KR4 },\ + /* 5 */ { KC_NO, KC_NO, KC5, KC_NO, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5, KM5, KN5, KO5, KP5, KC_NO, KC_NO },\ + /* 6 */ { KC_NO, KC_NO, KC6, KC_NO, KC_NO, KF6, KG6, KC_NO, KI6, KJ6, KK6, KL6, KC_NO, KN6, KO6, KC_NO, KQ6, KC_NO },\ + /* 7 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KF7, KG7, KH7, KI7, KJ7, KK7, KL7, KK7, KL7, KO7, KP7, KC_NO, KC_NO } \ } inline void ph_caps_led_on(void) { DDRC |= (1<<6); PORTC &= ~(1<<6); } @@ -79,4 +79,3 @@ inline void ph_caps_led_off(void) { DDRC &= ~(1<<6); PORTC &= ~(1<<6); } inline void ph_sclk_led_on(void) { DDRC |= (1<<5); PORTC &= ~(1<<5); } inline void ph_sclk_led_off(void) { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } - diff --git a/keyboards/bpiphany/pegasushoof/2013/matrix.c b/keyboards/bpiphany/pegasushoof/2013/matrix.c index a55cba7afd30..ed56067dca66 100644 --- a/keyboards/bpiphany/pegasushoof/2013/matrix.c +++ b/keyboards/bpiphany/pegasushoof/2013/matrix.c @@ -35,12 +35,12 @@ static void select_row(uint8_t col); __attribute__ ((weak)) void matrix_init_kb(void) { - matrix_init_user(); + matrix_init_user(); } __attribute__ ((weak)) void matrix_scan_kb(void) { - matrix_scan_user(); + matrix_scan_user(); } __attribute__ ((weak)) @@ -66,10 +66,10 @@ void matrix_init(void) /* Column output pins */ DDRD |= 0b01111011; /* Row input pins */ - DDRC &= ~0b10000000; - DDRB &= ~0b01111111; - PORTC |= 0b10000000; - PORTB |= 0b01111111; + DDRC &= (unsigned char) ~0b00000000; + DDRB &= (unsigned char) ~0b11111111; + PORTC |= 0b00000000; + PORTB |= 0b11111111; for (uint8_t i=0; i < MATRIX_ROWS; i++) { matrix[i] = 0; @@ -135,72 +135,72 @@ void matrix_print(void) static matrix_row_t read_cols(void) { return - (PINB & (1 << 5) ? 0 : 1 << 0) | - (PINC & (1 << 7) ? 0 : 1 << 1) | - (PINB & (1 << 4) ? 0 : 1 << 2) | - (PINB & (1 << 6) ? 0 : 1 << 3) | - (PINB & (1 << 1) ? 0 : 1 << 4) | - (PINB & (1 << 0) ? 0 : 1 << 5) | - (PINB & (1 << 3) ? 0 : 1 << 6) | - (PINB & (1 << 2) ? 0 : 1 << 7); + (PINB & (1 << 5) ? 0 : (matrix_row_t) 1 << 0) | + (PINB & (1 << 7) ? 0 : (matrix_row_t) 1 << 1) | + (PINB & (1 << 4) ? 0 : (matrix_row_t) 1 << 2) | + (PINB & (1 << 6) ? 0 : (matrix_row_t) 1 << 3) | + (PINB & (1 << 1) ? 0 : (matrix_row_t) 1 << 4) | + (PINB & (1 << 2) ? 0 : (matrix_row_t) 1 << 5) | + (PINB & (1 << 3) ? 0 : (matrix_row_t) 1 << 6) | + (PINB & (1 << 0) ? 0 : (matrix_row_t) 1 << 7); } static void select_row(uint8_t col) { switch (col) { case 0: - PORTD = (PORTD & ~0b01111011) | 0b00110011; + PORTD = (PORTD & ~0b01111011) | 0b00010011; break; case 1: - PORTD = (PORTD & ~0b01111011) | 0b01110000; + PORTD = (PORTD & ~0b01111011) | 0b01000011; break; case 2: - PORTD = (PORTD & ~0b01111011) | 0b00010011; + PORTD = (PORTD & ~0b01111011) | 0b01100000; break; case 3: - PORTD = (PORTD & ~0b01111011) | 0b01101000; + PORTD = (PORTD & ~0b01111011) | 0b01111001; break; case 4: - PORTD = (PORTD & ~0b01111011) | 0b00001011; + PORTD = (PORTD & ~0b01111011) | 0b01100010; break; case 5: - PORTD = (PORTD & ~0b01111011) | 0b00111011; + PORTD = (PORTD & ~0b01111011) | 0b01101010; break; case 6: - PORTD = (PORTD & ~0b01111011) | 0b01111000; + PORTD = (PORTD & ~0b01111011) | 0b01110001; break; case 7: - PORTD = (PORTD & ~0b01111011) | 0b01100001; + PORTD = (PORTD & ~0b01111011) | 0b01101001; break; case 8: - PORTD = (PORTD & ~0b01111011) | 0b01101001; + PORTD = (PORTD & ~0b01111011) | 0b01100001; break; case 9: - PORTD = (PORTD & ~0b01111011) | 0b01110001; + PORTD = (PORTD & ~0b01111011) | 0b01111000; break; case 10: - PORTD = (PORTD & ~0b01111011) | 0b01101010; + PORTD = (PORTD & ~0b01111011) | 0b00011011; break; case 11: - PORTD = (PORTD & ~0b01111011) | 0b01100010; + PORTD = (PORTD & ~0b01111011) | 0b00100011; break; case 12: - PORTD = (PORTD & ~0b01111011) | 0b01111001; + PORTD = (PORTD & ~0b01111011) | 0b00101011; break; case 13: - PORTD = (PORTD & ~0b01111011) | 0b01100000; + PORTD = (PORTD & ~0b01111011) | 0b01110000; break; case 14: - PORTD = (PORTD & ~0b01111011) | 0b01000011; + PORTD = (PORTD & ~0b01111011) | 0b00001011; break; case 15: - PORTD = (PORTD & ~0b01111011) | 0b00011011; + PORTD = (PORTD & ~0b01111011) | 0b01101000; break; case 16: - PORTD = (PORTD & ~0b01111011) | 0b00100011; + PORTD = (PORTD & ~0b01111011) | 0b00000011; break; case 17: - PORTD = (PORTD & ~0b01111011) | 0b00101011; + PORTD = (PORTD & ~0b01111011) | 0b00111011; break; } } From 4b5fba2f7276a3a684b55cfcb4fd6830a81a69d4 Mon Sep 17 00:00:00 2001 From: toinux Date: Fri, 22 Apr 2022 09:41:54 +0200 Subject: [PATCH 25/71] [Keymap] Toinux's crkbd keymap and userspace (#16437) --- keyboards/crkbd/keymaps/toinux/config.h | 122 +++++++++++ keyboards/crkbd/keymaps/toinux/glcdfont.c | 232 ++++++++++++++++++++ keyboards/crkbd/keymaps/toinux/keycodes.h | 49 +++++ keyboards/crkbd/keymaps/toinux/keymap.c | 250 ++++++++++++++++++++++ keyboards/crkbd/keymaps/toinux/oled.c | 112 ++++++++++ keyboards/crkbd/keymaps/toinux/oled.h | 71 ++++++ keyboards/crkbd/keymaps/toinux/rgb.c | 68 ++++++ keyboards/crkbd/keymaps/toinux/rules.mk | 9 + users/toinux/keymap_qwerty_fr.h | 158 ++++++++++++++ 9 files changed, 1071 insertions(+) create mode 100644 keyboards/crkbd/keymaps/toinux/config.h create mode 100644 keyboards/crkbd/keymaps/toinux/glcdfont.c create mode 100644 keyboards/crkbd/keymaps/toinux/keycodes.h create mode 100644 keyboards/crkbd/keymaps/toinux/keymap.c create mode 100644 keyboards/crkbd/keymaps/toinux/oled.c create mode 100644 keyboards/crkbd/keymaps/toinux/oled.h create mode 100644 keyboards/crkbd/keymaps/toinux/rgb.c create mode 100644 keyboards/crkbd/keymaps/toinux/rules.mk create mode 100644 users/toinux/keymap_qwerty_fr.h diff --git a/keyboards/crkbd/keymaps/toinux/config.h b/keyboards/crkbd/keymaps/toinux/config.h new file mode 100644 index 000000000000..e7a18800d8ec --- /dev/null +++ b/keyboards/crkbd/keymaps/toinux/config.h @@ -0,0 +1,122 @@ +/* +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 + +#ifdef RGBLIGHT_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 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGB_MATRIX_ENABLE +# 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 // 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 150 // 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 + +/* Enable the animations you want/need. You may need to enable only a small number of these because * + * they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */ +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +// # define ENABLE_RGB_MATRIX_ALPHAS_MODS +// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +// # define ENABLE_RGB_MATRIX_BREATHING +// # define ENABLE_RGB_MATRIX_BAND_SAT +// # define ENABLE_RGB_MATRIX_BAND_VAL +// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +// # define ENABLE_RGB_MATRIX_CYCLE_ALL +// # define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +// # define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +// # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +// # define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +// # define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +// # define ENABLE_RGB_MATRIX_DUAL_BEACON +// # define ENABLE_RGB_MATRIX_RAINBOW_BEACON +// # define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +// # define ENABLE_RGB_MATRIX_RAINDROPS +// # define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// # define ENABLE_RGB_MATRIX_HUE_BREATHING +// # define ENABLE_RGB_MATRIX_HUE_PENDULUM +// # define ENABLE_RGB_MATRIX_HUE_WAVE +// # define ENABLE_RGB_MATRIX_PIXEL_RAIN +// # define ENABLE_RGB_MATRIX_PIXEL_FLOW +// # define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +// # define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +// # define ENABLE_RGB_MATRIX_MULTISPLASH +// # define ENABLE_RGB_MATRIX_SOLID_SPLASH +// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif + +#define OLED_FONT_H "keyboards/crkbd/keymaps/toinux/glcdfont.c" + +#define SPLIT_LAYER_STATE_ENABLE +// #define SPLIT_LED_STATE_ENABLE + +#define LAYER_STATE_16BIT diff --git a/keyboards/crkbd/keymaps/toinux/glcdfont.c b/keyboards/crkbd/keymaps/toinux/glcdfont.c new file mode 100644 index 000000000000..74cce5a95274 --- /dev/null +++ b/keyboards/crkbd/keymaps/toinux/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 = { + 0x24, 0x7E, 0x24, 0x24, 0x7E, 0x24, + 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, 0xD4, 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, + 0x48, 0x54, 0x54, 0x54, 0x28, 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, 0x50, 0x50, 0x50, 0x3C, 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, + 0x83, 0xC3, 0xC3, 0xC3, 0x9B, 0x03, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x36, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x32, 0xE6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFE, + 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, + 0x80, 0x80, 0x80, 0x80, 0x9E, 0x81, + 0x80, 0x9E, 0x80, 0x80, 0x80, 0x80, + 0xFF, 0xEF, 0xD7, 0x0F, 0xDF, 0xDF, + 0xDF, 0xDF, 0x0F, 0xD7, 0xEF, 0xFF, + 0x01, 0x11, 0x29, 0xF1, 0x21, 0x21, + 0x21, 0x21, 0xF1, 0x29, 0x11, 0x01, + 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xEF, + 0xDF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFC, 0x02, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x09, 0x11, + 0x21, 0x41, 0x81, 0x01, 0x01, 0x01, + 0x01, 0x02, 0xFC, 0x00, 0x00, 0x00, + 0x3E, 0xFF, 0xF8, 0xF8, 0xFF, 0x3E, + 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, + 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63, + 0x07, 0x7F, 0x7F, 0x07, 0x7F, 0x7F, + 0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08, + 0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08, + 0x63, 0x7F, 0x7F, 0x63, 0x7F, 0x3E, + 0x1F, 0x3F, 0x63, 0x63, 0x3F, 0x1F, + 0x73, 0x3B, 0x1F, 0x1F, 0x3B, 0x73, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8F, 0x8C, 0x0C, 0x0C, 0x0F, 0x0C, + 0x8C, 0xAC, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 0x83, 0x82, 0x82, 0x9E, 0x88, + 0x84, 0x82, 0x81, 0x80, 0x80, 0x80, + 0xFF, 0xEF, 0xD7, 0xE0, 0xF7, 0xF7, + 0xF7, 0xF7, 0xE0, 0xD7, 0xEF, 0xFF, + 0x00, 0x10, 0x28, 0x1F, 0x08, 0x08, + 0x08, 0x08, 0x1F, 0x28, 0x10, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xEF, + 0xF7, 0xFB, 0xFD, 0xFE, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0xFF, 0xFF, 0xBD, 0x81, 0x81, 0x00, + 0x63, 0x7F, 0x7F, 0x63, 0x7F, 0x3E, + 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x77, + 0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08, + 0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08, + 0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F, + 0x1C, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F, + 0x03, 0x7F, 0x7F, 0x63, 0x7F, 0x1F, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xD9, 0x99, 0x9B, 0x9E, 0x9E, 0x9B, + 0x99, 0xD9, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 0xFC, 0xFD, 0xFD, 0xE1, 0xF7, + 0xFB, 0xFD, 0xFE, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x7F, 0xBF, 0xDF, 0xE1, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x40, 0x3C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x7F, 0xFF, + 0xFF, 0x1F, 0xDF, 0xDF, 0xC3, 0xF7, + 0xEF, 0xDF, 0xBF, 0x7F, 0xFF, 0xFF, + 0xFF, 0x7F, 0x3F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x40, 0x80, + 0x00, 0xE0, 0x20, 0x20, 0x3C, 0x08, + 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, + 0x80, 0x40, 0x3F, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0xE3, 0xE3, 0x7F, 0x00, + 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x07, + 0x1C, 0x3E, 0x77, 0x63, 0x63, 0x63, + 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63, + 0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08, + 0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08, + 0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F, + 0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F, + 0x3E, 0x7F, 0x63, 0x63, 0x63, 0x63, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, +}; diff --git a/keyboards/crkbd/keymaps/toinux/keycodes.h b/keyboards/crkbd/keymaps/toinux/keycodes.h new file mode 100644 index 000000000000..7d812f5c74b3 --- /dev/null +++ b/keyboards/crkbd/keymaps/toinux/keycodes.h @@ -0,0 +1,49 @@ +/* Copyright 2022 toinux + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 crkbd_layers { + _BASE, + _GAMING, + _GAMING2, + _ACCENTS, + _LOWER, + _RAISE, + _FUN, + _NAV, + _MOUSE, + _ADJUST +}; + +#define CTRLSC LCTL_T(KC_ESC) +#define QUORCTL RCTL_T(KC_QUOT) +#define MOSCLN LT(_MOUSE,KC_SCLN) +#define ACCENTS LT(_ACCENTS,KC_RALT) +#define FUN LT(_FUN,KC_SPC) +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define SPCNAV LT(_NAV,KC_SPC) +#define SFTENT MT(MOD_RSFT,KC_ENT) +#define TABLGUI LGUI_T(KC_TAB) +#define BASE DF(_BASE) +#define GAMING DF(_GAMING) +#define GAMING2 MO(_GAMING2) + +#define SC_F1 LSFT(LCTL(KC_F1)) +#define SC_F2 LSFT(LCTL(KC_F2)) +#define SC_F3 LSFT(LCTL(KC_F3)) +#define SC_F4 LSFT(LCTL(KC_F4)) diff --git a/keyboards/crkbd/keymaps/toinux/keymap.c b/keyboards/crkbd/keymaps/toinux/keymap.c new file mode 100644 index 000000000000..ae3de00b79b2 --- /dev/null +++ b/keyboards/crkbd/keymaps/toinux/keymap.c @@ -0,0 +1,250 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2022 @toinux + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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 "users/toinux/keymap_qwerty_fr.h" +#include "keycodes.h" + +#ifdef OLED_ENABLE +#include "oled.h" +#endif + +// TEMPLATE +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | | | | | | | | | | | | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | | | | | | | | | | | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | | | | | | | | | | | | | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | | | | | | | | +// `--------------------------' `--------------------------' + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// Base +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// |Tab/LGui| Q | W | E | R | T | | Y | U | I | O | P | Bksp | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | CtrlSc | A | S | D | F | G | | H | J | K | L | ;/Mous | '/Rctl | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | Shift | Z | X | C | V | B | | N | M | , | . | / | SftEnT | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | LALT | LOWER |Spc/FUN | | Spc/NAV| RAISE |ACCENTS | +// `--------------------------' `--------------------------' + [_BASE] = LAYOUT_split_3x6_3( + TABLGUI, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTRLSC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MOSCLN, QUORCTL, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFTENT, + KC_LALT, LOWER, FUN, SPCNAV, RAISE, ACCENTS + + ), + +// Gaming +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | Esc | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | Ctrl | A | S | D | F | G | | H | J | K | L | ;/Mous | ' | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | Shift | Z | X | C | V | B | | N | M | , | . | / | SftEnT | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | LALT |GAMING2 | Space | | Spc/NAV| RAISE |ACCENTS | +// `--------------------------' `--------------------------' + [_GAMING] = LAYOUT_split_3x6_3( + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MOSCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFTENT, + KC_LALT, GAMING2, KC_SPC, SPCNAV, RAISE, ACCENTS + + ), + +// Gaming 2 +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | Tab | 1 | 2 | 3 | 4 | 5 | | | | | | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | Ctrl | 6 | 7 | 8 | 9 | 0 | | | | | | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | LGui | Base | | Vol- | Vol+ | Mute | | | | | | | | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | | | | | | | | +// `--------------------------' `--------------------------' + [_GAMING2] = LAYOUT_split_3x6_3( + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LCTL, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, BASE, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______ + + ), + +// Accents, see http://marin.jb.free.fr/qwerty-fr/ +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | | â | é | è | ê | € | | û | ù | î | ô | œ | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | à | æ | ë | | « | | » | ü | ï | ö | ° | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | à | | ç | | | | | | | | | | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | | | | | | | | +// `--------------------------' `--------------------------' + [_ACCENTS] = LAYOUT_split_3x6_3( + _______, QF_ACIR, QF_EACU, QF_EGRV, QF_ECIR, QF_EURO, QF_UCIR, QF_UGRV, QF_ICIR, QF_OCIR, QF_OE, _______, + _______, QF_AGRV, QF_AE, QF_EDIA, _______, QF_LDAQ, QF_RDAQ, QF_UDIA, QF_IDIA, QF_ODIA, QF_DEG, _______, + _______, QF_AGRV, _______, QF_CCED, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + + ), + +// Lower +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | SC_F1 | SC_F2 | SC_F3 | SC_F4 | | | | _ | + | { | } | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | Gaming | | Vol- | Vol+ | Mute | | | | | | | | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | | | | | | | | +// `--------------------------' `--------------------------' + [_LOWER] = LAYOUT_split_3x6_3( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, SC_F1, SC_F2, SC_F3, SC_F4, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, GAMING, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______ + + ), + +// Raise +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | | | | | | | | - | = | [ | ] | \ | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | | | | | | | | | | | | | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | | | | | | | | +// `--------------------------' `--------------------------' + [_RAISE] = LAYOUT_split_3x6_3( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______ + + ), + +// Functions and keypad +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | | F1 | F2 | F2 | F4 | | | | 7 | 8 | 9 | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | F5 | F6 | F7 | F8 | | | | 4 | 5 | 6 | - | / | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | F9 | F10 | F11 | F12 | | | | 1 | 2 | 3 | + | * | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | | | | | = | 0 | . | +// `--------------------------' `--------------------------' + [_FUN] = LAYOUT_split_3x6_3( + _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, XXXXXXX, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS, + _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PAST, + _______, _______, _______, KC_PENT, KC_P0, KC_PDOT + + ), + +// Navigation and function keys +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | | F1 | F2 | F2 | F4 | | | | Pg Up | Up | Pg Dn | Ins | Del | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | F5 | F6 | F7 | F8 | | | Home | Left | Down | Right | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | F9 | F10 | F11 | F12 | | | Space | End | | | | | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | | | | | | | | +// `--------------------------' `--------------------------' + [_NAV] = LAYOUT_split_3x6_3( + _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_INS, KC_DEL, + _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, + _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_SPC, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______ + + ), + +// Mouse +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | | | Wh up | Ms up | Wh dn | | | | | | | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | | Ms lft | Ms dn | Ms rgt | | | | btn1 | btn3 | btn2 | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | | | Wh lft | | Wh rgt | | | | | | | | | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | | | | | | | | +// `--------------------------' `--------------------------' + [_MOUSE] = LAYOUT_split_3x6_3( + _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______, + _______, _______, KC_WH_L, _______, KC_WH_R, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + + ), + +// Adjust +// ,-----------------------------------------------------. ,-----------------------------------------------------. +// | Reset | | | | | Print | | Num | Caps | Scroll | | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | On/Off | Hue ↑ | Sat ↑ | Brght ↑| | | | | | | | | | +// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| +// | Cycle | Hue ↓ | Sat ↓ | Brght ↓| | | | | | | | | | +// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' +// | | | | | | | | +// `--------------------------' `--------------------------' + [_ADJUST] = LAYOUT_split_3x6_3( + RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_NLCK, KC_CAPS, KC_SCRL, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______ + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + +#ifdef OLED_ENABLE + if (record->event.pressed) { + set_keylog(keycode, record); + } +#endif // OLED_ENABLE + + switch (keycode) { + case FUN: + if (!host_keyboard_led_state().num_lock) { + tap_code(KC_NUMLOCK); + } + return true; + break; + } + return true; +} + +void keyboard_post_init_user(void) { +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_OFF); +#endif +} diff --git a/keyboards/crkbd/keymaps/toinux/oled.c b/keyboards/crkbd/keymaps/toinux/oled.c new file mode 100644 index 000000000000..df2a693d8d80 --- /dev/null +++ b/keyboards/crkbd/keymaps/toinux/oled.c @@ -0,0 +1,112 @@ +/* Copyright 2022 @toinux + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "keycodes.h" +#include "oled.h" + +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; +} + + +void oled_render_mod_status(void) { + + const uint8_t modifiers = get_mods() | get_oneshot_mods(); + + for (uint8_t i = 0; i < 2; i++) { + oled_set_cursor(9,i); + oled_write_P(gui_icon[(modifiers & MOD_MASK_GUI) ? 1 : 0][i], false); + oled_write_P(ctrl_icon[(modifiers & MOD_MASK_CTRL) ? 1 : 0][i], false); + oled_set_cursor(9,i+2); + oled_write_P(alt_icon[(modifiers & MOD_MASK_ALT) ? 1 : 0][i], false); + oled_write_P(shift_icon[(modifiers & MOD_MASK_SHIFT) ? 1 : 0][i], false); + } + +} + +void oled_render_layer_state(void) { + + char c = 0x9F - get_highest_layer(layer_state|default_layer_state); + + oled_set_cursor(20,0); + oled_write_char(0X00, false); + + oled_set_cursor(20,1); + oled_write_char(c, false); + c += 32; + oled_set_cursor(20,2); + oled_write_char(c, false); + c += 32; + oled_set_cursor(20,3); + oled_write_char(c, false); + +} + +void oled_render_led_state(void) { + // oled_advance_page(false) instead of oled_write_ln_P to not break OLED_TIMEOUT + oled_write_P(PSTR("NUM"), host_keyboard_led_state().num_lock); + oled_advance_page(false); + oled_write_P(PSTR("CAP"), host_keyboard_led_state().caps_lock); + oled_advance_page(false); + oled_write_P(PSTR("SCL"), host_keyboard_led_state().scroll_lock); + oled_advance_page(false); +} + +uint8_t last_row = 0; +uint8_t last_col = 0; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + last_row = record->event.key.row; + last_col = record->event.key.col; +} + +void oled_render_keylog(void) { + oled_write_char(last_row + '0', false); + oled_write_char('x', false); + oled_write_char(last_col + '0', false); +} + +void oled_render_logo(void) { + static const char PROGMEM kpu_logo[][3] = { + {0x82, 0x83, 0}, + {0x80, 0x81, 0}, + {0xa0, 0xa1, 0}, + {0xc0, 0xc1, 0} + }; + for (uint8_t i = 0; i < 4; i++) { + oled_write_ln_P(kpu_logo[i], false); + } + +} + +bool oled_task_user(void) { + if (is_keyboard_master ()) { + oled_render_led_state(); + oled_render_keylog(); + oled_render_mod_status(); + oled_render_layer_state(); + } else { + oled_render_logo(); + oled_scroll_right(); + oled_scroll_set_speed(4); + } + return false; +} diff --git a/keyboards/crkbd/keymaps/toinux/oled.h b/keyboards/crkbd/keymaps/toinux/oled.h new file mode 100644 index 000000000000..30be16e602fb --- /dev/null +++ b/keyboards/crkbd/keymaps/toinux/oled.h @@ -0,0 +1,71 @@ +/* Copyright 2022 @toinux + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +static const char PROGMEM ctrl_icon[2][2][4] = { + { + // off + {0x93, 0x94, 0x95, 0}, + {0xB3, 0xB4, 0xB5, 0}, + }, + { + // on + {0x8F ,0x90, 0x91, 0}, + {0xAF ,0xB0, 0xB1, 0}, + } +}; + +static const char PROGMEM shift_icon[2][2][4] = { + { + // off + {0xD3, 0xD4, 0xB5, 0}, + {0xA8, 0xA9, 0xD5, 0}, + }, + { + // on + {0xCF ,0xD0, 0xB1, 0}, + {0xC8 ,0xC9, 0xD1, 0}, + } +}; + +static const char PROGMEM gui_icon[2][2][4] = { + { + // off + {0x92, 0x8C, 0x8D, 0}, + {0xB2, 0xAC, 0xAD, 0}, + }, + { + // on + {0x8E ,0x8A, 0x8B, 0}, + {0xAE ,0xAA, 0xAB, 0}, + } +}; + +static const char PROGMEM alt_icon[2][2][4] = { + { + // off + {0xB2, 0xCC, 0xCD, 0}, + {0xD2, 0x88, 0x89, 0}, + }, + { + // on + {0xAE ,0xCA, 0xCB, 0}, + {0xCE ,0x86, 0x87, 0}, + } +}; + +void set_keylog(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/crkbd/keymaps/toinux/rgb.c b/keyboards/crkbd/keymaps/toinux/rgb.c new file mode 100644 index 000000000000..2c5de3b0a7b2 --- /dev/null +++ b/keyboards/crkbd/keymaps/toinux/rgb.c @@ -0,0 +1,68 @@ +/* Copyright 2022 @toinux + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "keycodes.h" + +static const char gaming_leds[] = {18, 22, 19, 16}; +static const char gaming2_leds[] = {23, 18, 17, 10, 9, 22, 19, 16, 11, 8}; +static const char nav_leds[] = {38, 43, 44, 46}; +static const char fun_leds[] = {45, 44, 37, 46, 43, 38, 47, 42, 39, 40}; +static const char mouse_leds[] = {11, 16, 17, 19}; + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(26, RGB_RED); + } + switch(get_highest_layer(layer_state|default_layer_state)) { + case _GAMING: + if (is_keyboard_master()) { + for (uint8_t i = 0; i < 4; i++) { + rgb_matrix_set_color(gaming_leds[i], RGB_RED); + } + } + break; + case _GAMING2: + if (is_keyboard_master()) { + for (uint8_t i = 0; i < 10; i++) { + rgb_matrix_set_color(gaming2_leds[i], RGB_GREEN); + } + } + break; + case _NAV: + for (uint8_t i = 0; i < 4; i++) { + rgb_matrix_set_color(nav_leds[i], RGB_BLUE); + } + break; + case _FUN: + for (uint8_t i = 0; i < 10; i++) { + rgb_matrix_set_color(fun_leds[i], RGB_GREEN); + } + break; + case _ADJUST: + rgb_matrix_set_color(6, RGB_RED); + break; + case _MOUSE: + if (is_keyboard_master()) { + for (uint8_t i = 0; i < 4; i++) { + rgb_matrix_set_color(mouse_leds[i], RGB_PURPLE); + } + } + break; + + } +} diff --git a/keyboards/crkbd/keymaps/toinux/rules.mk b/keyboards/crkbd/keymaps/toinux/rules.mk new file mode 100644 index 000000000000..07c98a08f803 --- /dev/null +++ b/keyboards/crkbd/keymaps/toinux/rules.mk @@ -0,0 +1,9 @@ +MOUSEKEY_ENABLE = yes # Mouse keys +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 +LTO_ENABLE = yes +BOOTLOADER = atmel-dfu + +SRC += ./oled.c ./rgb.c diff --git a/users/toinux/keymap_qwerty_fr.h b/users/toinux/keymap_qwerty_fr.h new file mode 100644 index 000000000000..3110ee984fe7 --- /dev/null +++ b/users/toinux/keymap_qwerty_fr.h @@ -0,0 +1,158 @@ +/* Copyright 2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 + +// keymap adapted for http://marin.jb.free.fr/qwerty-fr/ + +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ ¹ │ ² │ ³ │ ê │ € │ ^ │ ŷ │ û │ î │ ô │ – │ ≠ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ â │ é │ è │ ® │ π │ ¥ │ ù │ î │ ò │ œ │ « │ » │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ à │ æ │ ë │ ε │ α │ ÿ │ ü │ ï │ ö │ ¶ │ ´ │ ¦ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ ≤ │ ä │ × │ ç │ ω │ ß │ ñ │ µ │ ¸ │ ° │ ʕ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │   │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define QF_DGRV RALT(KC_GRV) // ` (dead) +#define QF_SUP1 RALT(KC_1) // ¹ +#define QF_SUP2 RALT(KC_2) // ² +#define QF_SUP3 RALT(KC_3) // ³ +#define QF_ECIR RALT(KC_4) // ê +#define QF_EURO RALT(KC_5) // € +#define QF_DCIR RALT(KC_6) // ^ (dead) +#define QF_YCIR RALT(KC_7) // ŷ +#define QF_UCIR RALT(KC_8) // û +#define QF_ICIR RALT(KC_9) // î +#define QF_OCIR RALT(KC_0) // ô +#define QF_DASH RALT(KC_MINUS) // – +#define QF_NEQL RALT(KC_EQUAL) // ≠ +// Row 2 +#define QF_ACIR RALT(KC_Q) // â +#define QF_EACU RALT(KC_W) // é +#define QF_EGRV RALT(KC_E) // è +#define QF_REGD RALT(KC_R) // ® +#define QF_PI RALT(KC_T) // π +#define QF_YEN RALT(KC_Y) // ¥ +#define QF_UGRV RALT(KC_U) // ù +#define QF_IGRV RALT(KC_I) // ì +#define QF_OGRV RALT(KC_O) // ò +#define QF_OE RALT(KC_P) // œ +#define QF_LDAQ RALT(KC_LBRC) // « +#define QF_RDAQ RALT(KC_RBRC) // » +// Row 3 +#define QF_AGRV RALT(KC_A) // à +#define QF_AE RALT(KC_S) // æ +#define QF_EDIA RALT(KC_D) // ë +#define QF_EPSL RALT(KC_F) // ε +#define QF_ALPH RALT(KC_G) // α +#define QF_YDIA RALT(KC_H) // ÿ +#define QF_UDIA RALT(KC_J) // ü +#define QF_IDIA RALT(KC_K) // ï +#define QF_ODIA RALT(KC_L) // ö +#define QF_PILC RALT(KC_SCLN) // ¶ +#define QF_ACUT RALT(KC_QUOT) // ´ (dead) +#define QF_BRKP RALT(KC_BSLS) // ¦ +// Row 4 +#define QF_LTEQ RALT(KC_NUBS) // ≤ +#define QF_ADIA RALT(KC_Z) // ä +#define QF_MUL RALT(KC_X) // × +#define QF_CCED RALT(KC_C) // ç +#define QF_OMEG RALT(KC_V) // ω +#define QF_SS RALT(KC_B) // ß +#define QF_NTIL RALT(KC_N) // ñ +#define QF_MICR RALT(KC_M) // µ +#define QF_CEDL RALT(KC_COMM) // ¸ (dead) +#define QF_DEG RALT(KC_DOT) // ° +#define QF_VOPH RALT(KC_SLSH) // ʕ +// Row 5 +#define QF_NBSP RALT(KC_SPC) //   (non-breaking space) + + +/* Shift+AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │ ¡ │ ˝ │ ¯ │ Ê │ £ │ ˇ │ Ŷ │ Û │ Î │ Ô │ — │ ± │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │  │ É │ È │ © │ Π │ ¤ │ Ù │ Ì │ Ò │ Œ │ “ │ ” │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ À │ Æ │ Ë │ Δ │ β │ Ÿ │ Ü │ Ï │ ö │ § │ ¨ │ ø │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ ≥ │ Ä │ ÷ │ Ç │ Ω │ þ │ Ñ │ Σ │ ˛ │ ˚ │ ¿ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │   │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define QF_DTIL S(RALT(KC_GRV)) // ~ (dead) +#define QF_IEXL S(RALT(KC_1)) // ¡ +#define QF_DACU S(RALT(KC_2)) // ˝ (dead) +#define QF_MACR S(RALT(KC_3)) // ¯ (dead) +#define QF_ECIU S(RALT(KC_4)) // Ê +#define QF_PND S(RALT(KC_5)) // £ +#define QF_CARN S(RALT(KC_6)) // ˇ (dead) +#define QF_YCIU S(RALT(KC_7)) // Ŷ +#define QF_UCIU S(RALT(KC_8)) // Û +#define QF_ICIU S(RALT(KC_9)) // Î +#define QF_OCIO S(RALT(KC_0)) // Ô +#define QF_NDSH S(RALT(KC_MINUS)) // — +#define QF_PLMN S(RALT(KC_EQUAL)) // ± +// Row 2 +#define QF_ACIU S(RALT(KC_Q)) //  +#define QF_ECUU S(RALT(KC_W)) // É +#define QF_EGRU S(RALT(KC_E)) // È +#define QF_COPY S(RALT(KC_R)) // © +#define QF_PIU S(RALT(KC_T)) // Π +#define QF_CURR S(RALT(KC_Y)) // ¤ +#define QF_UGRU S(RALT(KC_U)) // Ù +#define QF_IGRU S(RALT(KC_I)) // Ì +#define QF_OGRU S(RALT(KC_O)) // Ò +#define QF_OEU S(RALT(KC_P)) // Œ +#define QF_LDQU S(RALT(KC_LBRC)) // “ +#define QF_RDQU S(RALT(KC_RBRC)) // ” +// Row 3 +#define QF_AGRU S(RALT(KC_A)) // À +#define QF_AEU S(RALT(KC_S)) // Æ +#define QF_EDIU S(RALT(KC_D)) // Ë +#define QF_DELT S(RALT(KC_F)) // Δ +#define QF_BETA S(RALT(KC_G)) // β +#define QF_YDIU S(RALT(KC_H)) // Ÿ +#define QF_UDIU S(RALT(KC_J)) // Ü +#define QF_IDIU S(RALT(KC_K)) // Ï +#define QF_ODIU S(RALT(KC_L)) // Ö +#define QF_SECT S(RALT(KC_SCLN)) // § +#define QF_DIAE S(RALT(KC_QUOT)) // ¨ (dead) +#define QF_OSTR S(RALT(KC_BSLS)) // ø +// Row 4 +#define QF_GTEQ S(RALT(KC_NUBS)) // ≥ +#define QF_ADIU S(RALT(KC_Z)) // Ä +#define QF_DIV S(RALT(KC_X)) // ÷ +#define QF_CCDU S(RALT(KC_C)) // Ç +#define QF_OMEU S(RALT(KC_V)) // Ω +#define QF_THRN S(RALT(KC_B)) // þ +#define QF_NTIU S(RALT(KC_N)) // Ñ +#define QF_SIGM S(RALT(KC_M)) // Σ +#define QF_OGON S(RALT(KC_COMM)) // ˛ (dead) +#define QF_RNGA S(RALT(KC_DOT)) // ˚ (dead) +#define QF_IQUE S(RALT(KC_SLSH)) // ¿ From c5edf80b4d183a74817ed0eef0ee0152ead2cf05 Mon Sep 17 00:00:00 2001 From: "E.Iosifidis" Date: Fri, 22 Apr 2022 10:55:25 +0300 Subject: [PATCH 26/71] [Keymap] Addition of new keymap for the anavi macropad8 keyboard (#16910) * Creation of Visual Studio Code keymap * Add files via upload --- .../anavi/macropad8/keymaps/vscode/config.h | 19 ++++ .../anavi/macropad8/keymaps/vscode/keymap.c | 103 ++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 keyboards/anavi/macropad8/keymaps/vscode/config.h create mode 100644 keyboards/anavi/macropad8/keymaps/vscode/keymap.c diff --git a/keyboards/anavi/macropad8/keymaps/vscode/config.h b/keyboards/anavi/macropad8/keymaps/vscode/config.h new file mode 100644 index 000000000000..dd687cad58f3 --- /dev/null +++ b/keyboards/anavi/macropad8/keymaps/vscode/config.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 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 LAYER_STATE_8BIT diff --git a/keyboards/anavi/macropad8/keymaps/vscode/keymap.c b/keyboards/anavi/macropad8/keymaps/vscode/keymap.c new file mode 100644 index 000000000000..be6ac07f5848 --- /dev/null +++ b/keyboards/anavi/macropad8/keymaps/vscode/keymap.c @@ -0,0 +1,103 @@ + /* Copyright 2022 Efthimis Iosifidis + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { + _BASIC, + _FN, +}; + + +#define KC_X0 LT(_FN, KC_ESC) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* _BASIC Layer + * ,-------------------------------------. + * | Toggle | Toggle | | | + * | Block | Line | Undo | Redo | + * | Comment | Comment | | | + * |---------+---------+--------+---------+ + * | | | | TO | + * | Cut | Copy | Paste | _FN | + * | | | | | + * `-------------------------------------' + */ + [_BASIC] = LAYOUT_ortho_2x4( + RCS(KC_A), C(KC_SLASH), C(KC_Z), C(KC_Y), + C(KC_X), C(KC_C), C(KC_V), TO(_FN) + ), +/* _FN Layer + * ,--------------------------------------------. + * | RGB | RGB | RGB | RGB | + * | Toggle | Mode | Mode | Snake | + * | | Forward | Reverse | Mode | + * |-----------+-----------+-----------+---------+ + * | | Cycle | Toggle | TO | + * | BackLight | BackLight | BackLight | _BASIC | + * | Toggle | Levels | | | + * `--------------------------------------------' + */ + [_FN] = LAYOUT_ortho_2x4( + RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN, + BL_TOGG, BL_STEP, BL_BRTG, TO(_BASIC) + ) +}; + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand +} + + +bool oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false); + oled_write_P(PSTR("Active layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _BASIC: + oled_write_ln_P(PSTR("Basic"), false); + break; + case _FN: + oled_write_ln_P(PSTR("FN"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("N/A"), false); + } + + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("Num Lock: "), false); + oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Caps Lock: "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Backlit: "), false); + oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false); +#ifdef RGBLIGHT_ENABLE + static char rgbStatusLine1[26] = {0}; + snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode()); + oled_write_ln(rgbStatusLine1, false); + static char rgbStatusLine2[26] = {0}; + snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()); + oled_write_ln(rgbStatusLine2, false); +#endif + return false; +} +#endif From 7c245d3741867f2b7ebc5a13af32468cc8ca2362 Mon Sep 17 00:00:00 2001 From: DL Ford Date: Fri, 22 Apr 2022 01:16:33 -0700 Subject: [PATCH 27/71] Add Dactyl_Manuform/3x5_3 (#16238) --- .../handwired/dactyl_manuform/3x5_3/3x5_3.c | 66 +++ .../handwired/dactyl_manuform/3x5_3/3x5_3.h | 37 ++ .../handwired/dactyl_manuform/3x5_3/config.h | 56 +++ .../handwired/dactyl_manuform/3x5_3/info.json | 48 +++ .../3x5_3/keymaps/dlford/config.h | 106 +++++ .../3x5_3/keymaps/dlford/features/caps_word.c | 76 ++++ .../3x5_3/keymaps/dlford/features/caps_word.h | 36 ++ .../3x5_3/keymaps/dlford/keymap.c | 385 ++++++++++++++++++ .../3x5_3/keymaps/dlford/rules.mk | 17 + .../handwired/dactyl_manuform/3x5_3/rules.mk | 25 ++ .../dactyl_manuform/dactyl_manuform.h | 2 + keyboards/handwired/dactyl_manuform/readme.md | 33 +- 12 files changed, 877 insertions(+), 10 deletions(-) create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/config.h create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/info.json create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/rules.mk diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c b/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c new file mode 100644 index 000000000000..2bd1aefadb5c --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c @@ -0,0 +1,66 @@ +/* +Copyright 2021 @dlford + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "3x5_3.h" + +#ifdef RGB_MATRIX_ENABLE + +// LED Layout +// Columns +// 0 1 2 3 4 5 6 7 8 9 10 11 +// Physical (Center: 133) +// 20 41 61 81 102 122 143 163 183 204 224 244 +// Rows Physical (Center: 54) +// 17 12 11 06 05 23 24 29 30 35 0 21 +// 16 13 10 07 04 22 25 28 31 34 1 43 +// 15 14 09 08 03 21 26 27 32 33 2 64 +// 02 01 00 18 19 20 3 85 + +led_config_t g_led_config = { { + // Key matrix to LED index + // Left 1-18 + {17, 12, 11, 6, 5}, + {16, 13, 10, 7, 4}, + {15, 14, 9, 8, 3}, + {NO_LED, NO_LED, 2, 1, 0}, + // Right 1-18 + {23, 24, 29, 30, 35}, + {22, 25, 28, 31, 34}, + {21, 26, 27, 32, 33}, + {18, 19, 20, NO_LED, NO_LED}, +}, { + // LED index to physical position + // Left 1-18 + {122,85},{102,85},{81,85},{102,64},{102,43},{102,21}, + {81,21},{81,43},{81,64},{61,64},{61,43},{61,21}, + {41,21},{41,43},{41,64},{20,64},{20,43},{20,21}, + // Right 1-18 + {143,85},{163,85},{183,85},{163,64},{163,43},{163,21}, + {183,21},{183,43},{183,64},{204,64},{204,43},{204,21}, + {224,21},{224,43},{224,64},{244,64},{244,43},{244,21} +}, { + // LED index to flag + // Left 1-18 + 4,4,4,4,4,4, + 4,4,4,4,4,4, + 4,4,4,4,4,4, + // Right 1-18 + 4,4,4,4,4,4, + 4,4,4,4,4,4, + 4,4,4,4,4,4 +} }; + +#endif diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h b/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h new file mode 100644 index 000000000000..f9a843d7d69a --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h @@ -0,0 +1,37 @@ +/* +Copyright 2021 @dlford + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 "dactyl_manuform.h" + +#define LAYOUT_split_3x5_3(\ + L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ + L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ + L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ + L32, L33, L34, R30, R31, R32 \ + ) \ + { \ + { L00, L01, L02, L03, L04 }, \ + { L10, L11, L12, L13, L14 }, \ + { L20, L21, L22, L23, L24 }, \ + { KC_NO, KC_NO, L32, L33, L34 }, \ + \ + { R00, R01, R02, R03, R04 }, \ + { R10, R11, R12, R13, R14 }, \ + { R20, R21, R22, R23, R24 }, \ + { R30, R31, R32, KC_NO, KC_NO }, \ +} diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/config.h b/keyboards/handwired/dactyl_manuform/3x5_3/config.h new file mode 100644 index 000000000000..e417599a40ff --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/config.h @@ -0,0 +1,56 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2021 @dlford +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 PRODUCT_ID 0x3536 +#define DEVICE_VER 0x0003 +#ifdef MANUFACTURER + #undef MANUFACTURER +#endif +#define MANUFACTURER DLFord +#define PRODUCT Dactyl Minidox (3x5+3) + +// Communication +// #define USE_I2C +#define USE_SERIAL + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 5 + +// wiring of each half +#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_ROW_PINS { B1, B3, B2, B6 } + +#define DIODE_DIRECTION ROW2COL + +// WS2812 RGB LED strip input and number of LEDs +#define RGB_DI_PIN D3 +#define DRIVER_LED_TOTAL 36 +#define RGB_MATRIX_SPLIT { 18, 18 } +#define RGB_MATRIX_CENTER { 133, 54 } + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#undef LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#undef LOCKING_RESYNC_ENABLE + +/* Enables This makes it easier for fast typists to use dual-function keys */ +#undef PERMISSIVE_HOLD diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/info.json b/keyboards/handwired/dactyl_manuform/3x5_3/info.json new file mode 100644 index 000000000000..47642262212f --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/info.json @@ -0,0 +1,48 @@ +{ + "keyboard_name": "Dactyl Manuform 3x5_3", + "url": "https://www.dlford.io/keyboard-build-guide-per-key-rgb-leds/", + "maintainer": "dlford", + "layouts": { + "LAYOUT": { + "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": 2, "y": 3 }, + { "x": 3, "y": 3 }, + { "x": 4, "y": 3 }, + + { "x": 10, "y": 0 }, + { "x": 11, "y": 0 }, + { "x": 12, "y": 0 }, + { "x": 13, "y": 0 }, + { "x": 14, "y": 0 }, + { "x": 10, "y": 1 }, + { "x": 11, "y": 1 }, + { "x": 12, "y": 1 }, + { "x": 13, "y": 1 }, + { "x": 14, "y": 1 }, + { "x": 10, "y": 2 }, + { "x": 11, "y": 2 }, + { "x": 12, "y": 2 }, + { "x": 13, "y": 2 }, + { "x": 14, "y": 2 }, + { "x": 10, "y": 3 }, + { "x": 11, "y": 3 }, + { "x": 12, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h new file mode 100644 index 000000000000..fac935395961 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h @@ -0,0 +1,106 @@ +/* +Copyright 2012 Jun Wako +Copyright 2021 @dlford +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 // ./util/docker_build.sh crkbd:dlford:dfu-split-[left|right] (or avrdude-split[left|right]) + +#define TAPPING_TOGGLE 2 // number of taps to toggle TT +#define TAPPING_TERM_PER_KEY // milliseconds from tap to hold for mod tap per key +#define IGNORE_MOD_TAP_INTERRUPT // ignore hold mod if another tap occurs within tapping term +#define PERMISSIVE_HOLD_PER_KEY // activate mod top hold earlier if another key is pressed AND released per key +#define TAPPING_FORCE_HOLD_PER_KEY // disable double tap hold key repeat per key +#undef MOUSEKEY_INTERVAL +#undef MOUSEKEY_DELAY +#undef MOUSEKEY_TIME_TO_MAX +#undef MOUSEKEY_MAX_SPEED +#undef MOUSEKEY_WHEEL_DELAY +#define MK_KINETIC_SPEED +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 35 +#define MOUSEKEY_MOVE_DELTA 5 +#define MOUSEKEY_INITIAL_SPEED 1 +#define MOUSEKEY_DECELERATED_SPEED 10 +#define MOUSEKEY_BASE_SPEED 1200 +#define MOUSEKEY_ACCELERATED_SPEED 4800 + +#ifdef RGB_MATRIX_ENABLE +// # define RGB_DISABLE_TIMEOUT 300000 // number of milliseconds to wait until disabling effects +// # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# 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 150 // 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 + +// Enable animations +// # define ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue speed is hue for secondary hue +// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom speed controls how much gradient changes +// # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right speed controls how much gradient changes +// # define ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +// # define ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +// # define ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation +// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +// # define ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +// # define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +// # define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +// # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right +// # define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +// # define ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +// # define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +// # define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard +// # define ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue +// # define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +// # define ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time then shifts back +// # define ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right then back to the left +# define ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right +// # define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Required for the following two effects +// # define ENABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! +// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +// # define RGB_MATRIX_KEYPRESSES // reacts to keypresses, required for the remaining effects +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue pulses keys hit to shifted hue then fades to current hue +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +// # define ENABLE_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 ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +// # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +// # define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out +#endif + +// Features I don't want, remove to save space +// #define NO_ACTION_ONESHOT // Used by caps word +#define NO_ACTION_FUNCTION +#define NO_ACTION_MACRO +#define NO_USB_STARTUP_CHECK diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c new file mode 100644 index 000000000000..ee295c730508 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c @@ -0,0 +1,76 @@ +// Copyright 2021 Google LLC +// +// 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 +// +// https://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. +// +// +// For full documentation, see +// https://getreuer.info/posts/keyboards/caps-word + +#include "caps_word.h" +bool caps_word_enabled = false; + +bool process_caps_word(uint16_t keycode, keyrecord_t* record) { + static bool shifted = false; + + if (!caps_word_enabled) { + // Pressing both shift keys at the same time enables caps word. + if (((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) + == MOD_MASK_SHIFT) { + clear_mods(); + clear_oneshot_mods(); + shifted = false; + caps_word_enabled = true; + return false; + } + return true; + } + + if (!record->event.pressed) { return true; } + + if (!((get_mods() | get_oneshot_mods()) & ~MOD_MASK_SHIFT)) { + switch (keycode) { + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + // Earlier return if this has not been considered tapped yet. + if (record->tap.count == 0) { return true; } + // Get the base tapping keycode of a mod- or layer-tap key. + keycode &= 0xff; + } + + switch (keycode) { + // Letter keys should be shifted. + case KC_A ... KC_Z: + if (!shifted) { register_code(KC_LSFT); } + shifted = true; + return true; + + // Keycodes that continue caps word but shouldn't get shifted. + case KC_1 ... KC_0: + case KC_BSPC: + case KC_MINS: + case KC_UNDS: + if (shifted) { unregister_code(KC_LSFT); } + shifted = false; + return true; + + // Any other keycode disables caps word. + } + } + + // Disable caps word. + caps_word_enabled = false; + if (shifted) { unregister_code(KC_LSFT); } + shifted = false; + return true; +} + diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h new file mode 100644 index 000000000000..a609a325443b --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h @@ -0,0 +1,36 @@ +// Copyright 2021 Google LLC +// +// 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 +// +// https://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. +// +// +// Caps Word, activated by pressing both shift keys at the same time. +// +// This library implements "Caps Word", which is like conventional Caps Lock, +// but automatically disables itself at the end of the word. This is useful for +// typing all-caps identifiers like `MOD_MASK_ALT`. +// +// Caps Word is activated by pressing the left and right shift keys at the same +// time. This way you don't need a dedicated key for using Caps Word. I've +// tested that this works as expected with one-shot mods and Space Cadet Shift. +// If your shift keys are mod-taps, activate Caps Word by holding both shift +// mod-tap keys until the tapping term, release them, then begin typing. +// +// For full documentation, see +// https://getreuer.info/posts/keyboards/caps-word + +#pragma once + +#include QMK_KEYBOARD_H + +bool process_caps_word(uint16_t keycode, keyrecord_t* record); +extern bool caps_word_enabled; diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c new file mode 100644 index 000000000000..b403c2ce3b25 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c @@ -0,0 +1,385 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2021 @dlford + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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 "features/caps_word.h" + +// Layers +enum layers { + _QWERTY = 0, + _COLEMAK, + _NAVIGATION, + _SPECIAL, + _MOUSE, +}; + +static uint16_t default_animation = RGB_MATRIX_CYCLE_SPIRAL; +static int default_speed = 50; +static uint16_t secondary_animation = RGB_MATRIX_HUE_WAVE; +static int secondary_speed = 150; +static bool is_macro_recording = false; + +// Init +void keyboard_post_init_user(void) { + rgb_matrix_sethsv_noeeprom(HSV_PURPLE); + rgb_matrix_mode_noeeprom(default_animation); + rgb_matrix_set_speed_noeeprom(default_speed); +} + +// Permissive hold per key +bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LT(3, KC_SPC): + return true; // Enable permissive hold + case LT(2, KC_TAB): + return true; + default: + return false; // Disable permissive hold + } +} + +// Tapping force hold per key +bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LT(3, KC_SPC): + return true; // Enable force hold + case LT(2, KC_TAB): + return true; + default: + return false; // Disable force hold + } +} + +// Tapping term per key +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case C_S_T(KC_E): + case C_S_T(KC_I): + return 215; + default: + return 190; + } +} + +// RGB timeout +#define RGB_CUSTOM_TIMEOUT 5 // in minutes +static uint16_t idle_timer = 0; +static uint8_t halfmin_counter = 0; +static bool led_on = true; +void matrix_scan_user(void) { + if (is_keyboard_master()) { + // idle_timer needs to be set one time + if (idle_timer == 0) idle_timer = timer_read(); + + if (led_on && timer_elapsed(idle_timer) > 30000) { + halfmin_counter++; + idle_timer = timer_read(); + } + + if (led_on && halfmin_counter >= RGB_CUSTOM_TIMEOUT * 2) { + rgb_matrix_disable_noeeprom(); + led_on = false; + halfmin_counter = 0; + } + } +} + +// Macros +enum macro_events { + M_KEYMAP = SAFE_RANGE, + M_COMM, + M_DOT, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // RGB resume + if (is_keyboard_master()) { + if (record->event.pressed) { + if (led_on == false) { + rgb_matrix_enable_noeeprom(); + led_on = true; + } + idle_timer = timer_read(); + halfmin_counter = 0; + } + } + + // Caps word + if (!process_caps_word(keycode, record)) { return false; } + + // Macros + const uint8_t mods = get_mods(); + static uint8_t backstepCounter = 0; + static bool keyDown = false; + switch (keycode) { + case M_KEYMAP: + if (record->event.pressed) { + SEND_STRING("https://raw.githubusercontent.com/dlford/qmk_firmware/master/keyboards/crkbd/keymaps/dlford/legends.svg"); + } + return false; + case M_COMM: + if (record->event.pressed) { + if ((mods & MOD_BIT(KC_LCTL)) && (mods & MOD_BIT(KC_LSFT) && (mods & MOD_BIT(KC_LALT)))) { + backstepCounter = 1; + clear_mods(); + SEND_STRING("<>"); + } else if ((mods & MOD_BIT(KC_LCTL)) && (mods & MOD_BIT(KC_LALT))) { + backstepCounter = 1; + clear_mods(); + SEND_STRING("()"); + } else if ((mods & MOD_BIT(KC_LCTL)) && (mods & MOD_BIT(KC_LSFT))) { + backstepCounter = 2; + clear_mods(); + SEND_STRING("{};"); + } else if (mods & MOD_BIT(KC_LCTL)) { + backstepCounter = 1; + clear_mods(); + SEND_STRING("{}"); + } else if ((mods & MOD_BIT(KC_LALT)) && (mods & MOD_BIT(KC_LSFT))) { + backstepCounter = 2; + clear_mods(); + SEND_STRING("[];"); + } else if (mods & MOD_BIT(KC_LALT)) { + backstepCounter = 1; + clear_mods(); + SEND_STRING("[]"); + } else { + keyDown = true; + register_code(KC_COMM); + return true; + } + if (backstepCounter) { + while (backstepCounter > 0) { + tap_code(KC_LEFT); + backstepCounter--; + } + set_mods(mods); + } + } else { + if (keyDown) { + unregister_code(KC_COMM); + keyDown = false; + return true; + } + } + return false; + case M_DOT: + if (record->event.pressed) { + if (mods & MOD_BIT(KC_LCTL)) { + clear_mods(); + SEND_STRING("=>"); + } else if (mods & MOD_BIT(KC_LALT)) { + clear_mods(); + SEND_STRING("->"); + } else { + keyDown = true; + register_code(KC_DOT); + return true; + } + } else { + if (keyDown) { + unregister_code(KC_DOT); + keyDown = false; + return true; + } + } + set_mods(mods); + return false; + } + + return true; +} + +// RGB Layers (Enable animations in config.h) +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _SPECIAL: + rgb_matrix_sethsv_noeeprom(HSV_ORANGE); + rgb_matrix_set_speed_noeeprom(secondary_speed); + rgb_matrix_mode_noeeprom(secondary_animation); + break; + case _NAVIGATION: + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + rgb_matrix_set_speed_noeeprom(secondary_speed); + rgb_matrix_mode_noeeprom(secondary_animation); + break; + case _MOUSE: + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + rgb_matrix_set_speed_noeeprom(secondary_speed); + rgb_matrix_mode_noeeprom(secondary_animation); + break; + default: + rgb_matrix_sethsv_noeeprom(HSV_PURPLE); + rgb_matrix_set_speed_noeeprom(default_speed); + rgb_matrix_mode_noeeprom(default_animation); + break; + } + return state; +} + +// Dynamic Macro Recording Backlight +void dynamic_macro_record_start_user(void) { + is_macro_recording = true; +} + +void dynamic_macro_record_end_user(int8_t direction) { + is_macro_recording = false; +} + +// Indicators +void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock || caps_word_enabled) { + // Left master + rgb_matrix_set_color(3, RGB_RED); + // Right master + rgb_matrix_set_color(21, RGB_RED); + } + if (is_macro_recording) { + // Left master + rgb_matrix_set_color(4, RGB_ORANGE); + // Right master + rgb_matrix_set_color(22, RGB_ORANGE); + } + if (default_layer_state - 1 == _COLEMAK) { + // Left master + rgb_matrix_set_color(5, RGB_GREEN); + // Right master + rgb_matrix_set_color(23, RGB_GREEN); + } +} + +// Quantum keys / Abbreviations +enum custom_keycodes { + VVV = KC_TRNS, + XXX = KC_NO, + CSA_Q = MEH_T(KC_Q), + CSA_F1 = MEH_T(KC_F1), + CSA_1 = MEH_T(KC_1), + CA_W = LCA_T(KC_W), + CA_F2 = LCA_T(KC_F2), + CA_2 = LCA_T(KC_2), + CS_E = C_S_T(KC_E), + CS_F = C_S_T(KC_F), + CS_I = C_S_T(KC_I), + CS_U = C_S_T(KC_U), + CS_F3 = C_S_T(KC_F3), + CS_3 = C_S_T(KC_3), + CS_F8 = C_S_T(KC_F8), + CS_8 = C_S_T(KC_8), + CA_O = LCA_T(KC_O), + CA_Y = LCA_T(KC_Y), + CA_F9 = LCA_T(KC_F9), + CA_9 = LCA_T(KC_9), + CSA_P = MEH_T(KC_P), + CSA_SCLN = MEH_T(KC_SCLN), + CSA_F10 = MEH_T(KC_F10), + CSA_0 = MEH_T(KC_0), + LGUI_A = LGUI_T(KC_A), + LGUI_FIND = LGUI_T(KC_FIND), + LGUI_GRV = LGUI_T(KC_GRV), + LALT_S = LALT_T(KC_S), + LALT_R = LALT_T(KC_R), + LALT_HOME = LALT_T(KC_HOME), + LCTL_D = LCTL_T(KC_D), + LCTL_S = LCTL_T(KC_S), + LCTL_PGUP = LCTL_T(KC_PGUP), + LCTL_LBRC = LCTL_T(KC_LBRC), + LSFT_F = LSFT_T(KC_F), + _LSFT_T = LSFT_T(KC_T), + LSFT_PGDN = LSFT_T(KC_PGDN), + LSFT_RBRC = LSFT_T(KC_RBRC), + RSFT_J = RSFT_T(KC_J), + RSFT_N = RSFT_T(KC_N), + RSFT_DOWN = RSFT_T(KC_DOWN), + RSFT_MINS = RSFT_T(KC_MINS), + RCTL_K = RCTL_T(KC_K), + RCTL_E = RCTL_T(KC_E), + RCTL_UP = RCTL_T(KC_UP), + RCTL_EQL = RCTL_T(KC_EQL), + RALT_L = RALT_T(KC_L), + RALT_I = RALT_T(KC_I), + RALT_RGHT = RALT_T(KC_RGHT), + RALT_BSLS = RALT_T(KC_BSLS), + RGUI_SCLN = RGUI_T(KC_SCLN), + RGUI_O = RGUI_T(KC_O), + RGUI_F11 = RGUI_T(KC_F11), + RGUI_QUOT = RGUI_T(KC_QUOT), + LT3_SPC = LT(3,KC_SPC), + LT2_TAB = LT(2,KC_TAB), + DF_QWERTY = DF(0), + DF_COLEMAK = DF(1), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + CSA_Q, CA_W, CS_E, KC_R, KC_T, KC_Y, KC_U, CS_I, CA_O, CSA_P, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + LGUI_A, LALT_S, LCTL_D, LSFT_F, KC_G, KC_H, RSFT_J, RCTL_K, RALT_L, RGUI_SCLN, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, M_COMM, M_DOT, KC_SLSH, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, LT3_SPC, KC_BSPC, KC_DEL, LT2_TAB, KC_ENT + // |--------+--------+--------| |--------+--------+--------| + ), + [_COLEMAK] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + CSA_Q, CA_W, CS_F, KC_P, KC_G, KC_J, KC_L, CS_U, CA_Y, CSA_SCLN, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + LGUI_A, LALT_R, LCTL_S, _LSFT_T, KC_D, KC_H, RSFT_N, RCTL_E, RALT_I, RGUI_O, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, M_COMM, M_DOT, KC_SLSH, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, LT3_SPC, KC_BSPC, KC_DEL, LT2_TAB, KC_ENT + // |--------+--------+--------| |--------+--------+--------| + ), + [_NAVIGATION] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + CSA_F1, CA_F2, CS_F3, KC_F4, KC_F5, KC_F6, KC_F7, CS_F8, CA_F9, CSA_F10, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + LGUI_FIND,LALT_HOME,LCTL_PGUP,LSFT_PGDN,KC_END, KC_LEFT,RSFT_DOWN,RCTL_UP,RALT_RGHT,RGUI_F11, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + DF_QWERTY,DF_COLEMAK,KC_VOLD, KC_VOLU, RESET, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, KC_F12, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + VVV, TG(4), VVV, VVV, VVV, VVV + // |--------+--------+--------| |--------+--------+--------| + ), + [_SPECIAL] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + CSA_1, CA_2, CS_3, KC_4, KC_5, KC_6, KC_7, CS_8, CA_9, CSA_0, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + LGUI_GRV,KC_LALT,LCTL_LBRC,LSFT_RBRC,KC_LPRN, KC_RPRN,RSFT_MINS,RCTL_EQL,RALT_BSLS,RGUI_QUOT, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_TILD, KC_CAPS, KC_LCBR, KC_RCBR,TG(_MOUSE), EEP_RST, KC_UNDS, KC_PLUS, KC_PIPE, KC_DQUO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + VVV, VVV, VVV, VVV, TG(4), VVV + // |--------+--------+--------| |--------+--------+--------| + ), + [_MOUSE] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, DM_REC1, KC_WSTP, KC_ACL2, KC_ACL1, KC_ACL0, KC_WFWD, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, DM_PLY1, KC_WREF, KC_BTN1, KC_BTN2, KC_BTN3, KC_WBAK, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + M_KEYMAP,KC_BTN3, KC_BTN2, KC_BTN1, XXX, XXX, XXX, XXX, XXX, XXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + VVV, TG(4), VVV, VVV, TG(4), VVV + // |--------+--------+--------| |--------+--------+--------| + ), +}; diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk new file mode 100644 index 000000000000..f40ace960604 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk @@ -0,0 +1,17 @@ +# Includes +SRC += features/caps_word.c + +# Build Options +# change yes to no to disable +# +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +DYNAMIC_MACRO_ENABLE = yes # Create macros on the fly +RGB_MATRIX_DRIVER = WS2812 +INDICATOR_LIGHTS = yes # Enable indicator lights for caps lock, etc. +# TAP_DANCE_ENABLE = yes # Send different keycodes if tapped multiple times +# KEY_OVERRIDE_ENABLE = yes # Override key combos +# COMBO_ENABLE = yes # Custom key combos + +LTO_ENABLE = yes +RGBLIGHT_SUPPORTED = yes +RGB_MATRIX_SUPPORTED = yes diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk b/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk new file mode 100644 index 000000000000..12812870e37d --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk @@ -0,0 +1,25 @@ +# Build Options +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = yes # Audio output + +RGB_MATRIX_ENABLE = yes # Enable WS2812 RGB matrix +RGB_MATRIX_DRIVER = WS2812 +SPLIT_KEYBOARD = yes + +RGBLIGHT_SUPPORTED = yes +RGB_MATRIX_SUPPORTED = yes + +LAYOUTS = split_3x5_3 diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h index d304814d7d83..c339370f8b4f 100644 --- a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h +++ b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h @@ -22,6 +22,8 @@ # include "6x6_kinesis.h" #elif defined(KEYBOARD_handwired_dactyl_manuform_6x7) # include "6x7.h" +#elif defined(KEYBOARD_handwired_dactyl_manuform_3x5_3) +# include "3x5_3.h" #elif defined(KEYBOARD_handwired_dactyl_manuform_dmote_62key) # include "62key.h" #endif diff --git a/keyboards/handwired/dactyl_manuform/readme.md b/keyboards/handwired/dactyl_manuform/readme.md index da4ac2ad6855..560562f54429 100644 --- a/keyboards/handwired/dactyl_manuform/readme.md +++ b/keyboards/handwired/dactyl_manuform/readme.md @@ -1,9 +1,8 @@ -Dactyl Manuform (4x5, 5x6, 5x7, 6x6, 6x7) -====== +# Dactyl Manuform (4x5, 5x6, 5x7, 6x6, 6x7) + the [Dactyl-Manuform](https://github.com/tshort/dactyl-keyboard) is a split curved keyboard based on the design of [adereth dactyl](https://github.com/adereth/dactyl-keyboard) and thumb cluster design of the [manuform](https://geekhack.org/index.php?topic=46015.0) keyboard, the hardware is similar to the let's split keyboard. all information needed for making one is in the first link. ![Imgur](https://i.imgur.com/7y0Vbyd.jpg) - ## First Time Setup Download or clone the `qmk_firmware` repo and navigate to its top level directory. Once your build environment is setup, you'll be able to generate the default .hex using: @@ -15,6 +14,7 @@ $ make handwired/dactyl_manuform/YOUR_LAYOUT:YOUR_KEYMAP_NAME ``` example: + ``` $ make handwired/dactyl_manuform/4x5:default ``` @@ -27,21 +27,24 @@ dactyl_manuform_YOUR_LAYOUT_YOUR_KEYMAP_NAME.hex For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/docs/faq_keymap.md) in the main readme.md. - ## Keymaps ### [Keymaps 4x5](/keyboards/handwired/dactyl_manuform/4x5/keymaps/) #### Default + Simple QWERTY layout with 3 Layers. + #### Dvorak ### [Keymaps 5x6](/keyboards/handwired/dactyl_manuform/5x6/keymaps/) #### Default + Just a copy of the Impstyle keymap. Feel free to adjust it. #### Impstyle + A simple QWERTY keymap with 3 Layers. Both sides are connected via serial and the Left ist the master. ### [Keymaps 5x6_5](/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/) @@ -56,32 +59,43 @@ Similar to Default but adds support for the [Via](https://www.caniusevia.com/) k some keys to accomodate that constraint. ### [Keymaps 5x7 aka almost Ergodox](/keyboards/handwired/dactyl_manuform/5x7/keymaps/) + #### Default + Keymap of Loligagger from geekhack. ### [Keymaps 6x6](/keyboards/handwired/dactyl_manuform/6x6/keymaps/) #### Default + Simple QWERTY layout with 3 Layers. ### [Keymaps 6x7](/keyboards/handwired/dactyl_manuform/6x7/keymaps/) #### Default + Simple QWERTY layout with 3 Layers. +### [Keymaps 3x5_3](/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/) + +#### Dlford + +QWERTY/Colemak layout with per key RGB and other features + ## Required Hardware Apart from diodes and key switches for the keyboard matrix in each half, you will need: -* 2 Arduino Pro Micros. You can find these on AliExpress for ≈3.50USD each. -* 2 TRRS sockets and 1 TRRS cable, or 2 TRS sockets and 1 TRS cable +- 2 Arduino Pro Micros. You can find these on AliExpress for ≈3.50USD each. +- 2 TRRS sockets and 1 TRRS cable, or 2 TRS sockets and 1 TRS cable Alternatively, you can use any sort of cable and socket that has at least 3 wires. If you want to use I2C to communicate between halves, you will need a cable with at least 4 wires and 2x 4.7kΩ pull-up resistors ## Optional Hardware + A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`. ## Wiring @@ -114,7 +128,6 @@ the keymaps in here are for the 4x5 layout of the keyboard only. To flash your firmware take a look at: [Flashing Instructions and Bootloader Information](https://docs.qmk.fm/#/flashing) - ## Choosing which board to plug the USB cable into (choosing Master) Because the two boards are identical, the firmware has logic to differentiate the left and right board. @@ -132,6 +145,7 @@ If you always plug the usb cable into the left board, nothing extra is needed as ### Setting the right hand as master If you always plug the usb cable into the right board, add an extra flag to your `config.h` + ``` #define MASTER_RIGHT ``` @@ -146,6 +160,7 @@ half is left handed or right handed. This makes it so that the same firmware file will run on both hands instead of having to flash left and right handed versions of the firmware to each half. To flash the EEPROM file for the left half run: + ``` make handwired/dactyl_promicro:default:dfu-split-left make handwired/dactyl_promicro:default:dfu-split-right @@ -159,9 +174,7 @@ layout and the right half with a Colemak layout using bootmagic's default layout Then if you connect the left half to a computer by USB the keyboard will use QWERTY and Colemak when the right half is connected. - -Notes on Using Pro Micro 3.3V ------------------------------ +## Notes on Using Pro Micro 3.3V Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects the frequency on the 3.3V board. From e70943dd776270634944d8225abd6fd9dcfbe4a1 Mon Sep 17 00:00:00 2001 From: Daniel Weeks <29613475+xanimos@users.noreply.github.com> Date: Fri, 22 Apr 2022 01:19:06 -0700 Subject: [PATCH 28/71] Added massdrop/ctrl:xanimos keymap (#16187) Co-authored-by: xanimos --- .../massdrop/ctrl/keymaps/xanimos/config.h | 132 ++++++ .../ctrl/keymaps/xanimos/config_led.c | 97 +++++ .../massdrop/ctrl/keymaps/xanimos/keymap.c | 410 ++++++++++++++++++ .../massdrop/ctrl/keymaps/xanimos/keymap.h | 129 ++++++ .../massdrop/ctrl/keymaps/xanimos/readme.md | 200 +++++++++ .../massdrop/ctrl/keymaps/xanimos/rules.mk | 14 + 6 files changed, 982 insertions(+) create mode 100644 keyboards/massdrop/ctrl/keymaps/xanimos/config.h create mode 100644 keyboards/massdrop/ctrl/keymaps/xanimos/config_led.c create mode 100644 keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c create mode 100644 keyboards/massdrop/ctrl/keymaps/xanimos/keymap.h create mode 100644 keyboards/massdrop/ctrl/keymaps/xanimos/readme.md create mode 100644 keyboards/massdrop/ctrl/keymaps/xanimos/rules.mk diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/config.h b/keyboards/massdrop/ctrl/keymaps/xanimos/config.h new file mode 100644 index 000000000000..37987340cee8 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/config.h @@ -0,0 +1,132 @@ +/* Copyright 2022 Daniel Weeks (@xanimos) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 MODS_SHIFT (get_mods() & MOD_MASK_SHIFT) +#define MODS_CTRL (get_mods() & MOD_MASK_CTRL) +#define MODS_ALT (get_mods() & MOD_MASK_ALT) + +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) // Key combination that allows the use of magic commands (useful for debugging) + +// #define NO_DEBUG // Disable debugging +// #define NO_PRINT // Disable printing/debugging using hid_listen +// #define NO_ACTION_LAYER // Disable layers +// #define NO_ACTION_TAPPING // Disable tap dance and other tapping features +// #define NO_ACTION_ONESHOT // Disable one-shot modifiers +// #define NO_ACTION_MACRO // Disable old style macro handling: MACRO() & action_get_macro +#define TERMINAL_HELP +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 10 +#define MOUSEKEY_WHEEL_DELAY 0 +#define FORCE_NKRO // NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots. +// #define QMK_KEYS_PER_SCAN 4 // Allows sending more than one key per scan. By default, only one key event gets sent via process_record() per scan. This has little impact on most typing, but if you're doing a lot of chords, or your scan rate is slow to begin with, you can have some delay in processing key events. Each press and release is a separate event. For a keyboard with 1ms or so scan times, even a very fast typist isn't going to produce the 500 keystrokes a second needed to actually get more than a few ms of delay from this. But if you're doing chording on something with 3-4ms scan times? You probably want this. +// #define STRICT_LAYER_RELEASE // Force a key release to be evaluated using the current layer stack instead of remembering which layer it came from (used for advanced cases) +// #define LOCKING_SUPPORT_ENABLE // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap +// #define LOCKING_RESYNC_ENABLE // Tries to keep switch state consistent with keyboard LED state +#define TAPPING_TERM 200 // How long before a tap becomes a hold, if set above 500, a key tapped during the tapping term will turn it into a hold too +// #define TAPPING_TERM_PER_KEY // Enables handling for per key TAPPING_TERM settings +// #define RETRO_TAPPING // Tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release +#define TAPPING_TOGGLE 2 // How many taps before triggering the toggle +// #define PERMISSIVE_HOLD // Makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the TAPPING_TERM. See Permissive Hold for details +// #define IGNORE_MOD_TAP_INTERRUPT // Makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. See Mod tap interrupt for details +// #define TAPPING_FORCE_HOLD // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle) +// #define LEADER_TIMEOUT 300 // How long before the leader key times out. If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped. +// #define LEADER_PER_KEY_TIMING // Sets the timer for leader key chords to run on each key press rather than overall +// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A. +// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out +// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered +// #define COMBO_COUNT 2 // Set this to the number of combos that you're using in the Combo feature. +// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. +// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. +// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPSLOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_ALPHAS_MODS // Sets the default mode, if none has been set +// #define RGBLIGHT_HUE_STEP 12 // Units to step when in/decreasing hue +// #define RGBLIGHT_SAT_STEP 25 // Units to step when in/decreasing saturation +// #define RGBLIGHT_VAL_STEP 12 // Units to step when in/decreasing value (brightness) +// #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_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 RGBLIGHT_ANIMATIONS // Run RGB animations +// #define RGBLIGHT_ANIMATIONS // Enable all additional animation modes. +// #define RGBLIGHT_EFFECT_ALTERNATING // Enable alternating animation mode. +#define RGBLIGHT_EFFECT_BREATHING // Enable breathing animation mode. +// #define RGBLIGHT_EFFECT_CHRISTMAS // Enable christmas animation mode. +#define RGBLIGHT_EFFECT_KNIGHT // Enable knight animation mode. +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD // Enable rainbow mood animation mode. +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL // Enable rainbow swirl animation mode. +// #define RGBLIGHT_EFFECT_RGB_TEST // Enable RGB test animation mode. +#define RGBLIGHT_EFFECT_SNAKE // Enable snake animation mode. +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT // Enable static gradient mode. + +// #define RGBLIGHT_EFFECT_BREATHE_CENTER // If defined, used to calculate the curve for the breathing animation. Valid values are 1.0 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // The maximum brightness for the breathing mode. Valid values are 1 to 255 +// #define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 1000 // How long to wait between light changes for the "Christmas" animation, in milliseconds +// #define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2 // The number of LEDs to group the red/green colors by for the "Christmas" animation +#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM RGBLED_NUM // The number of LEDs to have the "Knight" animation travel +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 // The number of LEDs to light up for the "Knight" animation +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0 // The number of LEDs to start the "Knight" animation from the start of the strip by +// #define RGBLIGHT_RAINBOW_SWIRL_RANGE 255 // Range adjustment for the rainbow swirl effect to get different swirls +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // The number of LEDs to light up for the "Snake" animation + +// This list in in the correct mode order. Next mode is the following line, previous mode is previous line. Loops around. +// #undef ENABLE_RGB_MATRIX_SOLID_COLOR // Static single hue, no speed support +// #undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue +// #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes +#undef ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +#undef ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +#undef ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation +#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +// #undef ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +// #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right +#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +#undef ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard +// #undef ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue +// #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +// =================================================== Requires RGB_MATRIX_FRAMEBUFFER_EFFECTS ============================================================= +// #undef ENABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! +// #undef ENABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +// =================================================== RGB_MATRIX_KEYPRESSES OR RGB_MATRIX_KEYRELEASES ===================================================== +// #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +// #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +// #undef ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +#undef ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +// #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/config_led.c b/keyboards/massdrop/ctrl/keymaps/xanimos/config_led.c new file mode 100644 index 000000000000..650b31477cb6 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/config_led.c @@ -0,0 +1,97 @@ +/* Copyright 2022 Daniel Weeks (@xanimos) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 +#include "ctrl.h" + +#include "md_rgb_matrix.h" +#include "rgb_matrix.h" +#include "config_led.h" + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7 }, + { 16, 17, 18, 19, 20, 21, 22, 23 }, + { 33, 34, 35, 36, 37, 38, 39, 40 }, + { 50, 51, 52, 53, 54, 55, 56, 57 }, + { 63, 64, 65, 66, 67, 68, 69, 70 }, + { 76, 77, 78, 79, 80, 81, 82, 83 }, + { 8, 9, 10, 11, 12, 13, 14, 15 }, + { 24, 25, 26, 27, 28, 29, 30, 31 }, + { 41, 42, 43, 44, 45, 46, 47, 48 }, + { 58, 59, 60, 61, 62, 75, 49, 32 }, + { 71, 72, 73, 74, 84, 85, 86, NO_LED } +}, { + // 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 + { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, + { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, + // 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 + { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, + { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, + { 217, 20 }, + // KC_TAB, KC_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 + { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, + { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, + { 217, 30 }, + // KC_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 + { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, + { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, + // 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 + { 14, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, + { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, + // KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, + { 193, 59 }, { 205, 59 }, { 217, 59 }, + // Underglow / Border + { 224, 64 }, { 204, 64 }, { 186, 64 }, { 167, 64 }, { 149, 64 }, { 130, 64 }, { 112, 64 }, { 94, 64 }, + { 75, 64 }, { 57, 64 }, { 38, 64 }, { 20, 64 }, { 0, 64 }, { 0, 47 }, { 0, 32 }, { 0, 17 }, + { 0, 0 }, { 20, 0 }, { 38, 0 }, { 57, 0 }, { 75, 0 }, { 94, 0 }, { 112, 0 }, { 130, 0 }, + { 149, 0 }, { 167, 0 }, { 186, 0 }, { 204, 0 }, { 224, 0 }, { 224, 17 }, { 224, 32 }, { 224, 47 } +}, { + // 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 + 1, 4, 4, 4, 4, 1, 1, 1, + 1, 4, 4, 4, 4, 1, 1, 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_INS, KC_HOME, KC_PGUP + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 1, 1, 1, + 1, + // KC_TAB, KC_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 + 1, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 1, 1, + 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_ENT + 1, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 1, + // 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 + 1, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 1, 1, + // KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + 1, 1, 1, 4, 1, 1, 1, 1, + 1, 1, 1, + // Underglow / Border + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2 +} }; + + +#ifdef USB_LED_INDICATOR_ENABLE +void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + md_rgb_matrix_indicators_advanced(led_min, led_max); +} +#endif // USB_LED_INDICATOR_ENABLE + +#endif diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c b/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c new file mode 100644 index 000000000000..c7bc285eda92 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c @@ -0,0 +1,410 @@ +/* Copyright 2022 Daniel Weeks (@xanimos) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keymap.h" + +static uint16_t idle_timer; // Idle LED timeout timer +static uint8_t idle_second_counter; // Idle LED seconds counter, counts seconds not milliseconds +static uint8_t key_event_counter; // This counter is used to check if any keys are being held + +static const char * sendstring_commands[] = { + "git init", + "git clone ", + "git add ", + "git diff ", + "git reset --soft ", + "git branch --list", + "git checkout ", + "git remote add ", + "git fetch ", + "git pull", + "git pull upstream ", + "git push", + "git push -u origin ", + "git push --force-with-lease", + "git commit ", + "git commit -m \": [TFS-]\"", + "git status", + "git log", +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_KL] = LAYOUT( + // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PRINT SCLCK PAUSE + 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,RCS(KC_M), + // ~ 1 2 3 4 5 6 7 8 9 0 - = BCKSP INS HOME PGUP + 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, + // TAB Q W E R T Y U I O P [ ] \ DEL END PGDN + KC_TAB , KC_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, + // CAPS A S D F G H J K L ; ' ENTER + KC_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 , + // SHIFT Z X C V B N M , . / RSHIFT UP + 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 , + // CTRL GUI ALT SPACE RALT MENU RGUI RCTRL LEFT DOWN RIGHT + KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, TD(TD_FN_SWITCH), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FL] = LAYOUT( + // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PRINT SCLCK PAUSE + _______, ROUT_TG, ROUT_FM, ROUT_VD, ROUT_VI, _______, _______, _______, _______, _______, _______, KC_WAKE, KC_SLEP, KC_PAUS, _______, KC_MUTE, + // ~ 1 2 3 4 5 6 7 8 9 0 - = BCKSP INS HOME PGUP + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_MPLY, KC_VOLU, + // TAB Q W E R T Y U I O P [ ] \ DEL END PGDN + _______, RGB_MOD, RGB_SPI, RGB_VAI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + // CAPS A S D F G H J K L ; ' ENTER + _______,RGB_RMOD, RGB_SPD, RGB_VAD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + // SHIFT Z X C V B N M , . / RSHIFT UP + _______, _______, _______,COPY_ALL, _______, MD_BOOT, NK_TOGG, _______, _______, _______, _______, TOG_NPD, KC_BRIU, + // CTRL GUI ALT SPACE RALT MENU RGUI RCTRL LEFT DOWN RIGHT + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, _______ + ), + [_GL] = LAYOUT( + // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PRINT SCLCK PAUSE + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ~ 1 2 3 4 5 6 7 8 9 0 - = BCKSP INS HOME PGUP + G_INIT, G_CLONE, G_REMTE, G_RESET, G_PSFWL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // TAB Q W E R T Y U I O P [ ] \ DEL END PGDN + _______, G_PUPST, G_PULL, G_PSORG, G_PUSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // CAPS A S D F G H J K L ; ' ENTER + _______, G_ADD, G_STAT, G_DIFF, G_FETCH, _______, _______, _______, _______, _______, _______, _______, _______, + // SHIFT Z X C V B N M , . / RSHIFT UP + _______, G_LOG, G_CHECK, G_COMM, G_COMSG, G_BRANH, _______, _______, _______, _______, _______, _______, _______, + // CTRL GUI ALT SPACE RALT MENU RGUI RCTRL LEFT DOWN RIGHT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_NUMPAD] = LAYOUT( + // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PRINT SCLCK PAUSE + TOG_NPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ~ 1 2 3 4 5 6 7 8 9 0 - = BCKSP INS HOME PGUP + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // TAB Q W E R T Y U I O P [ ] \ DEL END PGDN + _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______, _______, _______, _______, + // CAPS A S D F G H J K L ; ' ENTER + _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, + // SHIFT Z X C V B N M , . / RSHIFT UP + _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PDOT, _______, _______, _______, _______, + // CTRL GUI ALT SPACE RALT MENU RGUI RCTRL LEFT DOWN RIGHT + _______, _______, _______, KC_P0, _______, _______, _______, _______, _______, _______, _______ + ), + /* + [X] = LAYOUT( + // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PRINT SCLCK PAUSE + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ~ 1 2 3 4 5 6 7 8 9 0 - = BCKSP INS HOME PGUP + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // TAB Q W E R T Y U I O P [ ] \ DEL END PGDN + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // CAPS A S D F G H J K L ; ' ENTER + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // SHIFT Z X C V B N M , . / RSHIFT UP + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // CTRL GUI ALT SPACE RALT MENU RGUI RCTRL LEFT DOWN RIGHT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + */ +}; + +#define __OFF__ {0, 0, 0} + +const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { + [_FL] = { + // These remain on base layer rgb to see adjustments ;) + // |----------------------------------| + // _______, ROUT_TG, ROUT_FM, ROUT_VD, ROUT_VI, _______, _______, _______, _______, _______, _______, KC_WAKE, KC_SLEP, KC_PAUS, _______, KC_MUTE, + __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, YELLOW, YELLOW, ORANGE, __OFF__, GOLD, + // RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_MPLY, KC_VOLU, + GOLD, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, RED, SPRING, ORANGE, + // _______, RGB_MOD, RGB_SPI, RGB_VAI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + __OFF__, ORANGE, GREEN, AZURE, GOLDEN, MAGENT, __OFF__, AZURE, AZURE, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, TEAL, TEAL, ORANGE, + // _______,RGB_RMOD, RGB_SPD, RGB_VAD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + __OFF__, ORANGE, GREEN, AZURE, GOLDEN, MAGENT, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, _______, _______,COPY_ALL, _______, MD_BOOT, NK_TOGG, _______, _______, _______, _______, TO(_NUMPAD), KC_BRIU, + __OFF__, __OFF__, __OFF__, CORAL, __OFF__, RED, TURQ, __OFF__, __OFF__, __OFF__, __OFF__, CYAN, SPRING, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, _______ + __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, SPRING, __OFF__ + }, + [_GL] = { + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, + // G_INIT, G_CLONE, G_REMTE, G_RESET, G_PSFWL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + AZURE, CHART, CHART, RED, CORAL, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, G_PUPST, G_PULL, G_PSORG, G_PUSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + __OFF__, BLUE, PURPLE, MAGENT, PINK, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, G_ADD, G_STAT, G_DIFF, G_FETCH, _______, _______, _______, _______, _______, _______, _______, _______, + __OFF__, SPRING, GREEN, TURQ, TEAL, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, G_LOG, G_CHECK, G_COMM, G_COMSG, G_BRANH, _______, _______, _______, _______, _______, _______, _______, + __OFF__, CYAN, GOLDEN, YELLOW, GOLD, CHART, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__ + }, + [_NUMPAD] = { + // TO(_KL), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RED, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______, _______, _______, _______, + __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, GREEN, GREEN, GREEN, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, + __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, TURQ, TURQ, TURQ, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PDOT, _______, _______, _______, + __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, CYAN, CYAN, CYAN, AZURE, __OFF__, __OFF__, __OFF__, __OFF__, + // _______, _______, _______, KC_P0, _______, _______, _______, _______, _______, _______, _______ + __OFF__, __OFF__, __OFF__, CYAN, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__, __OFF__ + }, +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + // Enable or disable debugging + debug_enable = false; + debug_matrix = false; + debug_keyboard = false; + debug_mouse = false; + + idle_second_counter = 0; // Counter for number of seconds keyboard has been idle. + key_event_counter = 0; // Counter to determine if keys are being held, neutral at 0. + rgb_time_out_seconds = RGB_DEFAULT_TIME_OUT; // RGB timeout initialized to its default configure in keymap.h + rgb_time_out_enable = false; // Disable RGB timeout by default. Enable using toggle key. + rgb_time_out_user_value = false; // Has to have the same initial value as rgb_time_out_enable. + rgb_enabled_flag = true; // Initially, keyboard RGB is enabled. Change to false config.h initializes RGB disabled. + rgb_time_out_fast_mode_enabled = false; // RGB timeout fast mode disabled initially. + rgb_time_out_saved_flag = rgb_matrix_get_flags(); // Save RGB matrix state for when keyboard comes back from ide. +}; + +void keyboard_post_init_user(void) { + rgb_matrix_enable(); +} + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + if(rgb_time_out_enable && rgb_enabled_flag) { + // If the key event counter is not zero then some key was pressed down but not released, thus reset the timeout counter. + if (key_event_counter) { + idle_second_counter = 0; + } else if (timer_elapsed(idle_timer) > MILLISECONDS_IN_SECOND) { + idle_second_counter++; + idle_timer = timer_read(); + } + + if (idle_second_counter >= rgb_time_out_seconds) { + rgb_time_out_saved_flag = rgb_matrix_get_flags(); + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + rgb_enabled_flag = false; + idle_second_counter = 0; + } + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint32_t key_timer; + + // Increment key event counter for every press and decrement for every release. + if (record->event.pressed) { + key_event_counter++; + + } else { + key_event_counter--; + } + + if (rgb_time_out_enable) { + idle_timer = timer_read(); + // Reset the seconds counter. Without this, something like press> leave x seconds> press, would be x seconds on the effective counter not 0 as it should. + idle_second_counter = 0; + if (!rgb_enabled_flag) { + rgb_matrix_enable_noeeprom(); + rgb_matrix_set_flags(rgb_time_out_saved_flag); + rgb_enabled_flag = true; + } + } + + switch (keycode) { + case MD_BOOT: + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 500) { + reset_keyboard(); + } + } + return false; + } + + if (record->event.pressed) { + switch (keycode) { + case RGB_TOG: + rgb_time_out_enable = rgb_time_out_user_value; + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_UNDERGLOW: { + // This line is for LED idle timer. It disables the toggle so you can turn off LED completely if you like + rgb_time_out_enable = false; + 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; + } + return false; + // ======================================================== CUSTOM KEYCOADS BELOW ======================================================== + case COPY_ALL: + // Selects all and text and copy + SEND_STRING(SS_LCTRL("ac")); + return false; + case ROUT_TG: + // Toggle idle LED timeout on or off + rgb_time_out_enable = !rgb_time_out_enable; + rgb_time_out_user_value = rgb_time_out_enable; + return false; + case ROUT_VI: + // Increase idle LED timeout value in seconds + // Only increase if current value is lower than RGB_TIME_OUT_MAX. Don't care what value the result will be + // Modity RGB_TIME_OUT_STEP for bigger or smaller increments + if (!rgb_time_out_fast_mode_enabled && rgb_time_out_seconds <= RGB_TIME_OUT_MAX) { + rgb_time_out_seconds += RGB_TIME_OUT_STEP; + } + return false; + case ROUT_VD: + // Decrease idle LED timeout value in seconds + // Only decrease if current value is higher than minimum value and the result is larger than zero + // Modity RGB_TIME_OUT_STEP for bigger or smaller decrements + if (!rgb_time_out_fast_mode_enabled && rgb_time_out_seconds > RGB_TIME_OUT_MIN) { + rgb_time_out_seconds -= RGB_TIME_OUT_STEP; + } + return false; + case ROUT_FM: + if (rgb_time_out_fast_mode_enabled) { + rgb_time_out_seconds = rgb_time_out_saved_seconds; + } else { + rgb_time_out_saved_seconds = rgb_time_out_seconds; + rgb_time_out_seconds = RGB_FAST_MODE_TIME_OUT; + } + rgb_time_out_fast_mode_enabled = !rgb_time_out_fast_mode_enabled; + return false; + case G_INIT ... G_LOG: + send_string_with_delay(sendstring_commands[keycode - G_INIT], 5); + return false; + case TOG_NPD: + if (get_highest_layer(layer_state) != _NUMPAD) { + layer_move(_NUMPAD); + } else { + layer_move(_KL); + } + return false; + } + } + return true; +} + +void set_layer_color(int layer) { + if (layer == 0) { return; } + 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 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); + continue; + } + if(layer == _FL && i <= 4 && i >= 1) { + continue; // Leave RGB for F1-F4 of function layer to adjust RGB settings + } + + rgb_matrix_set_color(i, 0, 0, 0); + } +} + +void rgb_matrix_indicators_user(void) { + if (disable_layer_color || + rgb_matrix_get_flags() == LED_FLAG_NONE || + rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) { + return; + } + set_layer_color(get_highest_layer(layer_state)); +} + + + +td_state_t cur_dance(qk_tap_dance_state_t *state) { + if (state->pressed && !state->interrupted) { + if (state->count == 1) { return TD_SINGLE_HOLD; } + return TD_DOUBLE_HOLD; + } + return TD_UNKNOWN; +} + +static td_tap_t fn_tap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +void fn_tap_finished(qk_tap_dance_state_t *state, void *user_data) { + fn_tap_state.state = cur_dance(state); + switch (fn_tap_state.state) { + case TD_SINGLE_HOLD: + // set function layer + layer_move(_FL); + break; + case TD_DOUBLE_HOLD: + // set git layer + layer_move(_GL); + break; + case TD_UNKNOWN: + register_code(KC_APP); + break; + default: + break; + } +} + +void fn_tap_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (fn_tap_state.state) { + case TD_UNKNOWN: + unregister_code(KC_APP); + break; + case TD_DOUBLE_HOLD: + case TD_SINGLE_HOLD: + // Set default layer if we didn't activate numpad layer in function + if (get_highest_layer(layer_state) != _NUMPAD) { + layer_move(_KL); + } + break; + break; + default: + break; + } + fn_tap_state.state = TD_NONE; +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_FN_SWITCH] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, fn_tap_finished, fn_tap_reset) +}; diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.h b/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.h new file mode 100644 index 000000000000..4f5238e7021b --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.h @@ -0,0 +1,129 @@ +/* Copyright 2022 Daniel Weeks (@xanimos) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 + +#define MILLISECONDS_IN_SECOND 1000 + +// These are just to make it neater to use builtin HSV values in the keymap +#define RED {HSV_RED} +#define CORAL {HSV_CORAL} +#define ORANGE {HSV_ORANGE} +#define GOLDEN {HSV_GOLDENROD} +#define GOLD {HSV_GOLD} +#define YELLOW {HSV_YELLOW} +#define CHART {HSV_CHARTREUSE} +#define GREEN {HSV_GREEN} +#define SPRING {HSV_SPRINGGREEN} +#define TURQ {HSV_TURQUOISE} +#define TEAL {HSV_TEAL} +#define CYAN {HSV_CYAN} +#define AZURE {HSV_AZURE} +#define BLUE {HSV_BLUE} +#define PURPLE {HSV_PURPLE} +#define MAGENT {HSV_MAGENTA} +#define PINK {HSV_PINK} + +//========================================================== CONFIGURABLE DEFAULTS ========================================================== +#define RGB_DEFAULT_TIME_OUT 30 +#define RGB_FAST_MODE_TIME_OUT 3 +#define RGB_TIME_OUT_MAX 600 +#define RGB_TIME_OUT_MIN 10 +#define RGB_TIME_OUT_STEP 10 + +extern rgb_config_t rgb_matrix_config; +bool disable_layer_color; + +bool rgb_enabled_flag; // Current LED state flag. If false then LED is off. +bool rgb_time_out_enable; // Idle LED toggle enable. If false then LED will not turn off after idle timeout. +bool rgb_time_out_fast_mode_enabled; // Enable flag for RGB timeout fast mode +bool rgb_time_out_user_value; // This holds the toggle value set by user with ROUT_TG. It's necessary as RGB_TOG changes timeout enable. +uint16_t rgb_time_out_seconds; // Idle LED timeout value, in seconds not milliseconds +uint16_t rgb_time_out_saved_seconds; // The saved user config for RGB timeout period +led_flags_t rgb_time_out_saved_flag; // Store LED flag before timeout so it can be restored when LED is turned on again. + +enum layout_names { + _KL=0, // Keys Layout: The main keyboard layout that has all the characters + _FL, // Function Layout: The function key activated layout with default functions and some added ones + _GL, // GIT Layout: GIT shortcuts and macros + _NUMPAD, // Numpad Layout: Adds a numpad to the keys +}; + +// Tap Dance keycodes +enum td_keycodes { + TD_FN_SWITCH = 0 +}; + +// Define a type containing as many tapdance states as you need +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_HOLD, + TD_DOUBLE_HOLD +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +// Declare your tapdance functions: + +// Function to determine the current tapdance state +td_state_t cur_dance(qk_tap_dance_state_t *state); + +// `finished` and `reset` functions for each tapdance keycode +void fn_tap_finished(qk_tap_dance_state_t *state, void *user_data); +void fn_tap_reset(qk_tap_dance_state_t *state, void *user_data); + +enum ctrl_keycodes { + MD_BOOT = SAFE_RANGE, // Restart into bootloader after hold timeout + ROUT_TG, // Timeout Toggle. Toggle idle LED time out on or off + ROUT_VI, // Timeout Value Increase. Increase idle time out before LED disabled + ROUT_VD, // Timeout Value Decrease. Decrease idle time out before LED disabled + ROUT_FM, // RGB timeout fast mode toggle + TOG_NPD, // Toggle Numpad On/Off + COPY_ALL, // Copy all text using ctrl(a+c) +}; + +enum string_macro_keycodes { + // The start of this enum should always be equal to end of ctrl_keycodes + 1 + G_INIT = COPY_ALL + 1, // git init + G_CLONE, // git clone + G_ADD, // git add + G_DIFF, // git diff + G_RESET, // git reset --soft + G_BRANH, // git branch list + G_CHECK, // git checkout + G_REMTE, // git remote add + G_FETCH, // git fetch + G_PULL, // git pull + G_PUPST, // git pull upstream + G_PUSH, // git push + G_PSORG, // git push -u origin + G_PSFWL, // git push --force-with-lease + G_COMM, // git commit + G_COMSG, // git commit -m ": [TFS-]" + G_STAT, // git status + G_LOG, // git log +}; + + + + diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/readme.md b/keyboards/massdrop/ctrl/keymaps/xanimos/readme.md new file mode 100644 index 000000000000..1ba87a97bcc3 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/readme.md @@ -0,0 +1,200 @@ +# Massdrop Ctrl Xanimos + +This keymap is the one I use on my MD CTRL, as a professional software engineer I like to make things my own. I'm also up for spreading the love. +Massdrop has had a pretty bad rap with qmk the past but recently it's not too bad once you put a little pizzazz into it. + +I started with the Endgame keymap and have re-written most of and expanded upon it. + +## Layers + +### Typing Layer + +_I physically switched around my RALT and Menu keys as my personal preference. The label is still in default location but you can see they are mapped to my liking._ + + ``` + __________ ___________________________________________ ___________________________________________ ___________________________________________ ________________________________ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 | | PRINT | SCLCK | PAUSE | + | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | 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 | RCS(M) | + |__________| |__________|__________|__________|__________| |__________|__________|__________|__________| |__________|__________|__________|__________| |__________|__________|__________| + ____________________________________________________________________________________________________________________________________________________________________ ________________________________ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BCKSP | | INS | HOME | PGUP | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | 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 | + |__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_____________________| |__________|__________|__________| + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | | DEL | END | PGDN | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | KC_TAB | KC_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 | + |_______________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|________________| |__________|__________|__________| + | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | + | KC_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 | + |_________________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_________________________| __________ + | SHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | + | 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 | + |____________________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_________________________________| __________|__________|__________ + | CTRL | GUI | ALT | SPACE | RALT | MENU | RGUI | RCTRL | | LEFT | DOWN | RIGHT | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | KC_LCTRL | KC_LGUI | KC_LALT | KC_SPC | FN_SWTCH | KC_RALT | KC_RGUI | KC_RCTL | | KC_LEFT | KC_DOWN | KC_RGHT | + |_____________|_____________|_____________|_________________________________________________________________|______________|_____________|_____________|_____________| |__________|__________|__________| + + ``` + +### Function Layer + + ``` + __________ ___________________________________________ ___________________________________________ ___________________________________________ ________________________________ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 | | PRINT | SCLCK | PAUSE | + | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | | ROUT_TG | ROUT_RM | ROUT_VD | ROUT_VI | | | | | | | | KC_WAKE | KC_SLEP | | | KC_PAUS | | KC_MUTE | + |__________| |__________|__________|__________|__________| |__________|__________|__________|__________| |__________|__________|__________|__________| |__________|__________|__________| + ____________________________________________________________________________________________________________________________________________________________________ ________________________________ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BCKSP | | INS | HOME | PGUP | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | | | | | | | | | | | | | | | KC_MSTP | KC_MPLY | KC_VOLU | + |__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_____________________| |__________|__________|__________| + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | | DEL | END | PGDN | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | RGB_MOD | RGB_SPI | RBG_VAI | RGB_HUI | | | | | | | | | | | KC_MPRV | KC_MNXT | KC_VOLD | + |_______________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|________________| |__________|__________|__________| + | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | + | | RGB_RMOD | RGB_SPD | RGB_VAD | RGB_HUD | | | | | | | | | + |_________________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_________________________| __________ + | SHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | + | | | | COPY_ALL | | MD_BOOT | NK_TOGG | | | | | TOGGLE_NUMPAD | | KC_BRIU | + |____________________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_________________________________| __________|__________|__________ + | CTRL | GUI | ALT | SPACE | RALT | MENU | RGUI | RCTRL | | LEFT | DOWN | RIGHT | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | | | | | | | | | | KC_BRID | | + |_____________|_____________|_____________|_________________________________________________________________|______________|_____________|_____________|_____________| |__________|__________|__________| + + ``` + +### Git Layer + + ``` + __________ ___________________________________________ ___________________________________________ ___________________________________________ ________________________________ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 | | PRINT | SCLCK | PAUSE | + | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | | | | | | | | | | | | | | | | | | | | + |__________| |__________|__________|__________|__________| |__________|__________|__________|__________| |__________|__________|__________|__________| |__________|__________|__________| + ____________________________________________________________________________________________________________________________________________________________________ ________________________________ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BCKSP | | INS | HOME | PGUP | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | G_INIT | G_CLONE | G_REMTE | G_RESET | G_PSFWL | | | | | | | | | | | | | | + |__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_____________________| |__________|__________|__________| + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | | DEL | END | PGDN | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | G_PUPST | G_PULL | G_PSORG | G_PUSH | | | | | | | | | | | | | | + |_______________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|________________| |__________|__________|__________| + | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | + | | G_ADD | G_STAT | G_DIFF | G_FETCH | | | | | | | | | + |_________________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_________________________| __________ + | SHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | + | | G_LOG | G_CHECK | G_COMM | G_COMSG | G_BRANH | | | | | | | | | + |____________________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_________________________________| __________|__________|__________ + | CTRL | GUI | ALT | SPACE | RALT | MENU | RGUI | RCTRL | | LEFT | DOWN | RIGHT | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | | | | | | | | | | | | + |_____________|_____________|_____________|_________________________________________________________________|______________|_____________|_____________|_____________| |__________|__________|__________| + + ``` + + - These are the strings that are dumped/keyed in for each associated keycode + ``` + G_INIT "git init" + G_CLONE "git clone " + G_ADD "git add " + G_DIFF "git diff " + G_RESET "git reset --soft " + G_BRANH "git branch --list" + G_CHECK "git checkout " + G_REMTE "git remote add " + G_FETCH "git fetch " + G_PULL "git pull" + G_PUPST "git pull upstream " + G_PUSH "git push" + G_PSORG "git push -u origin " + G_PSFWL "git push --force-with-lease" + G_COMM "git commit " + G_COMSG "git commit -m \": [TFS-]\"" + G_STAT "git status" + G_LOG "git log" + ``` + +### Numpad Layer + +*activated via the __Function Layer__ and stays active until you escape* + ``` + __________ ___________________________________________ ___________________________________________ ___________________________________________ ________________________________ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 | | PRINT | SCLCK | PAUSE | + | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | TOG_NPD | | | | | | | | | | | | | | | | | | | | + |__________| |__________|__________|__________|__________| |__________|__________|__________|__________| |__________|__________|__________|__________| |__________|__________|__________| + ____________________________________________________________________________________________________________________________________________________________________ ________________________________ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BCKSP | | INS | HOME | PGUP | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | | | | | | | | | | | | | | | | | | + |__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_____________________| |__________|__________|__________| + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | | DEL | END | PGDN | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | | | | | | KC_P7 | KC_P8 | KC_P9 | | | | | | | | | | + |_______________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|________________| |__________|__________|__________| + | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | + | | | | | | | KC_P4 | KC_P5 | KC_P6 | | | | | + |_________________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_________________________| __________ + | SHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | + | | | | | | KC_P1 | KC_P2 | KC_P3 | KC_PDOT | | | | | | + |____________________|__________|__________|__________|__________|__________|__________|__________|__________|__________|__________|_________________________________| __________|__________|__________ + | CTRL | GUI | ALT | SPACE | RALT | MENU | RGUI | RCTRL | | LEFT | DOWN | RIGHT | + | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | | ------ | ------ | ------ | + | | | | KC_P0 | | | | | | | | | + |_____________|_____________|_____________|_________________________________________________________________|______________|_____________|_____________|_____________| |__________|__________|__________| + + ``` + +## Features + +These are the features currently used by this keymap: + +### RGB Time Out + +This allows setting a dynamic timeout for RGB to turn off. The following is supported: + +1. Restores on the first click of any key. +2. Restores to its previous state before timeout. i.e. if it was edge only before timeout it will restore to edge only, same for all modes. +3. Doesn't interfere with RGB modes. You can set keyboard to All, Edge Only or Off and timeout will not interfere with these modes. +4. The time before RGB is turned off is dynamically adjustable using keycodes ROUT_VI to increase, ROUT_VD to decrease. They have a 10 second steps by default. Minimum value 10 seconds by default and maximum is 10 minutes. +5. Can be toggled on or off dyncamically with the ROUT_TG keycode. +6. Can be put in fast mode using ROUT_FM, for movie watching purposes. Default value is 3 seconds. Note that fast mode disabled ROUT_VD and ROUT_VI so to use them again you have to toggle fast mode off with ROUT_FM. It doesn't impact ROUT_TG and ROUT_TG will remember if fast mode was enabled when toggled back on, so it doesn't disable fast mode on its own, only ROUT_FM can disable or enable fast mode. + +### Tapdance Keys + +Created a tapdance setup to use the same key to switch between the layers, aka a function key. ;) + +Layers are temporary while holding the function key down. + - Single tap and hold: Activates the Function Layer. + - Double tap and hold: Activates the Git Layer. + +### Numpad + +Activated in the *Function Layer* by holding down the fn key and pressing the toggle key (RSHIFT). The keeps the layer activated without needing to hold the fn key anymore. +To leave the numpad layer press the ESC key or hold and let go of the fn key. + +### Space Cadet Shift + +The typing layer is setup to use the [Space Cadet Shift](https://docs.qmk.fm/#/feature_space_cadet). As a software engineer this is massively useful :) + +_Sorry ISO users, you'll need to configure it for your own setup or disable it._ + +## Credits + + - [endgame](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop/ctrl/keymaps/endgame) by [ash0x0](https://github.com/ash0x0) + For the base keymap I started with. \ No newline at end of file diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/rules.mk b/keyboards/massdrop/ctrl/keymaps/xanimos/rules.mk new file mode 100644 index 000000000000..43a312ce4e65 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/rules.mk @@ -0,0 +1,14 @@ +# RGBLIGHT_ENABLE = no # Not for MD boards. This is here in case you forget. +COMMAND_ENABLE = no # Commands for debug and configuration +# AUTO_SHIFT_ENABLE = yes # Auto Shift +NKRO_ENABLE = yes # USB Nkey Rollover +DYNAMIC_MACRO_ENABLE = no # Dynamic macro recording and play +MOUSEKEY_ENABLE = no # Enable mouse control keycodes. Increases firmware size. +TAP_DANCE_ENABLE = yes # Enable tap dance keys +CONSOLE_ENABLE = no # Enable debugging console. Increases firmware size. +SRC += config_led.c # Used to add files to the compilation/linking list. +EXTRAKEY_ENABLE = yes # Audio control and System control +TERMINAL_ENABLE = no +# RAW_ENABLE = yes # Raw HID has not yet been implemented for this keyboard +# COMBO_ENABLE # Key combo feature +# LEADER_ENABLE # Enable leader key chording From 0e42663ac0950d6c6f3456d7d06b84896f0529fa Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Fri, 22 Apr 2022 05:50:11 -0600 Subject: [PATCH 29/71] Fix id67 RGB Matrix (#16916) --- keyboards/idobao/id67/id67.c | 2 +- keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/idobao/id67/id67.c b/keyboards/idobao/id67/id67.c index 5f4ff39ae2c8..8d27298625c4 100644 --- a/keyboards/idobao/id67/id67.c +++ b/keyboards/idobao/id67/id67.c @@ -56,6 +56,6 @@ led_config_t g_led_config = { { __attribute__ ((weak)) void rgb_matrix_indicators_user(void) { if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(23, 0xFF, 0xFF, 0xFF); } } diff --git a/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c index 62fd4cfa8f7e..2a42295b97a4 100644 --- a/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c +++ b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c @@ -121,7 +121,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (host_keyboard_led_state().caps_lock) { if (isRGBOff) { - rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, v, v, v); // white + rgb_matrix_set_color(23, v, v, v); // white } else { // Caps Lock key/LED if (timer_elapsed(recording_timer) > 500) { @@ -129,7 +129,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { recording_timer = timer_read(); } if (isCapsBlink) { - rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, v, v, v); // white + rgb_matrix_set_color(23, v, v, v); // white } // Alpha keys/LEDs @@ -144,7 +144,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { uint8_t g = 0; uint8_t b = 0; - if ((g_led_config.flags[ID67_CAPS_LOCK_KEY_INDEX] & LED_FLAG_LAYER_IND) != 0) { + if ((g_led_config.flags[23] & LED_FLAG_LAYER_IND) != 0) { switch (current_layer) { case LAYER_1: b = v; break; // blue case LAYER_2: g = v; break; // green @@ -152,7 +152,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } } - rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, r, g, b); // off + rgb_matrix_set_color(23, r, g, b); // off } // Layer indicator stuff From 41ab5ca97b52a2cccaf1f45c936398eb04bb8686 Mon Sep 17 00:00:00 2001 From: Felix Jen Date: Sat, 23 Apr 2022 15:56:58 -0500 Subject: [PATCH 30/71] [Keyboard] Add Rooboard 65 (#15294) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- .../skippys_custom_pcs/rooboard65/config.h | 117 ++++++++++++++++++ .../skippys_custom_pcs/rooboard65/info.json | 83 +++++++++++++ .../rooboard65/keymaps/default/keymap.c | 40 ++++++ .../rooboard65/keymaps/via/keymap.c | 58 +++++++++ .../rooboard65/keymaps/via/rules.mk | 1 + .../skippys_custom_pcs/rooboard65/readme.md | 27 ++++ .../rooboard65/rooboard65.c | 14 +++ .../rooboard65/rooboard65.h | 32 +++++ .../skippys_custom_pcs/rooboard65/rules.mk | 23 ++++ 9 files changed, 395 insertions(+) create mode 100644 keyboards/skippys_custom_pcs/rooboard65/config.h create mode 100644 keyboards/skippys_custom_pcs/rooboard65/info.json create mode 100644 keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c create mode 100644 keyboards/skippys_custom_pcs/rooboard65/keymaps/via/keymap.c create mode 100644 keyboards/skippys_custom_pcs/rooboard65/keymaps/via/rules.mk create mode 100644 keyboards/skippys_custom_pcs/rooboard65/readme.md create mode 100644 keyboards/skippys_custom_pcs/rooboard65/rooboard65.c create mode 100644 keyboards/skippys_custom_pcs/rooboard65/rooboard65.h create mode 100644 keyboards/skippys_custom_pcs/rooboard65/rules.mk diff --git a/keyboards/skippys_custom_pcs/rooboard65/config.h b/keyboards/skippys_custom_pcs/rooboard65/config.h new file mode 100644 index 000000000000..f06184077125 --- /dev/null +++ b/keyboards/skippys_custom_pcs/rooboard65/config.h @@ -0,0 +1,117 @@ +/* +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 0x36B6 // Skippys Custom PCs +#define PRODUCT_ID 0x0002 // Rooboard65 +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER FJLabs +#define PRODUCT Rooboard65 + +/* 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 { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, B3, B2, B1, D1 } +#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 68 +#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_LIMIT_VAL 96 +#define RGB_VAL_STEP 12 +#define RGBLIGHT_DEFAULT_SPD 144 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL +/* #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 diff --git a/keyboards/skippys_custom_pcs/rooboard65/info.json b/keyboards/skippys_custom_pcs/rooboard65/info.json new file mode 100644 index 000000000000..3f195fc7c7d6 --- /dev/null +++ b/keyboards/skippys_custom_pcs/rooboard65/info.json @@ -0,0 +1,83 @@ +{ + "keyboard_name": "Rooboard65", + "url": "https://www.fjlaboratories.com/", + "maintainer": "FJLabs", + "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": 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/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c b/keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c new file mode 100644 index 000000000000..96c2351e89ed --- /dev/null +++ b/keyboards/skippys_custom_pcs/rooboard65/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_65_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_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_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_LAYER1] = LAYOUT_65_ansi( + 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, 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, + 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, 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, KC_TRNS + ) + +}; \ No newline at end of file diff --git a/keyboards/skippys_custom_pcs/rooboard65/keymaps/via/keymap.c b/keyboards/skippys_custom_pcs/rooboard65/keymaps/via/keymap.c new file mode 100644 index 000000000000..3e071bd079f8 --- /dev/null +++ b/keyboards/skippys_custom_pcs/rooboard65/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_65_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_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_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_LAYER1] = LAYOUT_65_ansi( + 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, 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, + 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, 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, KC_TRNS + ), + + [_LAYER2] = LAYOUT_65_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 + ), + + [_LAYER3] = LAYOUT_65_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 + ), + +}; diff --git a/keyboards/skippys_custom_pcs/rooboard65/keymaps/via/rules.mk b/keyboards/skippys_custom_pcs/rooboard65/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/skippys_custom_pcs/rooboard65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/skippys_custom_pcs/rooboard65/readme.md b/keyboards/skippys_custom_pcs/rooboard65/readme.md new file mode 100644 index 000000000000..63f8217fc8c3 --- /dev/null +++ b/keyboards/skippys_custom_pcs/rooboard65/readme.md @@ -0,0 +1,27 @@ +# FJLabs Rooboard65 + +The following is the QMK Firmware for the FJLabs Rooboard65 PCB, a universal tray mount 65% 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: Rooboard65 + +Make example for this keyboard (after setting up your build environment): + + make skippys_custom_pcs/rooboard65: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 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 \ No newline at end of file diff --git a/keyboards/skippys_custom_pcs/rooboard65/rooboard65.c b/keyboards/skippys_custom_pcs/rooboard65/rooboard65.c new file mode 100644 index 000000000000..a97cc2307b61 --- /dev/null +++ b/keyboards/skippys_custom_pcs/rooboard65/rooboard65.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 "rooboard65.h" diff --git a/keyboards/skippys_custom_pcs/rooboard65/rooboard65.h b/keyboards/skippys_custom_pcs/rooboard65/rooboard65.h new file mode 100644 index 000000000000..434d15668819 --- /dev/null +++ b/keyboards/skippys_custom_pcs/rooboard65/rooboard65.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" + +/* TF60 ANSI Keymap Definitions */ +#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, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, 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, K2E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K1E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/skippys_custom_pcs/rooboard65/rules.mk b/keyboards/skippys_custom_pcs/rooboard65/rules.mk new file mode 100644 index 000000000000..a1a32c1e9263 --- /dev/null +++ b/keyboards/skippys_custom_pcs/rooboard65/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 65_ansi From 21036c8a43247652d4ea29f1adc2682ef3d961b6 Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Sun, 24 Apr 2022 10:00:54 +0800 Subject: [PATCH 31/71] [Keyboard] Add missing KC_QUOT (#16925) --- keyboards/a_dux/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/a_dux/keymaps/default/keymap.c b/keyboards/a_dux/keymaps/default/keymap.c index b58c9d447f91..c15b596f8fa7 100644 --- a/keyboards/a_dux/keymaps/default/keymap.c +++ b/keyboards/a_dux/keymaps/default/keymap.c @@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_split_3x5_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, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LT(3,KC_TAB), KC_LSFT, KC_SPC, LT(1,KC_ENT) ), From 225346348651bf174e98e21b48fc0bf29eb03111 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 24 Apr 2022 23:01:29 +1000 Subject: [PATCH 32/71] gergoplex: small cleanup (#16928) --- keyboards/gboards/gergoplex/gergoplex.h | 29 ++++++++++++------------- keyboards/gboards/gergoplex/rules.mk | 22 +++++++++++++------ 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/keyboards/gboards/gergoplex/gergoplex.h b/keyboards/gboards/gergoplex/gergoplex.h index 507072a3761d..eda21d2a94f1 100644 --- a/keyboards/gboards/gergoplex/gergoplex.h +++ b/keyboards/gboards/gergoplex/gergoplex.h @@ -21,8 +21,8 @@ extern i2c_status_t mcp23018_status; #define I2C_TIMEOUT 1000 -#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) -#define CPU_16MHz 0x00 + +#define XXX KC_NO // I2C aliases and register addresses (see "mcp23018.md") #define I2C_ADDR 0x20 // 0b0100000 @@ -41,16 +41,15 @@ uint8_t init_mcp23018(void); L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ L30, L31, L32, R30, R31, R32 \ - ) \ - { \ - {L04, L14, L24, KC_NO}, \ - {L03, L13, L23, L32}, \ - {L02, L12, L22, L31}, \ - {L01, L11, L21, L30}, \ - {L00, L10, L20, KC_NO}, \ - {R00, R10, R20, KC_NO}, \ - {R01, R11, R21, R30}, \ - {R02, R12, R22, R31}, \ - {R03, R13, R23, R32}, \ - {R04, R14, R24, KC_NO}, \ - } +) { \ + { L04, L14, L24, XXX }, \ + { L03, L13, L23, L32 }, \ + { L02, L12, L22, L31 }, \ + { L01, L11, L21, L30 }, \ + { L00, L10, L20, XXX }, \ + { R00, R10, R20, XXX }, \ + { R01, R11, R21, R30 }, \ + { R02, R12, R22, R31 }, \ + { R03, R13, R23, R32 }, \ + { R04, R14, R24, XXX } \ +} diff --git a/keyboards/gboards/gergoplex/rules.mk b/keyboards/gboards/gergoplex/rules.mk index e557d9f39a9c..5cd5a7721c43 100644 --- a/keyboards/gboards/gergoplex/rules.mk +++ b/keyboards/gboards/gergoplex/rules.mk @@ -1,15 +1,23 @@ +# MCU name MCU = atmega32u4 +# Bootloader selection BOOTLOADER = atmel-dfu -CUSTOM_MATRIX = yes -MOUSEKEY_ENABLE = yes # Mouse keys -COMBO_ENABLE = yes -EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = no -NKRO_ENABLE = yes # Enable N-Key Rollover -COMMAND_ENABLE = yes +# Build Options +# change yes to no to disable +# BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +COMBO_ENABLE = yes +CUSTOM_MATRIX = yes LAYOUTS = split_3x5_3 From 2acdeb3f341362880168e8ac8ff4a46fbc201c5a Mon Sep 17 00:00:00 2001 From: tuvietnamm <64471705+tuvietnamm@users.noreply.github.com> Date: Mon, 25 Apr 2022 15:08:11 +1000 Subject: [PATCH 33/71] Fix backslash bug (#16935) --- keyboards/chickenman/ciel/ciel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/chickenman/ciel/ciel.h b/keyboards/chickenman/ciel/ciel.h index ea2b566d98b7..0f898f97c8fa 100644 --- a/keyboards/chickenman/ciel/ciel.h +++ b/keyboards/chickenman/ciel/ciel.h @@ -54,7 +54,7 @@ k400, k401, k402, k407, 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, KC_NO, k414 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, KC_NO, k114 }, \ { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO}, \ { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, KC_NO, k313, k314 }, \ { k400, k401, k402, KC_NO, KC_NO, KC_NO, KC_NO, k407, KC_NO, KC_NO, KC_NO, k411, KC_NO, k413, k414 } \ From 4c4da8b90bc6eedc5582daa2c9e1a0daf02c5acc Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 25 Apr 2022 19:30:20 +1000 Subject: [PATCH 34/71] Add missing dead key LUTs for sendstring headers (#16929) --- quantum/keymap_extras/keymap_br_abnt2.h | 4 ++-- quantum/keymap_extras/keymap_italian.h | 10 ++++----- quantum/keymap_extras/sendstring_belgian.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_bepo.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_br_abnt2.h | 20 ++++++++++++++++++ .../sendstring_canadian_multilingual.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_croatian.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_czech.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_danish.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_dvorak_fr.h | 19 +++++++++++++++++ quantum/keymap_extras/sendstring_estonian.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_finnish.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_fr_ch.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_french.h | 20 ++++++++++++++++++ .../keymap_extras/sendstring_french_afnor.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_french_osx.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_german.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_german_ch.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_german_osx.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_hungarian.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_icelandic.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_latvian.h | 21 +++++++++++++++++++ quantum/keymap_extras/sendstring_norwegian.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_portuguese.h | 20 ++++++++++++++++++ .../sendstring_portuguese_osx_iso.h | 20 ++++++++++++++++++ .../keymap_extras/sendstring_serbian_latin.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_slovak.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_slovenian.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_spanish.h | 20 ++++++++++++++++++ .../keymap_extras/sendstring_spanish_dvorak.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_swedish.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_turkish_f.h | 20 ++++++++++++++++++ quantum/keymap_extras/sendstring_turkish_q.h | 20 ++++++++++++++++++ .../sendstring_us_international.h | 2 +- 34 files changed, 628 insertions(+), 8 deletions(-) diff --git a/quantum/keymap_extras/keymap_br_abnt2.h b/quantum/keymap_extras/keymap_br_abnt2.h index e91718013a1c..b5892183bed9 100644 --- a/quantum/keymap_extras/keymap_br_abnt2.h +++ b/quantum/keymap_extras/keymap_br_abnt2.h @@ -87,8 +87,8 @@ #define BR_SCLN KC_SLSH // ; #define BR_SLSH KC_INT1 // / // Numpad -#define BR_PDOT KC_PCMM // . -#define BR_PCMM KC_PDOT // , +#define BR_PDOT KC_PCMM // . +#define BR_PCMM KC_PDOT // , /* Shifted symbols * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ diff --git a/quantum/keymap_extras/keymap_italian.h b/quantum/keymap_extras/keymap_italian.h index be495f85ba83..ece60d06b7e3 100644 --- a/quantum/keymap_extras/keymap_italian.h +++ b/quantum/keymap_extras/keymap_italian.h @@ -140,12 +140,12 @@ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ */ // Row 2 -#define IT_EURO ALGR(IT_E) // € -#define IT_LBRC ALGR(IT_EGRV) // [ -#define IT_RBRC ALGR(IT_PLUS) // ] +#define IT_EURO ALGR(IT_E) // € +#define IT_LBRC ALGR(IT_EGRV) // [ +#define IT_RBRC ALGR(IT_PLUS) // ] // Row 3 -#define IT_AT ALGR(IT_OGRV) // @ -#define IT_HASH ALGR(IT_AGRV) // # +#define IT_AT ALGR(IT_OGRV) // @ +#define IT_HASH ALGR(IT_AGRV) // # /* Shift+AltGr symbols * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ diff --git a/quantum/keymap_extras/sendstring_belgian.h b/quantum/keymap_extras/sendstring_belgian.h index 5e7218a2fa73..34ca9514c816 100644 --- a/quantum/keymap_extras/sendstring_belgian.h +++ b/quantum/keymap_extras/sendstring_belgian.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_bepo.h b/quantum/keymap_extras/sendstring_bepo.h index 8119cd9f5400..0f0d5a2111e4 100644 --- a/quantum/keymap_extras/sendstring_bepo.h +++ b/quantum/keymap_extras/sendstring_bepo.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_br_abnt2.h b/quantum/keymap_extras/sendstring_br_abnt2.h index f2946e54b86e..1ca2d285924a 100644 --- a/quantum/keymap_extras/sendstring_br_abnt2.h +++ b/quantum/keymap_extras/sendstring_br_abnt2.h @@ -43,6 +43,26 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 0, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_canadian_multilingual.h b/quantum/keymap_extras/sendstring_canadian_multilingual.h index 3679a98c14a4..92b588c82e40 100644 --- a/quantum/keymap_extras/sendstring_canadian_multilingual.h +++ b/quantum/keymap_extras/sendstring_canadian_multilingual.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_croatian.h b/quantum/keymap_extras/sendstring_croatian.h index 67f75992aeae..bf51c81a8842 100644 --- a/quantum/keymap_extras/sendstring_croatian.h +++ b/quantum/keymap_extras/sendstring_croatian.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_czech.h b/quantum/keymap_extras/sendstring_czech.h index 94879dfd4ecc..6693999f5179 100644 --- a/quantum/keymap_extras/sendstring_czech.h +++ b/quantum/keymap_extras/sendstring_czech.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 1, 0), }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_danish.h b/quantum/keymap_extras/sendstring_danish.h index 0ec5b108a576..6923063ce2ce 100644 --- a/quantum/keymap_extras/sendstring_danish.h +++ b/quantum/keymap_extras/sendstring_danish.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_dvorak_fr.h b/quantum/keymap_extras/sendstring_dvorak_fr.h index 98d0577afa72..2f4f2817949a 100644 --- a/quantum/keymap_extras/sendstring_dvorak_fr.h +++ b/quantum/keymap_extras/sendstring_dvorak_fr.h @@ -42,6 +42,25 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0), }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL diff --git a/quantum/keymap_extras/sendstring_estonian.h b/quantum/keymap_extras/sendstring_estonian.h index 24d853fb5960..9ea2ab3f8ffb 100644 --- a/quantum/keymap_extras/sendstring_estonian.h +++ b/quantum/keymap_extras/sendstring_estonian.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_finnish.h b/quantum/keymap_extras/sendstring_finnish.h index cf23483843fa..197836ba83da 100644 --- a/quantum/keymap_extras/sendstring_finnish.h +++ b/quantum/keymap_extras/sendstring_finnish.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_fr_ch.h b/quantum/keymap_extras/sendstring_fr_ch.h index 2acce5663b60..160a2efb055b 100644 --- a/quantum/keymap_extras/sendstring_fr_ch.h +++ b/quantum/keymap_extras/sendstring_fr_ch.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_french.h b/quantum/keymap_extras/sendstring_french.h index ab65f28eb7ad..a37a5d314bdc 100644 --- a/quantum/keymap_extras/sendstring_french.h +++ b/quantum/keymap_extras/sendstring_french.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_french_afnor.h b/quantum/keymap_extras/sendstring_french_afnor.h index 690daaaf020e..1408634a266b 100644 --- a/quantum/keymap_extras/sendstring_french_afnor.h +++ b/quantum/keymap_extras/sendstring_french_afnor.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_french_osx.h b/quantum/keymap_extras/sendstring_french_osx.h index 6cadbac15321..cc9b857cd005 100644 --- a/quantum/keymap_extras/sendstring_french_osx.h +++ b/quantum/keymap_extras/sendstring_french_osx.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_german.h b/quantum/keymap_extras/sendstring_german.h index 3445a0e5fb7c..69c7dd996ede 100644 --- a/quantum/keymap_extras/sendstring_german.h +++ b/quantum/keymap_extras/sendstring_german.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_german_ch.h b/quantum/keymap_extras/sendstring_german_ch.h index 1e1327c511d4..b8f74712470e 100644 --- a/quantum/keymap_extras/sendstring_german_ch.h +++ b/quantum/keymap_extras/sendstring_german_ch.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_german_osx.h b/quantum/keymap_extras/sendstring_german_osx.h index 03f54da2afaa..d25c8c099583 100644 --- a/quantum/keymap_extras/sendstring_german_osx.h +++ b/quantum/keymap_extras/sendstring_german_osx.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_hungarian.h b/quantum/keymap_extras/sendstring_hungarian.h index 29dc3ccb8c08..9169ba255757 100644 --- a/quantum/keymap_extras/sendstring_hungarian.h +++ b/quantum/keymap_extras/sendstring_hungarian.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_icelandic.h b/quantum/keymap_extras/sendstring_icelandic.h index 867eb8743c85..b25a4e76e7a9 100644 --- a/quantum/keymap_extras/sendstring_icelandic.h +++ b/quantum/keymap_extras/sendstring_icelandic.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_latvian.h b/quantum/keymap_extras/sendstring_latvian.h index 61f788693ce6..bd73a01e4843 100644 --- a/quantum/keymap_extras/sendstring_latvian.h +++ b/quantum/keymap_extras/sendstring_latvian.h @@ -19,9 +19,30 @@ #pragma once #include "keymap_latvian.h" +#include "quantum.h" // clang-format off +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 1, 0, 0, 0, 0, 1), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_norwegian.h b/quantum/keymap_extras/sendstring_norwegian.h index d3478f8301f5..28813da51f46 100644 --- a/quantum/keymap_extras/sendstring_norwegian.h +++ b/quantum/keymap_extras/sendstring_norwegian.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_portuguese.h b/quantum/keymap_extras/sendstring_portuguese.h index bec9b2c680c3..37db5f97aab9 100644 --- a/quantum/keymap_extras/sendstring_portuguese.h +++ b/quantum/keymap_extras/sendstring_portuguese.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 0, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_portuguese_osx_iso.h b/quantum/keymap_extras/sendstring_portuguese_osx_iso.h index 1799347f3077..f4ac1b37afe0 100644 --- a/quantum/keymap_extras/sendstring_portuguese_osx_iso.h +++ b/quantum/keymap_extras/sendstring_portuguese_osx_iso.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 0, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_serbian_latin.h b/quantum/keymap_extras/sendstring_serbian_latin.h index 40e2a9ea0c22..7e19a62595c2 100644 --- a/quantum/keymap_extras/sendstring_serbian_latin.h +++ b/quantum/keymap_extras/sendstring_serbian_latin.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_slovak.h b/quantum/keymap_extras/sendstring_slovak.h index f48d30dcb143..c94cca1379fc 100644 --- a/quantum/keymap_extras/sendstring_slovak.h +++ b/quantum/keymap_extras/sendstring_slovak.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_slovenian.h b/quantum/keymap_extras/sendstring_slovenian.h index adf7ea47db99..117af7e76d69 100644 --- a/quantum/keymap_extras/sendstring_slovenian.h +++ b/quantum/keymap_extras/sendstring_slovenian.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_spanish.h b/quantum/keymap_extras/sendstring_spanish.h index b984a6f463e3..680e99ef4efb 100644 --- a/quantum/keymap_extras/sendstring_spanish.h +++ b/quantum/keymap_extras/sendstring_spanish.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_spanish_dvorak.h b/quantum/keymap_extras/sendstring_spanish_dvorak.h index 87d582491c18..ccf945824732 100644 --- a/quantum/keymap_extras/sendstring_spanish_dvorak.h +++ b/quantum/keymap_extras/sendstring_spanish_dvorak.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_swedish.h b/quantum/keymap_extras/sendstring_swedish.h index 8b07d423019c..d4513429927b 100644 --- a/quantum/keymap_extras/sendstring_swedish.h +++ b/quantum/keymap_extras/sendstring_swedish.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_turkish_f.h b/quantum/keymap_extras/sendstring_turkish_f.h index 8d6dc778fd9f..cabd5c5dc5c0 100644 --- a/quantum/keymap_extras/sendstring_turkish_f.h +++ b/quantum/keymap_extras/sendstring_turkish_f.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_turkish_q.h b/quantum/keymap_extras/sendstring_turkish_q.h index 1a409c1e03f8..986f02233339 100644 --- a/quantum/keymap_extras/sendstring_turkish_q.h +++ b/quantum/keymap_extras/sendstring_turkish_q.h @@ -63,6 +63,26 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = { KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) }; +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0) +}; + const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // NUL SOH STX ETX EOT ENQ ACK BEL XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/quantum/keymap_extras/sendstring_us_international.h b/quantum/keymap_extras/sendstring_us_international.h index 53a5891fb143..d1694ff0f0fb 100644 --- a/quantum/keymap_extras/sendstring_us_international.h +++ b/quantum/keymap_extras/sendstring_us_international.h @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -// Sendstring lookup tables for UK layouts +// Sendstring lookup tables for US International layouts #pragma once From 856c235592468b982a629d669ccdd0a6d4cfa24f Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 27 Apr 2022 00:09:47 +1000 Subject: [PATCH 35/71] dactyl_manuform/3x5_3: fix layout (#16944) --- .../handwired/dactyl_manuform/3x5_3/3x5_3.h | 33 ++++---- .../handwired/dactyl_manuform/3x5_3/info.json | 80 ++++++++++--------- .../handwired/dactyl_manuform/3x5_3/rules.mk | 4 +- 3 files changed, 63 insertions(+), 54 deletions(-) diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h b/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h index f9a843d7d69a..7db11618cf92 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h +++ b/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h @@ -14,24 +14,25 @@ GNU General Public License 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 "dactyl_manuform.h" -#define LAYOUT_split_3x5_3(\ - L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ - L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ - L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ - L32, L33, L34, R30, R31, R32 \ - ) \ - { \ - { L00, L01, L02, L03, L04 }, \ - { L10, L11, L12, L13, L14 }, \ - { L20, L21, L22, L23, L24 }, \ - { KC_NO, KC_NO, L32, L33, L34 }, \ - \ - { R00, R01, R02, R03, R04 }, \ - { R10, R11, R12, R13, R14 }, \ - { R20, R21, R22, R23, R24 }, \ - { R30, R31, R32, KC_NO, KC_NO }, \ +#define XXX KC_NO + +#define LAYOUT_split_3x5_3( \ + L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ + L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ + L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ + L32, L33, L34, R30, R31, R32 \ +) { \ + { L00, L01, L02, L03, L04 }, \ + { L10, L11, L12, L13, L14 }, \ + { L20, L21, L22, L23, L24 }, \ + { XXX, XXX, L32, L33, L34 }, \ + { R00, R01, R02, R03, R04 }, \ + { R10, R11, R12, R13, R14 }, \ + { R20, R21, R22, R23, R24 }, \ + { R30, R31, R32, XXX, XXX } \ } diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/info.json b/keyboards/handwired/dactyl_manuform/3x5_3/info.json index 47642262212f..abf23aa45db7 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/info.json +++ b/keyboards/handwired/dactyl_manuform/3x5_3/info.json @@ -3,45 +3,51 @@ "url": "https://www.dlford.io/keyboard-build-guide-per-key-rgb-leds/", "maintainer": "dlford", "layouts": { - "LAYOUT": { + "LAYOUT_split_3x5_3": { "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": 2, "y": 3 }, - { "x": 3, "y": 3 }, - { "x": 4, "y": 3 }, + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, - { "x": 10, "y": 0 }, - { "x": 11, "y": 0 }, - { "x": 12, "y": 0 }, - { "x": 13, "y": 0 }, - { "x": 14, "y": 0 }, - { "x": 10, "y": 1 }, - { "x": 11, "y": 1 }, - { "x": 12, "y": 1 }, - { "x": 13, "y": 1 }, - { "x": 14, "y": 1 }, - { "x": 10, "y": 2 }, - { "x": 11, "y": 2 }, - { "x": 12, "y": 2 }, - { "x": 13, "y": 2 }, - { "x": 14, "y": 2 }, - { "x": 10, "y": 3 }, - { "x": 11, "y": 3 }, - { "x": 12, "y": 3 } + {"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": 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": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 12, "y": 2}, + {"x": 13, "y": 2}, + {"x": 14, "y": 2}, + + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3} ] } } diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk b/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk index 12812870e37d..cdc7369c250c 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk +++ b/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk @@ -1,10 +1,12 @@ -# Build Options # MCU name MCU = atmega32u4 # Bootloader selection BOOTLOADER = caterina +# Build Options +# change yes to no to disable +# BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control From 9e30084a6e02d6de71db4569e86f3f46fd61f12f Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 28 Apr 2022 09:11:41 +1000 Subject: [PATCH 36/71] Add Ukrainian keymap header (#16947) * Add Ukrainian keymap header * Docs --- docs/reference_keymap_extras.md | 1 + quantum/keymap_extras/keymap_ukrainian.h | 134 +++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 quantum/keymap_extras/keymap_ukrainian.h diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index ae3d54e4de86..98be5c366983 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -74,6 +74,7 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q |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` | +|Ukrainian |`keymap_ukrainian.h` | | There are also a few which are not quite language-specific, but useful if you are not using a QWERTY layout: diff --git a/quantum/keymap_extras/keymap_ukrainian.h b/quantum/keymap_extras/keymap_ukrainian.h new file mode 100644 index 000000000000..e5cd80f3d283 --- /dev/null +++ b/quantum/keymap_extras/keymap_ukrainian.h @@ -0,0 +1,134 @@ +/* Copyright 2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 │ - │ = │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ Й │ Ц │ У │ К │ Е │ Н │ Г │ Ш │ Щ │ З │ Х │ Ї │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ Ф │ І │ В │ А │ П │ Р │ О │ Л │ Д │ Ж │ Є │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ Я │ Ч │ С │ М │ И │ Т │ Ь │ Б │ Ю │ . │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define UA_QUOT KC_GRV // ' +#define UA_1 KC_1 // 1 +#define UA_2 KC_2 // 2 +#define UA_3 KC_3 // 3 +#define UA_4 KC_4 // 4 +#define UA_5 KC_5 // 5 +#define UA_6 KC_6 // 6 +#define UA_7 KC_7 // 7 +#define UA_8 KC_8 // 8 +#define UA_9 KC_9 // 9 +#define UA_0 KC_0 // 0 +#define UA_MINS KC_MINS // - +#define UA_EQL KC_EQL // = +// Row 2 +#define UA_YOT KC_Q // Й +#define UA_TSE KC_W // Ц +#define UA_U KC_E // У +#define UA_KA KC_R // К +#define UA_E KC_T // Е +#define UA_EN KC_Y // Н +#define UA_HE KC_U // Г +#define UA_SHA KC_I // Ш +#define UA_SHCH KC_O // Щ +#define UA_ZE KC_P // З +#define UA_KHA KC_LBRC // Х +#define UA_YI KC_RBRC // Ї +#define UA_BSLS KC_BSLS // (backslash) +// Row 3 +#define UA_EF KC_A // Ф +#define UA_I KC_S // І +#define UA_VE KC_D // В +#define UA_A KC_F // А +#define UA_PE KC_G // П +#define UA_ER KC_H // Р +#define UA_O KC_J // О +#define UA_EL KC_K // Л +#define UA_DE KC_L // Д +#define UA_ZHE KC_SCLN // Ж +#define UA_YE KC_QUOT // Є +// Row 4 +#define UA_YA KC_Z // Я +#define UA_CHE KC_X // Ч +#define UA_ES KC_C // С +#define UA_EM KC_V // М +#define UA_Y KC_B // И +#define UA_TE KC_N // Т +#define UA_SOFT KC_M // Ь +#define UA_BE KC_COMM // Б +#define UA_YU KC_DOT // Ю +#define UA_DOT KC_SLSH // . + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ₴ │ ! │ " │ № │ ; │ % │ : │ ? │ * │ ( │ ) │ _ │ + │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ / │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ │ │ │ │ │ │ │ │ │ , │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define UA_HRYV S(UA_QUOT) // ₴ +#define UA_EXLM S(UA_1) // ! +#define UA_DQUO S(UA_2) // " +#define UA_NUM S(UA_3) // № +#define UA_SCLN S(UA_4) // ; +#define UA_PERC S(UA_5) // % +#define UA_COLN S(UA_6) // : +#define UA_QUES S(UA_7) // ? +#define UA_ASTR S(UA_8) // * +#define UA_LPRN S(UA_9) // ( +#define UA_RPRN S(UA_0) // ) +#define UA_UNDS S(UA_MINS) // _ +#define UA_PLUS S(UA_EQL) // + +// Row 2 +#define UA_SLSH S(UA_BSLS) // / +// Row 4 +#define UA_COMM S(UA_DOT) // , + +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ ґ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 2 +#define UA_GE ALGR(UA_HE) // ґ From 888ce0a24f87dc49e151528369e1e0de23643db8 Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Thu, 28 Apr 2022 12:35:27 -0500 Subject: [PATCH 37/71] [Keyboard] Small fix for Sol3 with only a slave touch bar (#16952) --- keyboards/rgbkb/common/touch_encoder.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/keyboards/rgbkb/common/touch_encoder.c b/keyboards/rgbkb/common/touch_encoder.c index 1e6c54e8ebf4..5f0e4f0ccad0 100644 --- a/keyboards/rgbkb/common/touch_encoder.c +++ b/keyboards/rgbkb/common/touch_encoder.c @@ -244,12 +244,21 @@ void touch_encoder_update_slave(slave_touch_status_t slave_state) { } void touch_encoder_update(int8_t transaction_id) { - if (!touch_initialized) return; #if TOUCH_UPDATE_INTERVAL > 0 if (!timer_expired(timer_read(), touch_update_timer)) return; touch_update_timer = timer_read() + TOUCH_UPDATE_INTERVAL; #endif + if (is_keyboard_master()) { + slave_touch_status_t slave_state; + if (transaction_rpc_exec(transaction_id, sizeof(bool), &touch_disabled, sizeof(slave_touch_status_t), &slave_state)) { + if (memcmp(&touch_slave_state, &slave_state, sizeof(slave_touch_status_t))) + touch_encoder_update_slave(slave_state); + } + } + + if (!touch_initialized) return; + read_register(QT_DETECTION_STATUS, &touch_raw[0], sizeof(touch_raw)); touch_processed[1] = touch_raw[1]; touch_processed[2] = touch_raw[2]; @@ -277,14 +286,6 @@ void touch_encoder_update(int8_t transaction_id) { if ((touch_raw[0] & SLIDER_BIT) && touch_processed[3] != touch_raw[3]) { touch_encoder_update_position(); } - - if (is_keyboard_master()) { - slave_touch_status_t slave_state; - if (transaction_rpc_exec(transaction_id, sizeof(bool), &touch_disabled, sizeof(slave_touch_status_t), &slave_state)) { - if (memcmp(&touch_slave_state, &slave_state, sizeof(slave_touch_status_t))) - touch_encoder_update_slave(slave_state); - } - } } void touch_encoder_calibrate(void) { From e811a9b973d9bc7d34a1b24e6e4f68935fe1870e Mon Sep 17 00:00:00 2001 From: Felix Jen Date: Thu, 28 Apr 2022 12:37:57 -0500 Subject: [PATCH 38/71] [Keyboard] Add Maker Keyboards Alexa Solder PCB (#16943) --- keyboards/lucid/alexa_solder/alexa_solder.c | 14 +++ keyboards/lucid/alexa_solder/alexa_solder.h | 32 ++++++ keyboards/lucid/alexa_solder/config.h | 103 ++++++++++++++++++ keyboards/lucid/alexa_solder/info.json | 86 +++++++++++++++ .../alexa_solder/keymaps/default/keymap.c | 39 +++++++ .../lucid/alexa_solder/keymaps/via/keymap.c | 57 ++++++++++ .../lucid/alexa_solder/keymaps/via/rules.mk | 1 + keyboards/lucid/alexa_solder/readme.md | 13 +++ keyboards/lucid/alexa_solder/rules.mk | 21 ++++ 9 files changed, 366 insertions(+) create mode 100644 keyboards/lucid/alexa_solder/alexa_solder.c create mode 100644 keyboards/lucid/alexa_solder/alexa_solder.h create mode 100644 keyboards/lucid/alexa_solder/config.h create mode 100644 keyboards/lucid/alexa_solder/info.json create mode 100644 keyboards/lucid/alexa_solder/keymaps/default/keymap.c create mode 100644 keyboards/lucid/alexa_solder/keymaps/via/keymap.c create mode 100644 keyboards/lucid/alexa_solder/keymaps/via/rules.mk create mode 100644 keyboards/lucid/alexa_solder/readme.md create mode 100644 keyboards/lucid/alexa_solder/rules.mk diff --git a/keyboards/lucid/alexa_solder/alexa_solder.c b/keyboards/lucid/alexa_solder/alexa_solder.c new file mode 100644 index 000000000000..446e4f063ab2 --- /dev/null +++ b/keyboards/lucid/alexa_solder/alexa_solder.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "alexa_solder.h" diff --git a/keyboards/lucid/alexa_solder/alexa_solder.h b/keyboards/lucid/alexa_solder/alexa_solder.h new file mode 100644 index 000000000000..3c835dc943de --- /dev/null +++ b/keyboards/lucid/alexa_solder/alexa_solder.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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" + +/* Alexa Keymap Definitions */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, 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, K43, K46, K48, 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, 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, KC_NO, KC_NO, K46, KC_NO, K48, K49, K4A, KC_NO, K4C, K4D, K4E } \ +} diff --git a/keyboards/lucid/alexa_solder/config.h b/keyboards/lucid/alexa_solder/config.h new file mode 100644 index 000000000000..63fd1f2e2d3a --- /dev/null +++ b/keyboards/lucid/alexa_solder/config.h @@ -0,0 +1,103 @@ +/* +Copyright 2022 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0x7667 // Maker Keyboards +#define PRODUCT_ID 0x0006 // Alexa +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER Maker Keyboards +#define PRODUCT Alexa + +/* 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) + *å +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F4, F1, F7, F6, F5 } +#define MATRIX_COL_PINS { F0, B1, B2, B3, B7, D0, D1, D2, D3, D5, D7, B4, B5, B6, C6 } +#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 Indicator LED's */ +#define LED_CAPS_LOCK_PIN C7 + +/* 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 diff --git a/keyboards/lucid/alexa_solder/info.json b/keyboards/lucid/alexa_solder/info.json new file mode 100644 index 000000000000..319cb7120652 --- /dev/null +++ b/keyboards/lucid/alexa_solder/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "Alexa Solder", + "url": "http://www.makerkeyboards.com", + "maintainer": "Maker Keyboards", + "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} + ] + } + } +} diff --git a/keyboards/lucid/alexa_solder/keymaps/default/keymap.c b/keyboards/lucid/alexa_solder/keymaps/default/keymap.c new file mode 100644 index 000000000000..89ab39deace5 --- /dev/null +++ b/keyboards/lucid/alexa_solder/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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_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_DEL, 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, 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_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_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/lucid/alexa_solder/keymaps/via/keymap.c b/keyboards/lucid/alexa_solder/keymaps/via/keymap.c new file mode 100644 index 000000000000..bbf11418c787 --- /dev/null +++ b/keyboards/lucid/alexa_solder/keymaps/via/keymap.c @@ -0,0 +1,57 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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_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_DEL, 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, 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_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_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, 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_PSCR, KC_SLCK, KC_PAUSE,RESET, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + + [_LAYER2] = 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 + ), + + [_LAYER3] = 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/lucid/alexa_solder/keymaps/via/rules.mk b/keyboards/lucid/alexa_solder/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/lucid/alexa_solder/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/lucid/alexa_solder/readme.md b/keyboards/lucid/alexa_solder/readme.md new file mode 100644 index 000000000000..3a16e5817823 --- /dev/null +++ b/keyboards/lucid/alexa_solder/readme.md @@ -0,0 +1,13 @@ +# Alexa Solder PCB by Lucid + +The following is the QMK Firmware for the Alexa *Solder* PCB for [MakerKeyboards](http://www.makerkeyboards.com). +* Keyboard Maintainer: Lucid +* Hardware Supported: Alexa + +Make example for this keyboard (after setting up your build environment): + + make lucid/alexa_solder: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 can be entered by pressing the reset button near the main microcontroller while the board is plugged in. Alternatively, it may be entered by holding the top-left-most switch and plugging in the PCB while held. diff --git a/keyboards/lucid/alexa_solder/rules.mk b/keyboards/lucid/alexa_solder/rules.mk new file mode 100644 index 000000000000..67f00abb1efe --- /dev/null +++ b/keyboards/lucid/alexa_solder/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output From 6ffa37a9e8d2689a8ea0ed21ff089f128970ae1f Mon Sep 17 00:00:00 2001 From: skeletonkbd <90203406+skeletonkbd@users.noreply.github.com> Date: Fri, 29 Apr 2022 03:16:21 +0900 Subject: [PATCH 39/71] [Keyboard] Add SkeletonNumPad (#16753) * add SkeletonNumPad keyboard * fix * fix * fixed info.json * Update keyboards/skeletonkbd/skeletonnumpad/rules.mk Co-authored-by: Ryan * Change RGBLIGHT_LIMIT_VAL Co-authored-by: Ryan --- keyboards/skeletonkbd/skeletonnumpad/config.h | 145 ++++++++++++++++++ .../skeletonkbd/skeletonnumpad/info.json | 10 ++ .../skeletonnumpad/keymaps/default/keymap.c | 56 +++++++ .../skeletonnumpad/keymaps/default/readme.md | 3 + .../skeletonnumpad/keymaps/via/keymap.c | 55 +++++++ .../skeletonnumpad/keymaps/via/readme.md | 3 + .../skeletonnumpad/keymaps/via/rules.mk | 1 + .../skeletonkbd/skeletonnumpad/readme.md | 27 ++++ keyboards/skeletonkbd/skeletonnumpad/rules.mk | 18 +++ .../skeletonnumpad/skeletonnumpad.c | 17 ++ .../skeletonnumpad/skeletonnumpad.h | 42 +++++ 11 files changed, 377 insertions(+) create mode 100644 keyboards/skeletonkbd/skeletonnumpad/config.h create mode 100644 keyboards/skeletonkbd/skeletonnumpad/info.json create mode 100644 keyboards/skeletonkbd/skeletonnumpad/keymaps/default/keymap.c create mode 100644 keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md create mode 100644 keyboards/skeletonkbd/skeletonnumpad/keymaps/via/keymap.c create mode 100644 keyboards/skeletonkbd/skeletonnumpad/keymaps/via/readme.md create mode 100644 keyboards/skeletonkbd/skeletonnumpad/keymaps/via/rules.mk create mode 100644 keyboards/skeletonkbd/skeletonnumpad/readme.md create mode 100644 keyboards/skeletonkbd/skeletonnumpad/rules.mk create mode 100644 keyboards/skeletonkbd/skeletonnumpad/skeletonnumpad.c create mode 100644 keyboards/skeletonkbd/skeletonnumpad/skeletonnumpad.h diff --git a/keyboards/skeletonkbd/skeletonnumpad/config.h b/keyboards/skeletonkbd/skeletonnumpad/config.h new file mode 100644 index 000000000000..3e93068b5a2f --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/config.h @@ -0,0 +1,145 @@ +/* +Copyright 2022 SkeletonKBD + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0x736C +#define PRODUCT_ID 0x6E70 +#define DEVICE_VER 0x0001 +#define MANUFACTURER SkeletonKBD +#define PRODUCT SkeletonNumPad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#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 { B6, C6, C7, F7, F6 } +#define MATRIX_COL_PINS { D6, D7, B4, B5 } +#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 D4 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 17 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 120 /* 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 +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/skeletonkbd/skeletonnumpad/info.json b/keyboards/skeletonkbd/skeletonnumpad/info.json new file mode 100644 index 000000000000..62f3861e5ee6 --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "skeletonnumpad", + "url": "https://github.com/skeletonkbd/SkeletonNumPad", + "maintainer": "skeletonkbd", + "layouts": { + "LAYOUT_numpad_5x4": { + "layout": [{"label":"Num Lock", "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}] + } + } +} \ No newline at end of file diff --git a/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/keymap.c b/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/keymap.c new file mode 100644 index 000000000000..0f6bd59563fb --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2022 SkeletonKBD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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, + _L1, + _L2, + _L3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_numpad_5x4( + 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 + ), + [_L1] = 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 + ), + [_L2] = 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 + ), + [_L3] = 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 + ), +}; + diff --git a/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md b/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md new file mode 100644 index 000000000000..4a4ed5e7e992 --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md @@ -0,0 +1,3 @@ +![SkeletonNumPad Layout Image](https://i.imgur.com/oHqihGI.png) + +# The default keymap for skeletonnumpad \ No newline at end of file diff --git a/keyboards/skeletonkbd/skeletonnumpad/keymaps/via/keymap.c b/keyboards/skeletonkbd/skeletonnumpad/keymaps/via/keymap.c new file mode 100644 index 000000000000..d6add70ce1fb --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 SkeletonKBD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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, + _L1, + _L2, + _L3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_numpad_5x4( + 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 + ), + [_L1] = 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 + ), + [_L2] = 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 + ), + [_L3] = 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 + ), +}; diff --git a/keyboards/skeletonkbd/skeletonnumpad/keymaps/via/readme.md b/keyboards/skeletonkbd/skeletonnumpad/keymaps/via/readme.md new file mode 100644 index 000000000000..8ebc93b1f80c --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/keymaps/via/readme.md @@ -0,0 +1,3 @@ +![SkeletonNumPad Layout Image](https://i.imgur.com/oHqihGI.png) + +# The default keymap for skeletonnumpad diff --git a/keyboards/skeletonkbd/skeletonnumpad/keymaps/via/rules.mk b/keyboards/skeletonkbd/skeletonnumpad/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/skeletonkbd/skeletonnumpad/readme.md b/keyboards/skeletonkbd/skeletonnumpad/readme.md new file mode 100644 index 000000000000..fc67c79e54f8 --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/readme.md @@ -0,0 +1,27 @@ +# SkeletonNumPad + +![skeletonnumpad](https://i.imgur.com/nWPda21h.jpeg) + +Simple NumPad with acrylic case. + +- Keyboard Maintainer: [SkeletonKBD](https://github.com/skeletonkbd/SkeletonNumPad) +- Hardware Supported: SkeletonNumPad +- Hardware Availability: https://github.com/skeletonkbd/SkeletonNumPad + +Make example for this keyboard (after setting up your build environment): + + make skeletonkbd/skeletonnumpad:default + +Flashing example for this keyboard: + + make skeletonkbd/skeletonnumpad: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/keyboards/skeletonkbd/skeletonnumpad/rules.mk b/keyboards/skeletonkbd/skeletonnumpad/rules.mk new file mode 100644 index 000000000000..3ff392a61f5b --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/skeletonkbd/skeletonnumpad/skeletonnumpad.c b/keyboards/skeletonkbd/skeletonnumpad/skeletonnumpad.c new file mode 100644 index 000000000000..38c78ca56e2b --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/skeletonnumpad.c @@ -0,0 +1,17 @@ +/* Copyright 2022 SkeletonKBD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "skeletonnumpad.h" diff --git a/keyboards/skeletonkbd/skeletonnumpad/skeletonnumpad.h b/keyboards/skeletonkbd/skeletonnumpad/skeletonnumpad.h new file mode 100644 index 000000000000..9782090efedc --- /dev/null +++ b/keyboards/skeletonkbd/skeletonnumpad/skeletonnumpad.h @@ -0,0 +1,42 @@ +/* Copyright 2022 SkeletonKBD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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_numpad_5x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, \ + K20, K21, K22, K13, \ + K30, K31, K32, \ + K40, K42, K33 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, KC_NO },\ + { K30, K31, K32, K33 }, \ + { K40, KC_NO, K42, KC_NO } \ +} From b05383141cf98427785f01e8cb8520933152953b Mon Sep 17 00:00:00 2001 From: Nicholas Granado Date: Thu, 28 Apr 2022 23:58:22 -0700 Subject: [PATCH 40/71] [Keymap] Add keymap for kinesis advantage (#16862) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/kinesis/keymaps/heatxsink/keymap.c | 228 ++++++++++++++++++ keyboards/kinesis/keymaps/heatxsink/readme.md | 165 +++++++++++++ keyboards/kinesis/keymaps/heatxsink/rules.mk | 5 + 3 files changed, 398 insertions(+) create mode 100644 keyboards/kinesis/keymaps/heatxsink/keymap.c create mode 100644 keyboards/kinesis/keymaps/heatxsink/readme.md create mode 100644 keyboards/kinesis/keymaps/heatxsink/rules.mk diff --git a/keyboards/kinesis/keymaps/heatxsink/keymap.c b/keyboards/kinesis/keymaps/heatxsink/keymap.c new file mode 100644 index 000000000000..1f49c4622c84 --- /dev/null +++ b/keyboards/kinesis/keymaps/heatxsink/keymap.c @@ -0,0 +1,228 @@ +/* Copyright 2022 Nicholas Granado + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { + _DEFAULT, + _QWERTY, + _COLEMAK_MOD_DH, + _WORKMAN, + _KEYPAD, + _LAYERS, +}; + +#define DEFAULT DF(_DEFAULT) +#define QWERTY TO(_QWERTY) +#define CMMDH TO(_COLEMAK_MOD_DH) +#define WM TO(_WORKMAN) +#define KEYPAD TO(_KEYPAD) +#define LAYERS OSL(_LAYERS) +#define HCTLESC CTL_T(KC_ESC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_DEFAULT] = LAYOUT( + // LHAND + 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 ,_______,_______,_______,_______,_______, + HCTLESC,_______,_______,_______,_______,_______, + KC_LSPO,_______,_______,_______,_______,_______, + KC_GRV ,LAYERS ,KC_LEFT,KC_RGHT, + // LTHUMB + KC_LALT,KC_LCTL, + KC_HOME, + KC_BSPC,KC_DEL ,KC_END , + // RHAND + KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR,KC_SLCK,KC_PAUS,KEYPAD ,RESET , + KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, + _______,_______,_______,_______,_______,KC_BSLS, + _______,_______,_______,_______,_______,KC_QUOT, + _______,_______,_______,_______,_______,KC_RSPC, + KC_UP ,KC_DOWN,KC_LBRC,KC_RBRC, + // RTHUMB + KC_RCTL,KC_LGUI, + KC_PGUP, + KC_PGDN,KC_ENT ,KC_SPC + ), + + [_QWERTY] = LAYOUT( + // LHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,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 , + _______,_______,_______,_______, + // LTHUMB + _______,_______, + _______, + _______,_______,_______, + // RHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,_______, + KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,_______, + KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,_______, + _______,_______,_______,_______, + // RTHUMB + _______,_______, + _______, + _______,_______,_______ + ), + + [_COLEMAK_MOD_DH] = LAYOUT( + // LHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,KC_Q ,KC_W ,KC_F ,KC_P ,KC_B, + _______,KC_A ,KC_R ,KC_S ,KC_T ,KC_G, + _______,KC_Z ,KC_X ,KC_C ,KC_D ,KC_V, + _______,_______,_______,_______, + // LTHUMB + _______,_______, + _______, + _______,_______,_______, + // RHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + KC_J ,KC_L ,KC_U ,KC_Y ,KC_SCLN,_______, + KC_M ,KC_N ,KC_E ,KC_I ,KC_O ,_______, + KC_K ,KC_H ,KC_COMM,KC_DOT ,KC_SLSH,_______, + _______,_______,_______,_______, + // RTHUMB + _______,_______, + _______, + _______,_______,_______ + ), + + [_WORKMAN] = LAYOUT( + // LHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,KC_Q ,KC_D ,KC_R ,KC_W ,KC_B, + _______,KC_A ,KC_S ,KC_H ,KC_T ,KC_G, + _______,KC_Z ,KC_X ,KC_M ,KC_C ,KC_V, + _______,_______,_______,_______, + // LTHUMB + _______,_______, + _______, + _______,_______,_______, + // RHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + KC_J ,KC_F ,KC_U ,KC_P ,KC_SCLN,_______, + KC_Y ,KC_N ,KC_E ,KC_O ,KC_I ,_______, + KC_K ,KC_L ,KC_COMM,KC_DOT ,KC_SLSH,_______, + _______,_______,_______,_______, + // RTHUMB + _______,_______, + _______, + _______,_______,_______ + ), + + [_KEYPAD] = LAYOUT ( + // LHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,_______,KC_MUTE,KC_VOLD,KC_VOLU,_______, + _______,KC_MSTP,KC_MPRV,KC_MPLY,KC_MNXT,KC_MSEL, + _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______, + // LTHUMB + _______,_______, + _______, + _______,_______,_______, + + // RHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,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_LPRN,KC_RPRN,KC_PDOT,KC_PENT, + // RTHUMB + _______,_______, + _______, + _______,KC_PENT,KC_P0 + ), + + [_LAYERS] = LAYOUT ( + // LHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,QWERTY ,CMMDH ,WM ,KEYPAD ,_______, + _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______, + // LTHUMB + _______,_______, + _______, + _______,_______,_______, + + // RHAND + _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______, + // RTHUMB + _______,_______, + _______, + _______,_______,_______ + ), +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + writePinHigh(LED_NUM_LOCK_PIN); + writePinHigh(LED_SCROLL_LOCK_PIN); + writePinHigh(LED_COMPOSE_PIN); + writePinHigh(LED_CAPS_LOCK_PIN); + switch (get_highest_layer(state)) { + case _QWERTY: + // Caps Lock Lit + writePinLow(LED_CAPS_LOCK_PIN); + break; + case _COLEMAK_MOD_DH: + // Num Lock Lit + writePinLow(LED_NUM_LOCK_PIN); + break; + case _WORKMAN: + // Scroll Lock Lit + writePinLow(LED_SCROLL_LOCK_PIN); + break; + case _KEYPAD: + // Compose Lit + writePinLow(LED_COMPOSE_PIN); + break; + case _LAYERS: + // All LEDs Lit + writePinLow(LED_SCROLL_LOCK_PIN); + writePinLow(LED_NUM_LOCK_PIN); + writePinLow(LED_CAPS_LOCK_PIN); + writePinLow(LED_COMPOSE_PIN); + break; + } + return state; +} + +bool led_update_user(led_t led_state) { + // disable led_update_kb() so that we do not override layer indicators + return false; +} + diff --git a/keyboards/kinesis/keymaps/heatxsink/readme.md b/keyboards/kinesis/keymaps/heatxsink/readme.md new file mode 100644 index 000000000000..83a2b558549c --- /dev/null +++ b/keyboards/kinesis/keymaps/heatxsink/readme.md @@ -0,0 +1,165 @@ +# heatxsink's keymap for kinesis advantage w/ kinx + +## my keymap has three objectives ... +1. Make it easy to add keyboard layouts (layers). +2. Easy to swap between keyboard layouts (layers). +3. Use LED indicators on the kinX controller to provide feedback as to what layer is selected. + +## layer description +0. DEFAULT (function key row, number row, left/right gutter keys, and thumb keys) +1. QWERTY +2. CMMDH [Colemak Mod-DH](https://colemakmods.github.io/mod-dh/) +3. WM [Workman](https://workmanlayout.org/) +3. Keypad (number pad on the right, media keys on the left) + +## layers +``` +Keymap: DEFAULT +Description: keys separated by "/" tap for first, hold for second; uses Space Cadet Shifts + + ,-------------------------------------------------------------------------------------------------------------------. + | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | PSCR | SLCK | PAUS |KEYPAD| BOOT | + |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| + | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | + |--------+------+------+------+------+------| +------+------+------+------+------+--------| + | Tab | | | | | | | | | | | | \| | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + |ESC/CTRL| | | | | | | | | | | | '" | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + |SC_Shift| | | | | | | | | | | |SC_Shift| + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | `~ |LAYERS| Left | Right| | Up | Down | [{ | ]} | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | ALT | CTRL | | CTRL | GUI | + ,------|------|------| |------+------+------. + | | | Home | | PgUp | | | + | BkSp | Del |------| |------|Return| Space| + | | | End | | PgDn | | | + `--------------------' `--------------------' + +Keymap: LAYERS +Description: OSL that allows for easy switching between layers. + + ,-------------------------------------------------------------------------------------------------------------------. + | | | | | | | | | | | | | | | | | + |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| + | |QWERTY|CMMDH |WM |KEYPAD| | | | | | | | | + |--------+------+------+------+------+------| +------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | | | | | | | | | | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +Keymap: QWERTY + + ,-------------------------------------------------------------------------------------------------------------------. + | | | | | | | | | | | | | | | | | + |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| +------+------+------+------+------+--------| + | | 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 | ,. | .> | /? | | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | | | | | | | | | | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +Keymap: CMMDH (Colemak Mod-DH) + + ,-------------------------------------------------------------------------------------------------------------------. + | | | | | | | | | | | | | | | | | + |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| +------+------+------+------+------+--------| + | | Q | W | F | P | B | | J | L | U | Y | ;: | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | A | R | S | T | G | | M | N | E | I | O | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | Z | X | C | D | V | | K | H | ,. | .> | /? | | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | | | | | | | | | | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +Keymap: WM (Workman) + + ,-------------------------------------------------------------------------------------------------------------------. + | | | | | | | | | | | | | | | | | + |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| +------+------+------+------+------+--------| + | | Q | D | R | W | B | | J | F | U | P | ;: | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | A | S | H | T | G | | Y | N | E | O | I | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | Z | X | M | C | V | | K | L | ,. | .> | /? | | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | | | | | | | | | | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +Keymap: KEYPAD + + ,-------------------------------------------------------------------------------------------------------------------. + | | | | | | | | | | | | | | | | | + |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| + | | | | | | | | |NUMLCK| = | / |PASTE | | + |--------+------+------+------+------+------| +------+------+------+------+------+--------| + | | | MUTE | VOL- | VOL+ | | | | 7 | 8 | 9 | - | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | STOP | PREV | PLAY | NEXT |SELECT| | | 4 | 5 | 6 | + | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | 1 | 2 | 3 | ENTER| | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | | | | | | ( | ) | . | ENTER| + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------|ENTER | 0 | + | | | | | | | | + `--------------------' `--------------------' +``` +## requirements +* K500 or K600 Kinesis Advantage MPC or Advantage 2. +* [kinx project / stapelberg controller](https://github.com/kinx-project/kint) + +## shoutout(s) +* `stapelberg` self explanitory +* `jwon` for his LED indicator code +* `tuesdayjohn` for how he did layers + diff --git a/keyboards/kinesis/keymaps/heatxsink/rules.mk b/keyboards/kinesis/keymaps/heatxsink/rules.mk new file mode 100644 index 000000000000..f8c1a24ccac5 --- /dev/null +++ b/keyboards/kinesis/keymaps/heatxsink/rules.mk @@ -0,0 +1,5 @@ +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +NKRO_ENABLE = yes +SLEEP_LED_ENABLE = yes From 546161123583b6c41f62d110382dae6eed908eef Mon Sep 17 00:00:00 2001 From: Felix Jen Date: Fri, 29 Apr 2022 02:06:49 -0500 Subject: [PATCH 41/71] [Keyboard] Solanis H87C/H88C Compatible Replacement PCBs (#16942) Co-authored-by: Ryan --- keyboards/fjlabs/solanis/config.h | 116 ++++++++++++++++++ keyboards/fjlabs/solanis/info.json | 108 ++++++++++++++++ .../fjlabs/solanis/keymaps/default/keymap.c | 41 +++++++ keyboards/fjlabs/solanis/keymaps/via/keymap.c | 61 +++++++++ keyboards/fjlabs/solanis/keymaps/via/rules.mk | 1 + keyboards/fjlabs/solanis/readme.md | 15 +++ keyboards/fjlabs/solanis/rules.mk | 21 ++++ keyboards/fjlabs/solanis/solanis.c | 14 +++ keyboards/fjlabs/solanis/solanis.h | 34 +++++ 9 files changed, 411 insertions(+) create mode 100644 keyboards/fjlabs/solanis/config.h create mode 100644 keyboards/fjlabs/solanis/info.json create mode 100644 keyboards/fjlabs/solanis/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/solanis/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/solanis/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/solanis/readme.md create mode 100644 keyboards/fjlabs/solanis/rules.mk create mode 100644 keyboards/fjlabs/solanis/solanis.c create mode 100644 keyboards/fjlabs/solanis/solanis.h diff --git a/keyboards/fjlabs/solanis/config.h b/keyboards/fjlabs/solanis/config.h new file mode 100644 index 000000000000..50649889fc44 --- /dev/null +++ b/keyboards/fjlabs/solanis/config.h @@ -0,0 +1,116 @@ +/* +Copyright 2022 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 // FJLaboratories +#define PRODUCT_ID 0x0017 // Solanis +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER FJLaboratories +#define PRODUCT Solanis + +/* 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) + *å +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { B4, B5, B6, C0, E1, E0 } +#define MATRIX_COL_PINS { F2, F3, F4, F5, F6, F7, A0, A1, A2, A3, A4, A5, A6, A7, D5, D6, D7 } +#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 */ +#define RGB_DI_PIN B7 +#define RGBLED_NUM 24 +#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_LIMIT_VAL 172 +#define RGB_VAL_STEP 12 + +/* 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 \ No newline at end of file diff --git a/keyboards/fjlabs/solanis/info.json b/keyboards/fjlabs/solanis/info.json new file mode 100644 index 000000000000..2963f672de88 --- /dev/null +++ b/keyboards/fjlabs/solanis/info.json @@ -0,0 +1,108 @@ +{ + "keyboard_name": "Solanis", + "url": "http://www.fjlaboratories.com/", + "maintainer": "FJLabs", + "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":"F13", "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":"Back Space", "x":13, "y":1.25}, + {"label":"Back Space", "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":"SQ", "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":"Shift", "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":2.25}, + {"x":6, "y":5.25, "w":1.25}, + {"x":7.25, "y":5.25, "w":2.75}, + {"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/fjlabs/solanis/keymaps/default/keymap.c b/keyboards/fjlabs/solanis/keymaps/default/keymap.c new file mode 100644 index 000000000000..83f2cc220cf1 --- /dev/null +++ b/keyboards/fjlabs/solanis/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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_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_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_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_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = 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 + ) +}; diff --git a/keyboards/fjlabs/solanis/keymaps/via/keymap.c b/keyboards/fjlabs/solanis/keymaps/via/keymap.c new file mode 100644 index 000000000000..6bff23728f5b --- /dev/null +++ b/keyboards/fjlabs/solanis/keymaps/via/keymap.c @@ -0,0 +1,61 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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_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_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_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_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = 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 + ), + + [_LAYER2] = 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 + ), + + [_LAYER3] = 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 + ) +}; \ No newline at end of file diff --git a/keyboards/fjlabs/solanis/keymaps/via/rules.mk b/keyboards/fjlabs/solanis/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/fjlabs/solanis/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/fjlabs/solanis/readme.md b/keyboards/fjlabs/solanis/readme.md new file mode 100644 index 000000000000..93f5dd00211d --- /dev/null +++ b/keyboards/fjlabs/solanis/readme.md @@ -0,0 +1,15 @@ +# Solanis H87C/H88C Replacement PCBs by FJLaboratories + +The following is the QMK Firmware for the Solanis by [FJLaboratories](https://www.fjlaboratories.com/). +* Keyboard Maintainer: FJLaboratories +* Hardware Supported: Solanis + +Make example for this keyboard (after setting up your build environment): + + make fjlabs/solanis: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 + +You can enter the bootloader by shorting the RST pads on the back of the PCB while the PCB is plugged into the computer. diff --git a/keyboards/fjlabs/solanis/rules.mk b/keyboards/fjlabs/solanis/rules.mk new file mode 100644 index 000000000000..a5745c349095 --- /dev/null +++ b/keyboards/fjlabs/solanis/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = at90usb646 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/fjlabs/solanis/solanis.c b/keyboards/fjlabs/solanis/solanis.c new file mode 100644 index 000000000000..3104ff485edd --- /dev/null +++ b/keyboards/fjlabs/solanis/solanis.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "solanis.h" diff --git a/keyboards/fjlabs/solanis/solanis.h b/keyboards/fjlabs/solanis/solanis.h new file mode 100644 index 000000000000..507f08700158 --- /dev/null +++ b/keyboards/fjlabs/solanis/solanis.h @@ -0,0 +1,34 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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" + +/* === All used matrix spots populated === */ +#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, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4D, K4F, \ + K50, K51, K52, K54, K55, K58, K59, K5A, K5B, 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, KC_NO, K3D, K3E, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, K54, K55, KC_NO, KC_NO, K58, K59, K5A, K5B, KC_NO, K5D, K5E, K5F, K5G } \ +} From a9a873d70b2fe75f9cabf7df6efac907baebf4f9 Mon Sep 17 00:00:00 2001 From: Rucker Machine <98196480+RuckerMachine@users.noreply.github.com> Date: Fri, 29 Apr 2022 01:13:26 -0700 Subject: [PATCH 42/71] [Keyboard] RM_Numpad: Fix layout bug (#16857) Co-authored-by: jason --- keyboards/rmkeebs/rm_numpad/info.json | 10 +++++----- keyboards/rmkeebs/rm_numpad/keymaps/default/keymap.c | 8 ++++---- .../rmkeebs/rm_numpad/keymaps/split_plus/keymap.c | 4 ++-- keyboards/rmkeebs/rm_numpad/rm_numpad.h | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/keyboards/rmkeebs/rm_numpad/info.json b/keyboards/rmkeebs/rm_numpad/info.json index 0f60a8ec06d3..9ad0ebd28648 100644 --- a/keyboards/rmkeebs/rm_numpad/info.json +++ b/keyboards/rmkeebs/rm_numpad/info.json @@ -18,19 +18,19 @@ {"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} ] }, "LAYOUT_split_plus_6x4": { @@ -58,10 +58,10 @@ {"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} ] }, "LAYOUT_ortho_6x4": { diff --git a/keyboards/rmkeebs/rm_numpad/keymaps/default/keymap.c b/keyboards/rmkeebs/rm_numpad/keymaps/default/keymap.c index 240442558c02..fef4324f19f8 100644 --- a/keyboards/rmkeebs/rm_numpad/keymaps/default/keymap.c +++ b/keyboards/rmkeebs/rm_numpad/keymaps/default/keymap.c @@ -22,10 +22,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_numpad_6x4( KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, - KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3, KC_PENT, - KC_P0, KC_PDOT + 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 ) }; diff --git a/keyboards/rmkeebs/rm_numpad/keymaps/split_plus/keymap.c b/keyboards/rmkeebs/rm_numpad/keymaps/split_plus/keymap.c index 84fa6b2a6404..9c6939e4d6d7 100644 --- a/keyboards/rmkeebs/rm_numpad/keymaps/split_plus/keymap.c +++ b/keyboards/rmkeebs/rm_numpad/keymaps/split_plus/keymap.c @@ -24,8 +24,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_EQL, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_P1, KC_P2, KC_P3, KC_PENT, - KC_P0, KC_PDOT + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT ) }; diff --git a/keyboards/rmkeebs/rm_numpad/rm_numpad.h b/keyboards/rmkeebs/rm_numpad/rm_numpad.h index 93fa9392e1a4..b66a8b8249ad 100644 --- a/keyboards/rmkeebs/rm_numpad/rm_numpad.h +++ b/keyboards/rmkeebs/rm_numpad/rm_numpad.h @@ -48,7 +48,7 @@ k00, k01, k02, k03, \ k10, k11, k12, k13, \ k20, k21, k22, \ - k30, k31, k32, k24, \ + k30, k31, k32, k24,\ k40, k41, k42, \ k51, k53, k44 \ ) { \ @@ -114,8 +114,8 @@ k10, k11, k12, k13, \ k20, k21, k22, k23, \ k30, k31, k32, k33, \ - k40, k41, k42, k44, \ - k51, k53 \ + k40, k41, k42, \ + k51, k53, k44 \ ) { \ { k00, k01, k02, k03, ___ }, \ { k10, k11, k12, k13, ___ }, \ From 7e3dc0d4dcd0876c572b010dc4fa6506cb68d050 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Fri, 29 Apr 2022 04:45:56 -0600 Subject: [PATCH 43/71] Fix fjlabs/solanis (#16965) --- keyboards/fjlabs/solanis/keymaps/default/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/fjlabs/solanis/keymaps/default/keymap.c b/keyboards/fjlabs/solanis/keymaps/default/keymap.c index 83f2cc220cf1..62c7d01b673c 100644 --- a/keyboards/fjlabs/solanis/keymaps/default/keymap.c +++ b/keyboards/fjlabs/solanis/keymaps/default/keymap.c @@ -16,11 +16,11 @@ along with this program. If not, see . enum layers { _LAYER0, - _LAYER1, + _LAYER1 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - + [_LAYER0] = 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_INS, KC_HOME, KC_PGUP, @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_LAYER1] = 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, From 51d4f26997d2bd5b590f1a6c016e4044e06dd5a0 Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Fri, 29 Apr 2022 15:56:04 -0700 Subject: [PATCH 44/71] [Keymap] Improve Pain27 default keymap readability (#16956) --- keyboards/wsk/pain27/keymaps/default/keymap.c | 51 ++++++++++++++----- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/keyboards/wsk/pain27/keymaps/default/keymap.c b/keyboards/wsk/pain27/keymaps/default/keymap.c index 54098287efc2..a1a92ea1bb16 100644 --- a/keyboards/wsk/pain27/keymaps/default/keymap.c +++ b/keyboards/wsk/pain27/keymaps/default/keymap.c @@ -1,18 +1,41 @@ +// Copyright 2020 Worldspawn (@worldspawn00) +// Copyright 2022 Hunter Haugen (@hunner) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, - MT(MOD_LCTL, KC_Z), MT(MOD_LALT, KC_X), LT(1, KC_C), LT(2, KC_V), MT(MOD_RGUI,KC_B), MT(MOD_RALT, KC_N), MT(MOD_RCTL, KC_M), MT(MOD_LSFT, KC_SPC)), - [1] = LAYOUT(KC_ESC, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_BSPC, - KC_TAB, RGB_TOG, RGB_VAD, RGB_VAI, RGB_MOD, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - KC_LCTL, KC_LALT, KC_TRNS, MO(3), KC_RGUI, KC_RALT, KC_RCTL, KC_NO), - [2] = LAYOUT(KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_GRV, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_ENT, - KC_LCTL, KC_LALT, MO(3), KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_NO), - [3] = 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_SPD, RGB_SPI, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_DEL, - KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_RGUI, KC_RALT, KC_RCTL, KC_NO) +#define LCTL_Z MT(MOD_LCTL, KC_Z) +#define LALT_X MT(MOD_LALT, KC_X) +#define ONE_C LT(1, KC_C) +#define TWO_V LT(2, KC_V) +#define RGUI_B MT(MOD_RGUI, KC_B) +#define RALT_N MT(MOD_RALT, KC_N) +#define RCTL_M MT(MOD_RCTL, KC_M) +#define LSFT_SPC MT(MOD_LSFT, KC_SPC) +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , + KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , + LCTL_Z , LALT_X , ONE_C , TWO_V , RGUI_B , RALT_N , RCTL_M , + LSFT_SPC + ), + [1] = LAYOUT( + KC_ESC , KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_HOME, KC_PGDN, KC_PGUP, KC_END , KC_BSPC, + KC_TAB , RGB_TOG, RGB_VAD, RGB_VAI, RGB_MOD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, + KC_LCTL, KC_LALT, _______, MO(3) , KC_RGUI, KC_RALT, KC_RCTL, + XXXXXXX + ), + [2] = LAYOUT( + KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , + KC_GRV , KC_BSLS, KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_ENT , + KC_LCTL, KC_LALT, MO(3) , _______, KC_COMM, KC_DOT , KC_SLSH, + XXXXXXX + ), + [3] = 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_SPD, RGB_SPI, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_DEL, + KC_LCTL, KC_LALT, _______, _______, KC_RGUI, KC_RALT, KC_RCTL, + XXXXXXX + ) }; - From 303464b89af290ad9a1895c261ee96b9acb71c47 Mon Sep 17 00:00:00 2001 From: ROYMEETSWORLD <63612683+ROYMEETSWORLD@users.noreply.github.com> Date: Sun, 1 May 2022 13:59:51 -0400 Subject: [PATCH 45/71] [Keyboard] Add gameroyadvance (#16882) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- .../keystonecaps/gameroyadvance/config.h | 86 +++++++ .../gameroyadvance/gameroyadvance.c | 46 ++++ .../gameroyadvance/gameroyadvance.h | 104 +++++++++ .../keystonecaps/gameroyadvance/info.json | 216 ++++++++++++++++++ .../gameroyadvance/keymaps/default/config.h | 25 ++ .../gameroyadvance/keymaps/default/keymap.c | 45 ++++ .../keymaps/default_all/config.h | 25 ++ .../keymaps/default_all/keymap.c | 45 ++++ .../keystonecaps/gameroyadvance/readme.md | 30 +++ .../keystonecaps/gameroyadvance/rules.mk | 22 ++ 10 files changed, 644 insertions(+) create mode 100644 keyboards/keystonecaps/gameroyadvance/config.h create mode 100644 keyboards/keystonecaps/gameroyadvance/gameroyadvance.c create mode 100644 keyboards/keystonecaps/gameroyadvance/gameroyadvance.h create mode 100644 keyboards/keystonecaps/gameroyadvance/info.json create mode 100644 keyboards/keystonecaps/gameroyadvance/keymaps/default/config.h create mode 100644 keyboards/keystonecaps/gameroyadvance/keymaps/default/keymap.c create mode 100644 keyboards/keystonecaps/gameroyadvance/keymaps/default_all/config.h create mode 100644 keyboards/keystonecaps/gameroyadvance/keymaps/default_all/keymap.c create mode 100644 keyboards/keystonecaps/gameroyadvance/readme.md create mode 100644 keyboards/keystonecaps/gameroyadvance/rules.mk diff --git a/keyboards/keystonecaps/gameroyadvance/config.h b/keyboards/keystonecaps/gameroyadvance/config.h new file mode 100644 index 000000000000..cce7904b9173 --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/config.h @@ -0,0 +1,86 @@ +/* +Copyright 2022 @RoyMeetsWorld + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 Keystone Caps +#define PRODUCT Game Roy ADVANCE + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 9 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F5, F6, F7, B1, B3 } +#define MATRIX_COL_PINS { D4, D0, D1, C6, D7, E6, F4, B2, B6 } +#define MATRIX_ROW_PINS_RIGHT { D7, E6, B4, B5, B6 } +#define MATRIX_COL_PINS_RIGHT { C6, D4, D0, D1, B1, F7, F4, F5, F6 } +#define ENCODERS_PAD_A { B5 } +#define ENCODERS_PAD_B { B4 } +#define ENCODERS_PAD_A_RIGHT { B3 } +#define ENCODERS_PAD_B_RIGHT { B2 } +#define SOFT_SERIAL_PIN D2 + +#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 + +/* 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 QMK_KEYS_PER_SCAN 12 + +#define RGB_DI_PIN C7 +#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 0 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define ENCODER_RESOLUTION 4 +#endif diff --git a/keyboards/keystonecaps/gameroyadvance/gameroyadvance.c b/keyboards/keystonecaps/gameroyadvance/gameroyadvance.c new file mode 100644 index 000000000000..797f4dba765f --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/gameroyadvance.c @@ -0,0 +1,46 @@ +/* +Copyright 2022 @RoyMeetsWorld + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "gameroyadvance.h" + + + +#ifdef ENCODER_ENABLE + +bool encoder_update_kb(uint8_t index, bool clockwise) { + + if (!encoder_update_user(index, clockwise)) { return false; } + + if (index == 0) { + + if (clockwise) { + + tap_code_delay(KC_VOLU, 10); + + } else { + + tap_code_delay(KC_VOLD, 10); + + } + + } + + return true; + +} + +#endif diff --git a/keyboards/keystonecaps/gameroyadvance/gameroyadvance.h b/keyboards/keystonecaps/gameroyadvance/gameroyadvance.h new file mode 100644 index 000000000000..01cb32b57290 --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/gameroyadvance.h @@ -0,0 +1,104 @@ +/* +Copyright 2022 @RoyMeetsWorld + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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" + +/** + * The layout macro for ANSI boards, with illustrative grid of a typical assignment. + * ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───────┐ + * │ESC│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ + │ BACK │ + * ┌─┴───┼───┼───┼───┼───┼───┼───┤┌───┬───┐ ┌───┬───┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y ││F1 │F2 │ │F7 │F8 │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘├───┼───┤ ├───┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ CAPS │ A │ S │ D │ F │ G │ │F3 │F4 │ │F9 │F10│ │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ├───┼───┤ ├───┼───┤ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ LSHIFT │ Z │ X │ C │ V │ B │ │F5 │F6 │ │F11│F12│ │ B │ N │ M │ , │ . │ / │ RSHIFT │ + * ├────┬───┴┬──┴─┬─┴──┬┴───┼───┴┬┴───┼───┘ └───┼───┴┬┴───┼───┴───┴──┬┴───┼───┴┬────┬────│ + * │LCTL│LGUI│LALT│ FN │ │SPC │MUTE│ │MUTE│SPCE│ │RALT│ FN │RGUI│RCTL│ + * └────┴────┴────┴────┘ └────┼────┤ ├────┼────┘ └────┴────┴────┴────┘ + * │ENTR│ │ENTR│ + * └────┘ └────┘ + */ +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R07, \ + L10, L11, L12, L13, L14, L15, L16, L17, L18, R10, R11, R12, R13, R14, R15, R16, R17, R18, R28, \ + L20, L21, L22, L23, L24, L25, L27, L28, R20, R21, R22, R23, R24, R25, R26, R27, R38, \ + L30, L31, L32, L33, L34, L35, L37, L38, R30, R31, R32, R33, R34, R35, R36, R37, R46, \ + L40, L41, L42, L43, L45, L48, R40, R42, R43, R44, R45, R47, \ + L47, R41 \ +) \ +{ \ + { L00, L01, L02, L03, L04, L05, L06, KC_NO, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, L16, L17, L18 }, \ + { L20, L21, L22, L23, L24, L25, KC_NO, L27, L28 }, \ + { L30, L31, L32, L33, L34, L35, KC_NO, L37, L38 }, \ + { L40, L41, L42, L43, KC_NO, L45, KC_NO, L47, L48 }, \ + { R00, R01, R02, R03, R04, R05, KC_NO, R07, KC_NO }, \ + { R10, R11, R12, R13, R14, R15, R16, R17, R18 }, \ + { R20, R21, R22, R23, R24, R25, R26, R27, R28 }, \ + { R30, R31, R32, R33, R34, R35, R36, R37, R38 }, \ + { R40, R41, R42, R43, R44, R45, R46, R47, KC_NO } \ +} + +/** + * The layout macro for split-key boards, with illustrative grid of a typical assignment. + * + * Backspace has two options with three distinct pads: + * - center pad (regular 2u backspace) + * - left pad + right pad (split backspace) + * + * You may wish to set the unused pad(s) to KC_NO or XXXXXX, as they will be ignored. + * ┌───────┐ + * │ BACK │ (R07) + * └───────┘ + * | + * ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + * │ESC│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ + │ \ │BCK│ (R06 R08) + * ┌─┴───┼───┼───┼───┼───┼───┼───┤┌───┬───┐ ┌───┬───┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y ││F1 │F2 │ │F7 │F8 │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘├───┼───┤ ├───┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ CAPS │ A │ S │ D │ F │ G │ │F3 │F4 │ │F9 │F10│ │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ├───┼───┤ ├───┼───┤ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │LSFT│ \ │ Z │ X │ C │ V │ B │ │F5 │F6 │ │F11│F12│ │ B │ N │ M │ , │ . │ / │RSHIFT│PSC│ + * ├────┼───┴┬──┴─┬─┴──┬┴───┼───┴┬┴───┼───┘ └───┼───┴┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───│ + * │LCTL│LGUI│LALT│ FN │ │SPC │MUTE│ │MUTE│SPCE│ │RALT│ FN │RGUI│RCTL│ + * └────┴────┴────┴────┘ └────┼────┤ ├────┼────┘ └────┴────┴────┴────┘ + * │ENTR│ │ENTR│ + * └────┘ └────┘ + */ +#define LAYOUT_all( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, R07, R08, \ + L10, L11, L12, L13, L14, L15, L16, L17, L18, R10, R11, R12, R13, R14, R15, R16, R17, R18, R28, \ + L20, L21, L22, L23, L24, L25, L27, L28, R20, R21, R22, R23, R24, R25, R26, R27, R38, \ + L30, L44, L31, L32, L33, L34, L35, L37, L38, R30, R31, R32, R33, R34, R35, R36, R37, R46, R48, \ + L40, L41, L42, L43, L45, L48, R40, R42, R43, R44, R45, R47, \ + L47, R41 \ +) \ +{ \ + { L00, L01, L02, L03, L04, L05, L06, KC_NO, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, L16, L17, L18 }, \ + { L20, L21, L22, L23, L24, L25, KC_NO, L27, L28 }, \ + { L30, L31, L32, L33, L34, L35, KC_NO, L37, L38 }, \ + { L40, L41, L42, L43, L44, L45, KC_NO, L47, L48 }, \ + { R00, R01, R02, R03, R04, R05, R06, R07, R08 }, \ + { R10, R11, R12, R13, R14, R15, R16, R17, R18 }, \ + { R20, R21, R22, R23, R24, R25, R26, R27, R28 }, \ + { R30, R31, R32, R33, R34, R35, R36, R37, R38 }, \ + { R40, R41, R42, R43, R44, R45, R46, R47, R48 } \ +} diff --git a/keyboards/keystonecaps/gameroyadvance/info.json b/keyboards/keystonecaps/gameroyadvance/info.json new file mode 100644 index 000000000000..f907de9326f2 --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/info.json @@ -0,0 +1,216 @@ +{ + "keyboard_name": "Game Roy ADVANCE", + "maintainer": "@RoyMeetsWorld", + "url": "https://keystonecaps.store/?product=game-roy-advance-game-pad-group-buy-preorder", + "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": 13.75, "y": 0 }, + { "x": 14.75, "y": 0 }, + { "x": 15.75, "y": 0 }, + { "x": 16.75, "y": 0 }, + { "x": 17.75, "y": 0 }, + { "x": 18.75, "y": 0 }, + { "x": 19.75, "y": 0, "w": 2 }, + + { "x": 0.5, "y": 1, "w": 1.5 }, + { "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.25, "y": 1 }, + { "x": 9.25, "y": 1 }, + + { "x": 11, "y": 1 }, + { "x": 12, "y": 1 }, + + { "x": 13.75, "y": 1 }, + { "x": 14.75, "y": 1 }, + { "x": 15.75, "y": 1 }, + { "x": 16.75, "y": 1 }, + { "x": 17.75, "y": 1 }, + { "x": 18.75, "y": 1 }, + { "x": 19.75, "y": 1 }, + { "x": 20.75, "y": 1, "w": 1.5 }, + + { "x": 0.5, "y": 2, "w": 1.75 }, + { "x": 2.25, "y": 2 }, + { "x": 3.25, "y": 2 }, + { "x": 4.25, "y": 2 }, + { "x": 5.25, "y": 2 }, + { "x": 6.25, "y": 2 }, + + { "x": 8.25, "y": 2 }, + { "x": 9.25, "y": 2 }, + + { "x": 11, "y": 2 }, + { "x": 12, "y": 2 }, + + { "x": 14, "y": 2 }, + { "x": 15, "y": 2 }, + { "x": 16, "y": 2 }, + { "x": 17, "y": 2 }, + { "x": 18, "y": 2 }, + { "x": 19, "y": 2 }, + { "x": 20, "y": 2, "w": 2.25 }, + + { "x": 0.5, "y": 3, "w": 2.25 }, + { "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": 11, "y": 3 }, + { "x": 12, "y": 3 }, + + { "x": 13.5, "y": 3 }, + { "x": 14.5, "y": 3 }, + { "x": 15.5, "y": 3 }, + { "x": 16.5, "y": 3 }, + { "x": 17.5, "y": 3 }, + { "x": 18.5, "y": 3 }, + { "x": 19.5, "y": 3, "w": 2.75 }, + + { "x": 1, "y": 4, "w": 1.25 }, + { "x": 2.25, "y": 4, "w": 1.25 }, + { "x": 3.5, "y": 4, "w": 1.25 }, + { "x": 4.75, "y": 4, "w": 1.25 }, + + { "x": 7, "y": 4, "h": 1.5 }, + { "x": 8, "y": 4 }, + + { "x": 12.25, "y": 4 }, + { "x": 13.25, "y": 4, "h": 1.5 }, + + { "x": 16.75, "y": 4, "w": 1.25 }, + { "x": 18, "y": 4, "w": 1.25 }, + { "x": 19.25, "y": 4, "w": 1.25 }, + { "x": 20.5, "y": 4, "w": 1.25 }, + + { "x": 8, "y": 5, "h": 1.5 }, + { "x": 12.25, "y": 5, "h": 1.5 } + ] }, + "LAYOUT_all": { + "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": 13.75, "y": 0 }, + { "x": 14.75, "y": 0 }, + { "x": 15.75, "y": 0 }, + { "x": 16.75, "y": 0 }, + { "x": 17.75, "y": 0 }, + { "x": 18.75, "y": 0 }, + { "x": 19.75, "y": 0 }, + { "x": 22.75, "y": 0, "w": 2 }, + { "x": 20.75, "y": 0 }, + + { "x": 0.5, "y": 1, "w": 1.5 }, + { "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.25, "y": 1 }, + { "x": 9.25, "y": 1 }, + + { "x": 11, "y": 1 }, + { "x": 12, "y": 1 }, + + { "x": 13.75, "y": 1 }, + { "x": 14.75, "y": 1 }, + { "x": 15.75, "y": 1 }, + { "x": 16.75, "y": 1 }, + { "x": 17.75, "y": 1 }, + { "x": 18.75, "y": 1 }, + { "x": 19.75, "y": 1 }, + { "x": 20.75, "y": 1, "w": 1.5 }, + + { "x": 0.5, "y": 2, "w": 1.75 }, + { "x": 2.25, "y": 2 }, + { "x": 3.25, "y": 2 }, + { "x": 4.25, "y": 2 }, + { "x": 5.25, "y": 2 }, + { "x": 6.25, "y": 2 }, + + { "x": 8.25, "y": 2 }, + { "x": 9.25, "y": 2 }, + + { "x": 11, "y": 2 }, + { "x": 12, "y": 2 }, + + { "x": 14, "y": 2 }, + { "x": 15, "y": 2 }, + { "x": 16, "y": 2 }, + { "x": 17, "y": 2 }, + { "x": 18, "y": 2 }, + { "x": 19, "y": 2 }, + { "x": 20, "y": 2, "w": 2.25 }, + + { "x": 0.5, "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": 11, "y": 3 }, + { "x": 12, "y": 3 }, + + { "x": 13.5, "y": 3 }, + { "x": 14.5, "y": 3 }, + { "x": 15.5, "y": 3 }, + { "x": 16.5, "y": 3 }, + { "x": 17.5, "y": 3 }, + { "x": 18.5, "y": 3 }, + { "x": 19.5, "y": 3, "w": 1.75 }, + { "x": 21.25, "y": 3 }, + + { "x": 1, "y": 4, "w": 1.25 }, + { "x": 2.25, "y": 4, "w": 1.25 }, + { "x": 3.5, "y": 4, "w": 1.25 }, + { "x": 4.75, "y": 4, "w": 1.25 }, + + { "x": 7, "y": 4, "h": 1.5 }, + { "x": 8, "y": 4 }, + + { "x": 12.25, "y": 4 }, + { "x": 13.25, "y": 4, "h": 1.5 }, + + { "x": 16.75, "y": 4, "w": 1.25 }, + { "x": 18, "y": 4, "w": 1.25 }, + { "x": 19.25, "y": 4, "w": 1.25 }, + { "x": 20.5, "y": 4, "w": 1.25 }, + + { "x": 8, "y": 5, "h": 1.5 }, + { "x": 12.25, "y": 5, "h": 1.5 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/keystonecaps/gameroyadvance/keymaps/default/config.h b/keyboards/keystonecaps/gameroyadvance/keymaps/default/config.h new file mode 100644 index 000000000000..693d5684c116 --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/keymaps/default/config.h @@ -0,0 +1,25 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2018 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 . +*/ + +#pragma once + +//#define USE_SERIAL +#define EE_HANDS \ No newline at end of file diff --git a/keyboards/keystonecaps/gameroyadvance/keymaps/default/keymap.c b/keyboards/keystonecaps/gameroyadvance/keymaps/default/keymap.c new file mode 100644 index 000000000000..268a158ee19d --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2022 @RoyMeetsWorld + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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, + _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_F1, KC_F2, KC_F7, KC_F8, 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_F3, KC_F4, KC_F9, KC_F10, 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_F5, KC_F6, KC_F11, KC_F12, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_MUTE, KC_MUTE, KC_SPC, KC_RALT, MO(_FN), KC_RGUI, KC_RCTL, + KC_ENT, KC_ENT + ), + + [_FN] = LAYOUT( + KC_TILD, KC_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, + 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_PSCR, 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, KC_TRNS, + KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/keystonecaps/gameroyadvance/keymaps/default_all/config.h b/keyboards/keystonecaps/gameroyadvance/keymaps/default_all/config.h new file mode 100644 index 000000000000..693d5684c116 --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/keymaps/default_all/config.h @@ -0,0 +1,25 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2018 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 . +*/ + +#pragma once + +//#define USE_SERIAL +#define EE_HANDS \ No newline at end of file diff --git a/keyboards/keystonecaps/gameroyadvance/keymaps/default_all/keymap.c b/keyboards/keystonecaps/gameroyadvance/keymaps/default_all/keymap.c new file mode 100644 index 000000000000..a6adf3f95233 --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/keymaps/default_all/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2022 @RoyMeetsWorld + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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, + _FN +}; + +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_BSLS, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_F1, KC_F2, KC_F7, KC_F8, 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_F3, KC_F4, KC_F9, KC_F10, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F5, KC_F6, KC_F11, KC_F12, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_PSCR, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_MUTE, KC_MUTE, KC_SPC, KC_RALT, MO(_FN), KC_RGUI, KC_RCTL, + KC_ENT, KC_ENT + ), + + [_FN] = LAYOUT_all( + KC_TILD, KC_TRNS, KC_TRNS, KC_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, + 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_PSCR, 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/keystonecaps/gameroyadvance/readme.md b/keyboards/keystonecaps/gameroyadvance/readme.md new file mode 100644 index 000000000000..cc733cea46e9 --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/readme.md @@ -0,0 +1,30 @@ +# Game Roy ADVANCE + +![Game Roy ADVANCE](https://i.imgur.com/N6RI4fUh.jpg) +![GRALAYOUTS](https://i.imgur.com/lHjTRQK.png) + +A one-handed, expandable game pad designed to take your pc gaming to the next level. Designed by [Keystone Caps](https://keystonecaps.store). + +* Keyboard Maintainer: [RoyMeetsWorld](https://github.com/ROYMEETSWORLD) +* Hardware Supported: Game Roy ADVANCE +* Hardware Availability: [keystonecaps.store](https://keystonecaps.store) + +Make example for this keyboard (after setting up your build environment): + + make keystonecaps/gameroyadvance:default + +Flashing example for this keyboard: + + make keystonecaps/gameroyadvance: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 (Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` (FN + Escape by default) + +Special thanks to @tpstevens for all of his hard work in creating these firmware files from the mess that I had made. diff --git a/keyboards/keystonecaps/gameroyadvance/rules.mk b/keyboards/keystonecaps/gameroyadvance/rules.mk new file mode 100644 index 000000000000..be3b8b9a6180 --- /dev/null +++ b/keyboards/keystonecaps/gameroyadvance/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina # For Pro Micro +# BOOTLOADER = qmk-dfu # For Elite-C + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes +SPLIT_KEYBOARD = yes \ No newline at end of file From 2fd7c07b70cb479001baae409ac4c4ecd40c8758 Mon Sep 17 00:00:00 2001 From: Ryan Skidmore Date: Mon, 2 May 2022 20:34:44 +0100 Subject: [PATCH 46/71] keyboards/ryanskidmore: add rskeys100 keyboard (#15506) * keyboards/ryanskidmore/rskeys100: add rskeys100 draft firmware * keyboards/ryanskidmore/rskeys100: fix firmware * ryanskidmore/rskeys100: fix remaining bugs * keyboards/ryanskidmore/rskeys100: finishing touches on firmware * keyboards/ryanskidmore/rskeys100: migrate from full replacement matrix scanning to lite, move rgb matrix enable call to keymap * keyboards/ryanskidmore/rskeys100: remove undefines, clarify comments * ryanskidmore/rskeys100: remove unused imports * keyboards/ryanskidmore/rskeys100: pr feedback --- keyboards/ryanskidmore/rskeys100/config.h | 85 ++++++++++++ keyboards/ryanskidmore/rskeys100/info.json | 121 ++++++++++++++++++ .../rskeys100/keymaps/default/keymap.c | 65 ++++++++++ .../rskeys100/keymaps/default/readme.md | 1 + keyboards/ryanskidmore/rskeys100/matrix.c | 110 ++++++++++++++++ keyboards/ryanskidmore/rskeys100/readme.md | 22 ++++ keyboards/ryanskidmore/rskeys100/rskeys100.c | 30 +++++ keyboards/ryanskidmore/rskeys100/rskeys100.h | 22 ++++ keyboards/ryanskidmore/rskeys100/rules.mk | 23 ++++ 9 files changed, 479 insertions(+) create mode 100644 keyboards/ryanskidmore/rskeys100/config.h create mode 100644 keyboards/ryanskidmore/rskeys100/info.json create mode 100644 keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c create mode 100644 keyboards/ryanskidmore/rskeys100/keymaps/default/readme.md create mode 100644 keyboards/ryanskidmore/rskeys100/matrix.c create mode 100644 keyboards/ryanskidmore/rskeys100/readme.md create mode 100644 keyboards/ryanskidmore/rskeys100/rskeys100.c create mode 100644 keyboards/ryanskidmore/rskeys100/rskeys100.h create mode 100644 keyboards/ryanskidmore/rskeys100/rules.mk diff --git a/keyboards/ryanskidmore/rskeys100/config.h b/keyboards/ryanskidmore/rskeys100/config.h new file mode 100644 index 000000000000..9e036aa70dba --- /dev/null +++ b/keyboards/ryanskidmore/rskeys100/config.h @@ -0,0 +1,85 @@ +// Copyright 2021 Ryan Skidmore (@ryanskidmore, rskeys@ryanskidmore.co.uk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7273 // rs +#define PRODUCT_ID 0x0064 // 100 +#define DEVICE_VER 0x0001 // rev 1 +#define MANUFACTURER ryanskidmore +#define PRODUCT rsKeys100 + +/* Key Matrix Sizes */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 24 + +/* Rows */ +#define ROW_A D4 +#define ROW_B C6 +#define ROW_C D7 +#define ROW_D E6 +#define ROW_E B4 +#define ROW_F B5 + +/* Columns 0 - 20 (24 with dummy columns for shift registers) */ +#define SHR_LATCH B2 +#define SHR_CLOCK B3 +#define SHR_DATA B1 +#define SHR_COLS { 0x000001, 0x000002, 0x000004, 0x000008, 0x000010, 0x000020, 0x000040, 0x000080, 0x000100, 0x000200, 0x000400, 0x000800, 0x001000, 0x002000, 0x004000, 0x008000, 0x010000, 0x020000, 0x040000, 0x080000, 0x100000, 0x200000, 0x400000, 0x800000 } + +/* The shift registers on the matrix PCB output a signal on each column, which passes through the + * switch and a diode towards the row. The row is then connected to the AVR as an input. This means + * the diode direction is COL(umn) to ROW */ +#define DIODE_DIRECTION COL2ROW + +/* RGB Data Pin */ +#define RGB_DI_PIN C7 +/* The number of RGB LEDs connected */ +#define DRIVER_LED_TOTAL 105 +/* Set the maximum brightness to 110 to avoid going over 500 mA. + * At full brightness with all three indicator LEDs on, the power draw is about 450 mA. */ +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 110 +/* Enable framebuffer effects */ +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +/* Enable the cycle left right animation and set it as the startup mode */ +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT + +/* 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 + +/* Set the max power consumption for the keyboard, which is 500 mA. */ +#define USB_MAX_POWER_CONSUMPTION 500 + +/* + * 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION \ No newline at end of file diff --git a/keyboards/ryanskidmore/rskeys100/info.json b/keyboards/ryanskidmore/rskeys100/info.json new file mode 100644 index 000000000000..ed9898d4059e --- /dev/null +++ b/keyboards/ryanskidmore/rskeys100/info.json @@ -0,0 +1,121 @@ +{ + "keyboard_name": "rskeys100", + "url": "", + "maintainer": "ryanskidmore", + "layouts": { + "LAYOUT_fullsize_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.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":18.5, "y":1.25}, + {"x":19.5, "y":1.25}, + {"x":20.5, "y":1.25}, + {"x":21.5, "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":18.5, "y":2.25}, + {"x":19.5, "y":2.25}, + {"x":20.5, "y":2.25}, + {"x":21.5, "y":2.25, "h": 2}, + + {"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":18.5, "y":3.25}, + {"x":19.5, "y":3.25}, + {"x":20.5, "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":2.75}, + {"x":16.25, "y":4.25}, + {"x":18.5, "y":4.25}, + {"x":19.5, "y":4.25}, + {"x":20.5, "y":4.25}, + {"x":21.5, "y":4.25, "h":2}, + + {"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}, + {"x":18.5, "y":5.25, "w":2}, + {"x":20.5, "y":5.25} + ] + } + } +} diff --git a/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c b/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c new file mode 100644 index 000000000000..37f2589760cb --- /dev/null +++ b/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +// Copyright 2021 Ryan Skidmore (@ryanskidmore, rskeys@ryanskidmore.co.uk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ │ 4 │ 5 │ 6 │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ ├───┼───┼───┼───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ + */ + /* Default Layer */ + [0] = LAYOUT_fullsize_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, LT(1, 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_ENT, 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_NUHS, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, 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_RGHT, KC_P0, KC_PDOT + ), + /* RGB Control Layer */ + [1] = LAYOUT_fullsize_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, _______, _______, _______ + ), +}; + +void keyboard_post_init_user(void) { + rgb_matrix_enable_noeeprom(); +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + /* We use RGB for the indicator RGB colours since we don't need to adjust the brightness. + * If any of the indicators are enabled, set the key to white. This overrides the active RGB + * matrix animation. */ + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(73, 255, 255, 255); + } + + if (host_keyboard_led_state().num_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(19, 255, 255, 255); + } + + if (host_keyboard_led_state().scroll_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(14, 255, 255, 255); + } +} \ No newline at end of file diff --git a/keyboards/ryanskidmore/rskeys100/keymaps/default/readme.md b/keyboards/ryanskidmore/rskeys100/keymaps/default/readme.md new file mode 100644 index 000000000000..03357c206bb5 --- /dev/null +++ b/keyboards/ryanskidmore/rskeys100/keymaps/default/readme.md @@ -0,0 +1 @@ +This is the default keymap (UK, ISO) for the rskeys100. The RGB control layer can be activated by holding the F12 key. \ No newline at end of file diff --git a/keyboards/ryanskidmore/rskeys100/matrix.c b/keyboards/ryanskidmore/rskeys100/matrix.c new file mode 100644 index 000000000000..faefb29c84e0 --- /dev/null +++ b/keyboards/ryanskidmore/rskeys100/matrix.c @@ -0,0 +1,110 @@ +/* +Copyright 2014 Ralf Schmitt +Modified by Ryan Skidmore (@ryanskidmore) +to support the rskeys100. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public 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 "matrix.h" +#include +#include "quantum.h" + +static const uint32_t col_values[24] = SHR_COLS; + +static uint8_t read_rows(void); +static void select_col(uint8_t col); + +static void shift_pulse(void); +static void shift_out_single(uint8_t value); +static void shift_out(uint32_t value); + +void matrix_init_custom(void) { + setPinInput(ROW_A); + setPinInput(ROW_B); + setPinInput(ROW_C); + setPinInput(ROW_D); + setPinInput(ROW_E); + setPinInput(ROW_F); + + setPinOutput(SHR_DATA); + setPinOutput(SHR_LATCH); + setPinOutput(SHR_CLOCK); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool changed = false; + + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + select_col(col); + _delay_us(1); + uint8_t rows = read_rows(); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + bool prev_bit = ((uint32_t)(current_matrix[row]) & (matrix_row_t)(1UL << col)) ? 1 : 0; + bool curr_bit = ((uint32_t)rows & (uint32_t)(1UL << row)) ? 1 : 0; + if (prev_bit != curr_bit) { + current_matrix[row] = (uint32_t)(current_matrix[row]) ^ (uint32_t)(1UL << col); + changed = true; + } + } + } + + return changed; +} + +static uint8_t read_rows(void) { + return (readPin(ROW_F) << 5) + | (readPin(ROW_E) << 4) + | (readPin(ROW_D) << 3) + | (readPin(ROW_C) << 2) + | (readPin(ROW_B) << 1) + | (readPin(ROW_A) ); +} + +static void select_col(uint8_t col) { + shift_out(col_values[col]); +} + +static void shift_out(uint32_t value) { + writePinLow(SHR_LATCH); + uint8_t first_byte = (value >> 16) & 0xFF; + uint8_t second_byte = (value >> 8) & 0xFF; + uint8_t third_byte = (uint8_t)(value & 0xFF); + + shift_out_single(first_byte); + shift_out_single(second_byte); + shift_out_single(third_byte); + writePinHigh(SHR_LATCH); + /* We delay here to prevent multiple consecutive keys being triggered with a single switch press */ + _delay_us(10); +} + +static void shift_out_single(uint8_t value) { + for (uint8_t i = 0; i < 8; i++) { + if (value & 0b10000000) { + writePinHigh(SHR_DATA); + } else { + writePinLow(SHR_DATA); + } + + shift_pulse(); + value = value << 1; + } +} + +static inline void shift_pulse(void) { + writePinHigh(SHR_CLOCK); + writePinLow(SHR_CLOCK); +} \ No newline at end of file diff --git a/keyboards/ryanskidmore/rskeys100/readme.md b/keyboards/ryanskidmore/rskeys100/readme.md new file mode 100644 index 000000000000..4be465dbde57 --- /dev/null +++ b/keyboards/ryanskidmore/rskeys100/readme.md @@ -0,0 +1,22 @@ +# rskeys100 + +The rskeys100 is a full size, 100% ISO keyboard with per-key RGB. + +* Keyboard Maintainer: [Ryan Skidmore](https://github.com/ryanskidmore) +* Hardware Supported: The rskeys100 matrix PCB is the only supported PCB for the switch matrix. This PCB works with any +Pro Micro or Pro Micro alternative as the daughterboard. +* Hardware Availability: Coming soon + +Make example for this keyboard (after setting up your build environment): + + make ryanskidmore/rskeys100:default + +Flashing example for this keyboard: + + make ryanskidmore/rskeys100: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 + +To enter the bootloader, press the `RESET` button on your daughterboard PCB while it's plugged in. \ No newline at end of file diff --git a/keyboards/ryanskidmore/rskeys100/rskeys100.c b/keyboards/ryanskidmore/rskeys100/rskeys100.c new file mode 100644 index 000000000000..ec98ae62cc64 --- /dev/null +++ b/keyboards/ryanskidmore/rskeys100/rskeys100.c @@ -0,0 +1,30 @@ +// Copyright 2021 Ryan Skidmore (@ryanskidmore, rskeys@ryanskidmore.co.uk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "rskeys100.h" + + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,NO_LED, 14, 15, 16,NO_LED,NO_LED,NO_LED,NO_LED}, + { 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 24, 24, 23, 22, 21, 20, 19, 18, 17}, + { 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60}, + { 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66,NO_LED,NO_LED,NO_LED,NO_LED, 64, 63, 62,NO_LED}, + { 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,NO_LED,NO_LED, 93,NO_LED, 94, 95, 96, 97}, + { 117,NO_LED, 116, 115,NO_LED,NO_LED, 112,NO_LED,NO_LED,NO_LED, 109, 108, 107, 106, 105, 103, 102, 101,NO_LED, 99,NO_LED} + }, { + {0, 0}, {21, 0}, {32, 0}, {43, 0}, {53, 0}, {64, 0}, {75, 0}, {85, 0}, {96, 0}, {117, 0}, {128, 0}, {139, 0}, {149, 0}, {160, 0}, {171, 0}, {181, 0}, + {0, 13}, {11, 13}, {21, 13}, {32, 13}, {42, 13}, {53, 13}, {64, 13}, {75, 13}, {85, 13}, {96, 13}, {107, 13}, {117, 13}, {128, 13}, {139, 13}, {160, 13}, {171, 13}, {181, 13}, {192, 13}, {203, 13}, {213, 13}, {224, 13}, + {0, 26}, {11, 26}, {21, 26}, {32, 26}, {42, 26}, {53, 26}, {64, 26}, {75, 26}, {85, 26}, {96, 26}, {107, 26}, {117, 26}, {128, 26}, {149, 26}, {160, 26}, {171, 26}, {181, 26}, {192, 26}, {203, 26}, {213, 26}, {224, 26}, + {0, 38}, {11, 38}, {21, 38}, {32, 38}, {42, 38}, {53, 38}, {64, 38}, {75, 38}, {85, 38}, {96, 38}, {117, 38}, {128, 38}, {149, 38}, {192, 38}, {203, 38}, {213, 38}, + {0, 51}, {11, 51}, {21, 51}, {32, 51}, {42, 51}, {53, 51}, {64, 51}, {75, 51}, {85, 51}, {96, 51}, {107, 51}, {117, 51}, {139, 51}, {171, 51}, {192, 51}, {203, 51}, {213, 51}, {224, 51}, + {0, 64}, {11, 64}, {21, 64}, {64, 64}, {107, 64}, {117, 64}, {128, 64}, {149, 64}, {160, 64}, {171, 64}, {181, 64}, {192, 64}, {213, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 + } }; +#endif \ No newline at end of file diff --git a/keyboards/ryanskidmore/rskeys100/rskeys100.h b/keyboards/ryanskidmore/rskeys100/rskeys100.h new file mode 100644 index 000000000000..d29744006539 --- /dev/null +++ b/keyboards/ryanskidmore/rskeys100/rskeys100.h @@ -0,0 +1,22 @@ +// Copyright 2021 Ryan Skidmore (@ryanskidmore, rskeys@ryanskidmore.co.uk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define LAYOUT_fullsize_iso( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, K016, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, K220, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K317, K318, K319, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, K417, K418, K419, K420, \ + K500, K502, K503, K506, K510, K511, K512, K513, K514, K515, K516, K517, K519 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014, K015, K016, KC_NO, KC_NO, KC_NO, 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, K118, K119, K120, KC_NO, KC_NO, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, K220, KC_NO, KC_NO, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO, KC_NO, KC_NO, K317, K318, K319, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415, KC_NO, K417, K418, K419, K420, KC_NO, KC_NO, KC_NO }, \ + { K500, KC_NO, K502, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515, K516, K517, KC_NO, K519, KC_NO, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/ryanskidmore/rskeys100/rules.mk b/keyboards/ryanskidmore/rskeys100/rules.mk new file mode 100644 index 000000000000..62e3f4278426 --- /dev/null +++ b/keyboards/ryanskidmore/rskeys100/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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +AUDIO_ENABLE = no # Audio output +CUSTOM_MATRIX = lite + +SRC += matrix.c \ No newline at end of file From 73d74f942ed96f5d98df0f9daa05771b896a07dd Mon Sep 17 00:00:00 2001 From: jonavin <71780717+Jonavin@users.noreply.github.com> Date: Tue, 3 May 2022 06:22:10 -0400 Subject: [PATCH 47/71] Jonavin-kb67-Reduce mem usage (#16991) Co-authored-by: Jonavin <=> --- keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h | 3 +++ keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c | 7 ------- keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk | 2 ++ 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h index 9d842a791887..4955c0b136c1 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h @@ -34,3 +34,6 @@ #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR #define RGB_DISABLE_WHEN_USB_SUSPENDED #endif + +// Reduce layers to 3 to save memory +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c index 1b85354be539..98711fcd8615 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c @@ -41,13 +41,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, _______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, _______, _______ ), - [_RAISE] = LAYOUT_65_ansi_blocker( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______ - ), }; #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk index 91153c75a370..c26db537eebb 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk @@ -1,8 +1,10 @@ VIA_ENABLE = yes LTO_ENABLE = yes +CONSOLE_ENABLE = no MOUSEKEY_ENABLE = no TAP_DANCE_ENABLE = yes BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +EXTRAKEY_ENABLE = no TD_LSFT_CAPSLOCK_ENABLE = yes IDLE_TIMEOUT_ENABLE = yes From 9d23a2baab9c61ecc907bea56238d46171af02c8 Mon Sep 17 00:00:00 2001 From: "E.Iosifidis" Date: Wed, 4 May 2022 18:08:47 +0300 Subject: [PATCH 48/71] [Keymap] Introduced New layer & Improvements (#16921) Co-authored-by: Ryan --- .../anavi/macropad8/keymaps/vscode/keymap.c | 142 ++++++++++++++++-- 1 file changed, 133 insertions(+), 9 deletions(-) diff --git a/keyboards/anavi/macropad8/keymaps/vscode/keymap.c b/keyboards/anavi/macropad8/keymaps/vscode/keymap.c index be6ac07f5848..46d4a7d8b374 100644 --- a/keyboards/anavi/macropad8/keymaps/vscode/keymap.c +++ b/keyboards/anavi/macropad8/keymaps/vscode/keymap.c @@ -18,39 +18,72 @@ enum layers { _BASIC, + _BRACKETS, + _SELECTORS, _FN, }; #define KC_X0 LT(_FN, KC_ESC) +static char current_alpha_oled [12] = "None"; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* _BASIC Layer * ,-------------------------------------. * | Toggle | Toggle | | | - * | Block | Line | Undo | Redo | + * | Block | Line | Undo | Search | * | Comment | Comment | | | * |---------+---------+--------+---------+ * | | | | TO | - * | Cut | Copy | Paste | _FN | + * | Cut | Copy | Paste | _BASIC | * | | | | | - * `-------------------------------------' + * `-------------------------------------' */ [_BASIC] = LAYOUT_ortho_2x4( - RCS(KC_A), C(KC_SLASH), C(KC_Z), C(KC_Y), - C(KC_X), C(KC_C), C(KC_V), TO(_FN) + RCS(KC_A), LCTL(KC_SLASH), LCTL(KC_Z), LCTL(KC_F), + LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), TO(_BRACKETS) + ), +/* _BRACKETS Layer + * ,-----------------------------------------. + * | | | | | + * | ( | [ | { | Bksp | + * | | | | | + * |---------+---------+--------+------------+ + * | | | | TO | + * | Del | Copy | Paste | _SELECTORS | + * | | | | | + * `----------------------------------------' + */ + [_BRACKETS] = LAYOUT_ortho_2x4( + S(KC_9), KC_LBRC, S(KC_LBRC), KC_BACKSPACE, + KC_DEL, C(KC_C), C(KC_V), TO(_SELECTORS) + ), +/* _SELECTORS Layer +* ,-------------------------------------. +* | | | | | +* | Select | Save | Undo | Bksp | +* | All | | | | +* |---------+---------+--------+---------+ +* | | | | TO | +* | Cut | Copy | Paste | _FN | +* | | | | | +* `-------------------------------------' +*/ + [_SELECTORS] = LAYOUT_ortho_2x4( + C(KC_A), C(KC_S), C(KC_Z), KC_BACKSPACE, + C(KC_X), C(KC_C), C(KC_V), TO(_FN) ), /* _FN Layer * ,--------------------------------------------. * | RGB | RGB | RGB | RGB | * | Toggle | Mode | Mode | Snake | - * | | Forward | Reverse | Mode | + * | | Forward | Reverse | Mode | * |-----------+-----------+-----------+---------+ * | | Cycle | Toggle | TO | - * | BackLight | BackLight | BackLight | _BASIC | - * | Toggle | Levels | | | - * `--------------------------------------------' + * | BackLight | BackLight | BackLight | _BASIC | + * | Toggle | Levels | Breathing | | + * `--------------------------------------------' */ [_FN] = LAYOUT_ortho_2x4( RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN, @@ -63,6 +96,89 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; // flips the display 180 degrees if offhand } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + char string [33]; + switch(keycode) + { + //First Layer with Basic Keys + case LCTL(KC_X): + strncpy(current_alpha_oled, "Cut", sizeof(current_alpha_oled)); + break; + case LCTL(KC_F): + strncpy(current_alpha_oled, "Search", sizeof(current_alpha_oled)); + break; + case LCTL(KC_Z): + strncpy(current_alpha_oled, "Undo", sizeof(current_alpha_oled)); + break; + case LCTL(KC_C): + strncpy(current_alpha_oled, "Copy", sizeof(current_alpha_oled)); + break; + case LCTL(KC_V): + strncpy(current_alpha_oled, "Paste", sizeof(current_alpha_oled)); + break; + case RCS(KC_A): + strncpy(current_alpha_oled, "Block cmt.", sizeof(current_alpha_oled)); + break; + case LCTL(KC_SLASH): + strncpy(current_alpha_oled, "Line cmt.", sizeof(current_alpha_oled)); + break; + //Second Layer with Brackets + case S(KC_9): + strncpy(current_alpha_oled, "()", sizeof(current_alpha_oled)); + break; + case KC_LBRC: + strncpy(current_alpha_oled, "[]", sizeof(current_alpha_oled)); + break; + case S(KC_LBRC): + strncpy(current_alpha_oled, "{}", sizeof(current_alpha_oled)); + break; + case KC_BACKSPACE: + strncpy(current_alpha_oled, "Backspace", sizeof(current_alpha_oled)); + break; + case KC_DEL: + strncpy(current_alpha_oled, "Del", sizeof(current_alpha_oled)); + break; + // Selector Layer keys + case C(KC_A): + strncpy(current_alpha_oled, "Select All", sizeof(current_alpha_oled)); + break; + case C(KC_S): + strncpy(current_alpha_oled, "Save", sizeof(current_alpha_oled)); + break; + // FN Layer keys + case RGB_TOG: + strncpy(current_alpha_oled, "RGB Toggle", sizeof(current_alpha_oled)); + break; + case RGB_MOD: + strncpy(current_alpha_oled, "RGB Fwd", sizeof(current_alpha_oled)); + break; + case RGB_M_R: + strncpy(current_alpha_oled, "RGB Rev", sizeof(current_alpha_oled)); + break; + case RGB_MODE_SNAKE: + strncpy(current_alpha_oled, "RGB Snk", sizeof(current_alpha_oled)); + break; + case BL_TOGG: + strncpy(current_alpha_oled, "BkLgt Tog", sizeof(current_alpha_oled)); + break; + case BL_STEP: + strncpy(current_alpha_oled, "BkLgt Lvl", sizeof(current_alpha_oled)); + break; + case BL_BRTG: + strncpy(current_alpha_oled, "BkLgt Brth", sizeof(current_alpha_oled)); + break; + //FN Key keycodes + case TO(_BASIC) ... TO(_FN): + strncpy(current_alpha_oled, "Switcher", sizeof(current_alpha_oled)); + break; + default: + strncpy(current_alpha_oled, itoa(keycode, string, 10), sizeof(current_alpha_oled)); + break; + } + } + return true; +} bool oled_task_user(void) { // Host Keyboard Layer Status @@ -73,6 +189,12 @@ bool oled_task_user(void) { case _BASIC: oled_write_ln_P(PSTR("Basic"), false); break; + case _BRACKETS: + oled_write_ln_P(PSTR("Brkts"), false); + break; + case _SELECTORS: + oled_write_ln_P(PSTR("Selct"), false); + break; case _FN: oled_write_ln_P(PSTR("FN"), false); break; @@ -90,6 +212,8 @@ bool oled_task_user(void) { oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false); oled_write_P(PSTR("Backlit: "), false); oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Last Key: "), false); + oled_write_ln(current_alpha_oled, false); #ifdef RGBLIGHT_ENABLE static char rgbStatusLine1[26] = {0}; snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode()); From 8c22a282b19822294577ae23399bcae715a91d29 Mon Sep 17 00:00:00 2001 From: npspears <40127181+npspears@users.noreply.github.com> Date: Wed, 4 May 2022 10:10:35 -0500 Subject: [PATCH 49/71] [Keyboard] Add per-key RGB for Quark LP RGB variants (#16671) Co-authored-by: Drashna Jaelre --- keyboards/checkerboards/quark_lp/config.h | 69 +++++++++++++++++++-- keyboards/checkerboards/quark_lp/quark_lp.c | 22 +++++++ keyboards/checkerboards/quark_lp/rules.mk | 3 +- 3 files changed, 87 insertions(+), 7 deletions(-) diff --git a/keyboards/checkerboards/quark_lp/config.h b/keyboards/checkerboards/quark_lp/config.h index 78197d33a25a..08f8c75b670a 100644 --- a/keyboards/checkerboards/quark_lp/config.h +++ b/keyboards/checkerboards/quark_lp/config.h @@ -46,8 +46,7 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -// ws2812 options -#define RGB_DI_PIN C2 // pin the DI on the ws2812 is hooked-up to +// RGB Matrix #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -58,7 +57,65 @@ #define RGBLIGHT_EFFECT_RGB_TEST #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE -#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) +#define RGB_DI_PIN C2 // pin the DI on the ws2812 is hooked-up to +#define RGBLED_NUM 51 // number of LEDs + +#ifdef RGB_MATRIX_ENABLE +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 125 // limits maximum brightness of LEDs to 125 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 + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_PIXEL_FLOW +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/checkerboards/quark_lp/quark_lp.c b/keyboards/checkerboards/quark_lp/quark_lp.c index bc9a192bf50c..ff8f237a5be4 100644 --- a/keyboards/checkerboards/quark_lp/quark_lp.c +++ b/keyboards/checkerboards/quark_lp/quark_lp.c @@ -15,3 +15,25 @@ */ #include "quark_lp.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 11, 10, 9, 8, 7, NO_LED, 6, NO_LED, 5, NO_LED, 4, 3, 2, 1, 0 }, + { 12, 13, 14, 15, 16, NO_LED, 17, NO_LED, 18, NO_LED, 19, 20, 21, 22, 23 }, + { 35, 34, 33, 32, 31, NO_LED, 30, NO_LED, 29, NO_LED, 28, 27, 26, 25, 24 }, + { 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 } +}, { + // LED Index to Physical Position + { 244, 0 }, { 224, 0 }, { 203, 0 }, { 183, 0 }, { 163, 0 }, { 143, 0 }, { 122, 0 }, { 102, 0 }, { 81, 0 }, { 61, 0 }, { 41, 0 }, { 20, 0 }, + { 20, 21 }, { 41, 21 }, { 61, 21 }, { 81, 21 }, { 102, 21 }, { 122, 21 }, { 143, 21 }, { 163, 21 }, { 183, 21 }, { 203, 21 }, { 224, 21 }, { 244, 21 }, + { 244, 43 }, { 224, 43 }, { 203, 43 }, { 183, 43 }, { 163, 43 }, { 143, 43 }, { 122, 43 }, { 102, 43 }, { 81, 43 }, { 61, 43 }, { 41, 43 }, { 20, 43 }, + { 20, 64 }, { 41, 64 }, { 61, 64 }, { 81, 64 }, { 102, 64 }, { 112, 64 }, { 122, 64 }, { 132, 64 }, { 143, 64 }, { 153, 64 }, { 163, 64 }, { 183, 64 }, { 203, 64 }, { 224, 64 }, { 244, 64 } +}, { + // LED Index to Flag + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 +} }; +#endif diff --git a/keyboards/checkerboards/quark_lp/rules.mk b/keyboards/checkerboards/quark_lp/rules.mk index 155e14ca6851..d5bf779f12ca 100644 --- a/keyboards/checkerboards/quark_lp/rules.mk +++ b/keyboards/checkerboards/quark_lp/rules.mk @@ -14,5 +14,6 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes From 02aa74d089fdbde144985a2ff3dc6f2cad8fc02d Mon Sep 17 00:00:00 2001 From: Mateusz Mojsiejuk Date: Thu, 5 May 2022 04:55:47 +0200 Subject: [PATCH 50/71] Add missing dependency for qmk setup on Fedora (#17003) --- util/install/fedora.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/install/fedora.sh b/util/install/fedora.sh index e123447d3f80..b140438b4240 100755 --- a/util/install/fedora.sh +++ b/util/install/fedora.sh @@ -8,7 +8,7 @@ _qmk_install() { clang diffutils git gcc glibc-headers kernel-devel kernel-headers \ make unzip wget zip python3 avr-binutils avr-gcc avr-libc \ arm-none-eabi-binutils-cs arm-none-eabi-gcc-cs arm-none-eabi-newlib \ - avrdude dfu-programmer dfu-util hidapi + avrdude dfu-programmer dfu-util hidapi libusb1-devel python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt } From f7f9a4096e8286278227e5754ef1c9f6f45fa317 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Thu, 5 May 2022 18:08:35 +1000 Subject: [PATCH 51/71] [Keyboard] RS60 Rev2 Addition (#16988) --- keyboards/xelus/rs60/config.h | 36 +----------- keyboards/xelus/rs60/readme.md | 3 +- keyboards/xelus/rs60/rev1/config.h | 49 ++++++++++++++++ keyboards/xelus/rs60/rev1/rev1.c | 16 +++++ keyboards/xelus/rs60/rev1/rev1.h | 34 +++++++++++ keyboards/xelus/rs60/{ => rev1}/rules.mk | 0 keyboards/xelus/rs60/rev2/chconf.h | 30 ++++++++++ keyboards/xelus/rs60/rev2/config.h | 74 ++++++++++++++++++++++++ keyboards/xelus/rs60/rev2/halconf.h | 26 +++++++++ keyboards/xelus/rs60/rev2/mcuconf.h | 42 ++++++++++++++ keyboards/xelus/rs60/rev2/rev2.c | 16 +++++ keyboards/xelus/rs60/rev2/rev2.h | 34 +++++++++++ keyboards/xelus/rs60/rev2/rules.mk | 28 +++++++++ keyboards/xelus/rs60/rs60.h | 22 ++----- 14 files changed, 359 insertions(+), 51 deletions(-) create mode 100644 keyboards/xelus/rs60/rev1/config.h create mode 100644 keyboards/xelus/rs60/rev1/rev1.c create mode 100644 keyboards/xelus/rs60/rev1/rev1.h rename keyboards/xelus/rs60/{ => rev1}/rules.mk (100%) create mode 100644 keyboards/xelus/rs60/rev2/chconf.h create mode 100644 keyboards/xelus/rs60/rev2/config.h create mode 100644 keyboards/xelus/rs60/rev2/halconf.h create mode 100644 keyboards/xelus/rs60/rev2/mcuconf.h create mode 100644 keyboards/xelus/rs60/rev2/rev2.c create mode 100644 keyboards/xelus/rs60/rev2/rev2.h create mode 100644 keyboards/xelus/rs60/rev2/rules.mk diff --git a/keyboards/xelus/rs60/config.h b/keyboards/xelus/rs60/config.h index ce0c2e1d027d..52c27df6e846 100644 --- a/keyboards/xelus/rs60/config.h +++ b/keyboards/xelus/rs60/config.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Harrison Chan (Xelus) +/* Copyright 2022 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 @@ -13,37 +13,5 @@ * 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 0x5253 // RS60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Xelus -#define PRODUCT RS60 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 14 - -#define MATRIX_ROW_PINS { B3, B7, F0, F4, F1 } -#define MATRIX_COL_PINS { E6, D5, D3, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4} -#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 - -//Indicator -#define LED_CAPS_LOCK_PIN B0 - -//Force NKRO -#define FORCE_NKRO +#include "config_common.h" diff --git a/keyboards/xelus/rs60/readme.md b/keyboards/xelus/rs60/readme.md index 381aa9dc0d64..9e6d17eb86e0 100644 --- a/keyboards/xelus/rs60/readme.md +++ b/keyboards/xelus/rs60/readme.md @@ -8,7 +8,8 @@ Make example for this keyboard (after setting up your build environment): - make xelus/rs60:default + make xelus/rs60/rev1:default + make xelus/rs60/rev2:default Reset your keyboard in 3 ways: diff --git a/keyboards/xelus/rs60/rev1/config.h b/keyboards/xelus/rs60/rev1/config.h new file mode 100644 index 000000000000..ce0c2e1d027d --- /dev/null +++ b/keyboards/xelus/rs60/rev1/config.h @@ -0,0 +1,49 @@ +/* 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 0x5253 // RS60 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Xelus +#define PRODUCT RS60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_ROW_PINS { B3, B7, F0, F4, F1 } +#define MATRIX_COL_PINS { E6, D5, D3, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4} +#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 + +//Indicator +#define LED_CAPS_LOCK_PIN B0 + +//Force NKRO +#define FORCE_NKRO diff --git a/keyboards/xelus/rs60/rev1/rev1.c b/keyboards/xelus/rs60/rev1/rev1.c new file mode 100644 index 000000000000..d997ff979eeb --- /dev/null +++ b/keyboards/xelus/rs60/rev1/rev1.c @@ -0,0 +1,16 @@ +/* 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 "rev1.h" diff --git a/keyboards/xelus/rs60/rev1/rev1.h b/keyboards/xelus/rs60/rev1/rev1.h new file mode 100644 index 000000000000..9b8e841de5c6 --- /dev/null +++ b/keyboards/xelus/rs60/rev1/rev1.h @@ -0,0 +1,34 @@ +/* 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 XXX KC_NO + +#define LAYOUT_60_ansi_split_bs_rshift( \ + 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, K3B, K3C, K3D, \ + K40, K41, K42, K45, K49, K4A, 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, XXX, K3B, K3C, K3D }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D } \ +} diff --git a/keyboards/xelus/rs60/rules.mk b/keyboards/xelus/rs60/rev1/rules.mk similarity index 100% rename from keyboards/xelus/rs60/rules.mk rename to keyboards/xelus/rs60/rev1/rules.mk diff --git a/keyboards/xelus/rs60/rev2/chconf.h b/keyboards/xelus/rs60/rev2/chconf.h new file mode 100644 index 000000000000..a9608a4c7539 --- /dev/null +++ b/keyboards/xelus/rs60/rev2/chconf.h @@ -0,0 +1,30 @@ +/* Copyright 2022 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/austin/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/xelus/rs60/rev2/config.h b/keyboards/xelus/rs60/rev2/config.h new file mode 100644 index 000000000000..cbda2089ef94 --- /dev/null +++ b/keyboards/xelus/rs60/rev2/config.h @@ -0,0 +1,74 @@ +/* Copyright 2022 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 0x5253 // RS60 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Xelus +#define PRODUCT RS60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_ROW_PINS { B15, B14, B12, B1, B0 } +#define MATRIX_COL_PINS { B13, A7, A6, A5, A4, A3, A2, B7, B6, B5, B4, B3, A15, A14 } +#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 + +//Indicator +#define LED_CAPS_LOCK_PIN A1 + +// I2C config +#define I2C_DRIVER I2CD3 +#define I2C1_SCL_PIN B8 +#define I2C1_SDA_PIN B9 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_SDA_PAL_MODE 4 +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 + +// EEPROM config +// 24LC32 +#define EXTERNAL_EEPROM_BYTE_COUNT 4096 +#define EXTERNAL_EEPROM_PAGE_SIZE 32 +#define EXTERNAL_EEPROM_ADDRESS_SIZE 2 +#define EXTERNAL_EEPROM_WRITE_TIME 5 + +// More EEPROM for layers +#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 + +// Hardware Defines +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +// HSE CLK +#define STM32_HSECLK 16000000 + +//Force NKRO +#define FORCE_NKRO diff --git a/keyboards/xelus/rs60/rev2/halconf.h b/keyboards/xelus/rs60/rev2/halconf.h new file mode 100644 index 000000000000..b3e848852b5b --- /dev/null +++ b/keyboards/xelus/rs60/rev2/halconf.h @@ -0,0 +1,26 @@ +/* Copyright 2022 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/austin/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/xelus/rs60/rev2/mcuconf.h b/keyboards/xelus/rs60/rev2/mcuconf.h new file mode 100644 index 000000000000..2ef15d07208c --- /dev/null +++ b/keyboards/xelus/rs60/rev2/mcuconf.h @@ -0,0 +1,42 @@ +/* Copyright 2022 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/xelus/kangaroo/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +// 64MHz core +#define STM32_PLLM_VALUE 8 +#define STM32_PLLN_VALUE 168 +#define STM32_PLLP_VALUE 4 +#define STM32_PLLQ_VALUE 7 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE1_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/xelus/rs60/rev2/rev2.c b/keyboards/xelus/rs60/rev2/rev2.c new file mode 100644 index 000000000000..f51e262ea014 --- /dev/null +++ b/keyboards/xelus/rs60/rev2/rev2.c @@ -0,0 +1,16 @@ +/* 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 "rev2.h" diff --git a/keyboards/xelus/rs60/rev2/rev2.h b/keyboards/xelus/rs60/rev2/rev2.h new file mode 100644 index 000000000000..9b8e841de5c6 --- /dev/null +++ b/keyboards/xelus/rs60/rev2/rev2.h @@ -0,0 +1,34 @@ +/* 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 XXX KC_NO + +#define LAYOUT_60_ansi_split_bs_rshift( \ + 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, K3B, K3C, K3D, \ + K40, K41, K42, K45, K49, K4A, 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, XXX, K3B, K3C, K3D }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D } \ +} diff --git a/keyboards/xelus/rs60/rev2/rules.mk b/keyboards/xelus/rs60/rev2/rules.mk new file mode 100644 index 000000000000..95c0f0bc6049 --- /dev/null +++ b/keyboards/xelus/rs60/rev2/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = STM32F401 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +EEPROM_DRIVER = i2c + +# Save hid interface +KEYBOARD_SHARED_EP = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +LAYOUTS = 60_ansi_split_bs_rshift diff --git a/keyboards/xelus/rs60/rs60.h b/keyboards/xelus/rs60/rs60.h index 9b8e841de5c6..81e4470db58f 100644 --- a/keyboards/xelus/rs60/rs60.h +++ b/keyboards/xelus/rs60/rs60.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Harrison Chan (Xelus) +/* Copyright 2022 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 @@ -17,18 +17,8 @@ #include "quantum.h" -#define XXX KC_NO - -#define LAYOUT_60_ansi_split_bs_rshift( \ - 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, K3B, K3C, K3D, \ - K40, K41, K42, K45, K49, K4A, 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, XXX, K3B, K3C, K3D }, \ - { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D } \ -} +#if defined(KEYBOARD_xelus_rs60_rev1) + #include "rev1.h" +#elif defined(KEYBOARD_xelus_rs60_rev2) + #include "rev2.h" +#endif From d6e1b4dbaf0bbc136ffb912a0a2cda713e0538f0 Mon Sep 17 00:00:00 2001 From: Josh Hinnebusch Date: Thu, 5 May 2022 06:31:52 -0400 Subject: [PATCH 52/71] Add ibis PCB (#17001) * initial ibis commit * updates etc * layout updates to fix mismatched keys * Apply suggestions from code review Co-authored-by: Joel Challis * Update keyboards/hineybush/ibis/info.json Co-authored-by: Joel Challis * Update keyboards/hineybush/ibis/readme.md Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/hineybush/ibis/config.h | 20 + keyboards/hineybush/ibis/info.json | 782 ++++++++++++++++++ .../hineybush/ibis/keymaps/default/keymap.c | 28 + keyboards/hineybush/ibis/keymaps/via/keymap.c | 42 + keyboards/hineybush/ibis/keymaps/via/rules.mk | 1 + keyboards/hineybush/ibis/readme.md | 27 + keyboards/hineybush/ibis/rules.mk | 1 + 7 files changed, 901 insertions(+) create mode 100644 keyboards/hineybush/ibis/config.h create mode 100644 keyboards/hineybush/ibis/info.json create mode 100644 keyboards/hineybush/ibis/keymaps/default/keymap.c create mode 100644 keyboards/hineybush/ibis/keymaps/via/keymap.c create mode 100644 keyboards/hineybush/ibis/keymaps/via/rules.mk create mode 100644 keyboards/hineybush/ibis/readme.md create mode 100644 keyboards/hineybush/ibis/rules.mk diff --git a/keyboards/hineybush/ibis/config.h b/keyboards/hineybush/ibis/config.h new file mode 100644 index 000000000000..e8601cd54b25 --- /dev/null +++ b/keyboards/hineybush/ibis/config.h @@ -0,0 +1,20 @@ +// Copyright 2022 Josh Hinnebusch (@hineybush) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/hineybush/ibis/info.json b/keyboards/hineybush/ibis/info.json new file mode 100644 index 000000000000..69960e13ab48 --- /dev/null +++ b/keyboards/hineybush/ibis/info.json @@ -0,0 +1,782 @@ +{ + "manufacturer": "Hiney LLC", + "keyboard_name": "ibis", + "maintainer": "hineybush", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": [ + "F0", + "F1", + "F4", + "F5", + "F6", + "F7", + "B6", + "B5", + "D6", + "D4" + ], + "rows": [ + "B0", + "B1", + "B2", + "B3", + "C7", + "C6", + "B4", + "D7", + "D5", + "D3" + ] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xEAA9", + "vid": "0x04D8" + }, + "indicators": { + "num_lock": "B7", + "caps_lock": "D2" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { + "matrix": [ + 0, + 0 + ], + "x": 2.5, + "y": 1.25 + }, + { + "matrix": [ + 1, + 0 + ], + "x": 3.5, + "y": 1.25 + }, + { + "matrix": [ + 0, + 1 + ], + "x": 4.5, + "y": 1.25 + }, + { + "matrix": [ + 1, + 1 + ], + "x": 5.5, + "y": 1.25 + }, + { + "matrix": [ + 0, + 2 + ], + "x": 6.5, + "y": 1.25 + }, + { + "matrix": [ + 1, + 2 + ], + "x": 7.5, + "y": 1.25 + }, + { + "matrix": [ + 0, + 3 + ], + "x": 8.5, + "y": 1.25 + }, + { + "matrix": [ + 1, + 3 + ], + "x": 9.5, + "y": 1.25 + }, + { + "matrix": [ + 0, + 4 + ], + "x": 10.5, + "y": 1.25 + }, + { + "matrix": [ + 1, + 4 + ], + "x": 11.5, + "y": 1.25 + }, + { + "matrix": [ + 0, + 5 + ], + "x": 12.5, + "y": 1.25 + }, + { + "matrix": [ + 1, + 5 + ], + "x": 13.5, + "y": 1.25 + }, + { + "matrix": [ + 0, + 6 + ], + "x": 14.5, + "y": 1.25 + }, + { + "matrix": [ + 1, + 6 + ], + "x": 15.5, + "y": 1.25 + }, + { + "matrix": [ + 1, + 7 + ], + "x": 16.5, + "y": 1.25 + }, + { + "matrix": [ + 3, + 7 + ], + "x": 17.75, + "y": 1.25 + }, + { + "matrix": [ + 0, + 8 + ], + "x": 19, + "y": 1.25 + }, + { + "matrix": [ + 1, + 8 + ], + "x": 20, + "y": 1.25 + }, + { + "matrix": [ + 0, + 9 + ], + "x": 21, + "y": 1.25 + }, + { + "matrix": [ + 1, + 9 + ], + "x": 22, + "y": 1.25 + }, + { + "matrix": [ + 2, + 0 + ], + "x": 2.5, + "y": 2.25, + "w": 1.5 + }, + { + "matrix": [ + 3, + 0 + ], + "x": 4, + "y": 2.25 + }, + { + "matrix": [ + 2, + 1 + ], + "x": 5, + "y": 2.25 + }, + { + "matrix": [ + 3, + 1 + ], + "x": 6, + "y": 2.25 + }, + { + "matrix": [ + 2, + 2 + ], + "x": 7, + "y": 2.25 + }, + { + "matrix": [ + 3, + 2 + ], + "x": 8, + "y": 2.25 + }, + { + "matrix": [ + 2, + 3 + ], + "x": 9, + "y": 2.25 + }, + { + "matrix": [ + 3, + 3 + ], + "x": 10, + "y": 2.25 + }, + { + "matrix": [ + 2, + 4 + ], + "x": 11, + "y": 2.25 + }, + { + "matrix": [ + 3, + 4 + ], + "x": 12, + "y": 2.25 + }, + { + "matrix": [ + 2, + 5 + ], + "x": 13, + "y": 2.25 + }, + { + "matrix": [ + 3, + 5 + ], + "x": 14, + "y": 2.25 + }, + { + "matrix": [ + 2, + 6 + ], + "x": 15, + "y": 2.25 + }, + { + "matrix": [ + 3, + 6 + ], + "x": 16, + "y": 2.25, + "w": 1.5 + }, + { + "matrix": [ + 5, + 7 + ], + "x": 17.75, + "y": 2.25 + }, + { + "matrix": [ + 2, + 8 + ], + "x": 19, + "y": 2.25 + }, + { + "matrix": [ + 3, + 8 + ], + "x": 20, + "y": 2.25 + }, + { + "matrix": [ + 2, + 9 + ], + "x": 21, + "y": 2.25 + }, + { + "matrix": [ + 3, + 9 + ], + "x": 22, + "y": 2.25 + }, + { + "matrix": [ + 4, + 0 + ], + "x": 2.5, + "y": 3.25, + "w": 1.75 + }, + { + "matrix": [ + 5, + 0 + ], + "x": 4.25, + "y": 3.25 + }, + { + "matrix": [ + 4, + 1 + ], + "x": 5.25, + "y": 3.25 + }, + { + "matrix": [ + 5, + 1 + ], + "x": 6.25, + "y": 3.25 + }, + { + "matrix": [ + 4, + 2 + ], + "x": 7.25, + "y": 3.25 + }, + { + "matrix": [ + 5, + 2 + ], + "x": 8.25, + "y": 3.25 + }, + { + "matrix": [ + 4, + 3 + ], + "x": 9.25, + "y": 3.25 + }, + { + "matrix": [ + 5, + 3 + ], + "x": 10.25, + "y": 3.25 + }, + { + "matrix": [ + 4, + 4 + ], + "x": 11.25, + "y": 3.25 + }, + { + "matrix": [ + 5, + 4 + ], + "x": 12.25, + "y": 3.25 + }, + { + "matrix": [ + 4, + 5 + ], + "x": 13.25, + "y": 3.25 + }, + { + "matrix": [ + 5, + 5 + ], + "x": 14.25, + "y": 3.25 + }, + { + "matrix": [ + 4, + 6 + ], + "x": 15.25, + "y": 3.25 + }, + { + "matrix": [ + 5, + 6 + ], + "x": 15.25, + "y": 3.25, + "w": 2.25 + }, + { + "matrix": [ + 4, + 8 + ], + "x": 19, + "y": 3.25 + }, + { + "matrix": [ + 5, + 8 + ], + "x": 20, + "y": 3.25 + }, + { + "matrix": [ + 4, + 9 + ], + "x": 21, + "y": 3.25 + }, + { + "matrix": [ + 5, + 9 + ], + "x": 22, + "y": 3.25 + }, + { + "matrix": [ + 6, + 0 + ], + "x": 2.5, + "y": 4.25, + "w": 1.25 + }, + { + "matrix": [ + 7, + 0 + ], + "x": 3.75, + "y": 4.25 + }, + { + "matrix": [ + 6, + 1 + ], + "x": 4.75, + "y": 4.25 + }, + { + "matrix": [ + 7, + 1 + ], + "x": 5.75, + "y": 4.25 + }, + { + "matrix": [ + 6, + 2 + ], + "x": 6.75, + "y": 4.25 + }, + { + "matrix": [ + 7, + 2 + ], + "x": 7.75, + "y": 4.25 + }, + { + "matrix": [ + 6, + 3 + ], + "x": 8.75, + "y": 4.25 + }, + { + "matrix": [ + 7, + 3 + ], + "x": 9.75, + "y": 4.25 + }, + { + "matrix": [ + 6, + 4 + ], + "x": 10.75, + "y": 4.25 + }, + { + "matrix": [ + 7, + 4 + ], + "x": 11.75, + "y": 4.25 + }, + { + "matrix": [ + 6, + 5 + ], + "x": 12.75, + "y": 4.25 + }, + { + "matrix": [ + 7, + 5 + ], + "x": 13.75, + "y": 4.25 + }, + { + "matrix": [ + 6, + 6 + ], + "x": 14.75, + "y": 4.25, + "w": 1.75 + }, + { + "matrix": [ + 7, + 6 + ], + "x": 16.5, + "y": 4.25 + }, + { + "matrix": [ + 7, + 7 + ], + "x": 17.75, + "y": 4.5 + }, + { + "matrix": [ + 6, + 8 + ], + "x": 19, + "y": 4.25 + }, + { + "matrix": [ + 7, + 8 + ], + "x": 20, + "y": 4.25 + }, + { + "matrix": [ + 6, + 9 + ], + "x": 21, + "y": 4.25 + }, + { + "matrix": [ + 7, + 9 + ], + "x": 22, + "y": 4.25 + }, + { + "matrix": [ + 8, + 0 + ], + "x": 2.5, + "y": 5.25, + "w": 1.5 + }, + { + "matrix": [ + 9, + 0 + ], + "x": 4, + "y": 5.25 + }, + { + "matrix": [ + 8, + 1 + ], + "x": 5, + "y": 5.25, + "w": 1.5 + }, + { + "matrix": [ + 8, + 3 + ], + "x": 6.5, + "y": 5.25, + "w": 6.25 + }, + { + "matrix": [ + 8, + 5 + ], + "x": 12.75, + "y": 5.25, + "w": 1.25 + }, + { + "matrix": [ + 9, + 5 + ], + "x": 14, + "y": 5.25, + "w": 1.25 + }, + { + "matrix": [ + 8, + 6 + ], + "x": 15.25, + "y": 5.25, + "w": 1.25 + }, + { + "matrix": [ + 9, + 6 + ], + "x": 16.75, + "y": 5.5 + }, + { + "matrix": [ + 9, + 7 + ], + "x": 17.75, + "y": 5.5 + }, + { + "matrix": [ + 8, + 8 + ], + "x": 18.75, + "y": 5.5 + }, + { + "matrix": [ + 9, + 8 + ], + "x": 20, + "y": 5.25 + }, + { + "matrix": [ + 8, + 9 + ], + "x": 21, + "y": 5.25 + }, + { + "matrix": [ + 9, + 9 + ], + "x": 22, + "y": 5.25 + } + ] + } + } +} diff --git a/keyboards/hineybush/ibis/keymaps/default/keymap.c b/keyboards/hineybush/ibis/keymaps/default/keymap.c new file mode 100644 index 000000000000..46f0d0221e4f --- /dev/null +++ b/keyboards/hineybush/ibis/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2022 Josh Hinnebusch (@hineybush) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k17, k37, k08, k18, k09, k19, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k57, k28, k38, k29, k39, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k48, k58, k49, k59, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, k77, k68, k78, k69, k79, \ + k80, k90, k81, k83, k85, k95, k86, k96, k97, k88, k98, k89, k99 \ */ + + [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_GRV, KC_BSPC, KC_PGUP, 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_PGDN, 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_LSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_TRNS, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + [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_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PAUS, + 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_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_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_LCTL, KC_LGUI, KC_LALT, KC_MPLY, KC_LALT, KC_TRNS, KC_RGUI, KC_MPRV, KC_VOLD, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/hineybush/ibis/keymaps/via/keymap.c b/keyboards/hineybush/ibis/keymaps/via/keymap.c new file mode 100644 index 000000000000..d406afb05235 --- /dev/null +++ b/keyboards/hineybush/ibis/keymaps/via/keymap.c @@ -0,0 +1,42 @@ +// Copyright 2022 Josh Hinnebusch (@hineybush) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k17, k37, k08, k18, k09, k19, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k57, k28, k38, k29, k39, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k48, k58, k49, k59, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, k77, k68, k78, k69, k79, \ + k80, k90, k81, k83, k85, k95, k86, k96, k97, k88, k98, k89, k99 \ */ + + [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_GRV, KC_BSPC, KC_PGUP, 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_PGDN, 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_LSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_TRNS, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + [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_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PAUS, + 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_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_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_MPLY, KC_LALT, KC_TRNS, KC_RGUI, KC_MPRV, KC_VOLD, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_all( + 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, 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 + ), + [3] = LAYOUT_all( + 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, 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 + ) +}; diff --git a/keyboards/hineybush/ibis/keymaps/via/rules.mk b/keyboards/hineybush/ibis/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/hineybush/ibis/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/hineybush/ibis/readme.md b/keyboards/hineybush/ibis/readme.md new file mode 100644 index 000000000000..0c345e7c8160 --- /dev/null +++ b/keyboards/hineybush/ibis/readme.md @@ -0,0 +1,27 @@ +# hineybush/ibis + +![hineybush/ibis](https://i.imgur.com/TaCryDrh.png) + +Duck Blackbird-layout PCB for the ibis keyboard. + +* Keyboard Maintainer: [Josh Hinnebusch](https://github.com/hineybush) +* Hardware Supported: ibis +* Hardware Availability: hiney.cc + +Make example for this keyboard (after setting up your build environment): + + make hineybush/ibis:default + +Flashing example for this keyboard: + + make hineybush/ibis: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/keyboards/hineybush/ibis/rules.mk b/keyboards/hineybush/ibis/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/hineybush/ibis/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From b6f0c7e82243c109cc0b5c7bf320d451b07aa493 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Fri, 6 May 2022 16:15:49 +1000 Subject: [PATCH 53/71] [Bug] Fix RS60 Rev2 I2C (#17015) --- keyboards/xelus/rs60/rev2/config.h | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/xelus/rs60/rev2/config.h b/keyboards/xelus/rs60/rev2/config.h index cbda2089ef94..74258b1289ac 100644 --- a/keyboards/xelus/rs60/rev2/config.h +++ b/keyboards/xelus/rs60/rev2/config.h @@ -46,7 +46,6 @@ #define LED_CAPS_LOCK_PIN A1 // I2C config -#define I2C_DRIVER I2CD3 #define I2C1_SCL_PIN B8 #define I2C1_SDA_PIN B9 #define I2C1_SCL_PAL_MODE 4 From 2c58edfeb8ed620b1f0ae850cb65628fd2013bec Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 6 May 2022 22:18:03 +1000 Subject: [PATCH 54/71] Ensure .hex file output for ARM Teensys (#17014) --- builddefs/bootloader.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/builddefs/bootloader.mk b/builddefs/bootloader.mk index f0a6c084a21f..eba8e280e411 100644 --- a/builddefs/bootloader.mk +++ b/builddefs/bootloader.mk @@ -97,12 +97,18 @@ ifeq ($(strip $(BOOTLOADER)), halfkay) OPT_DEFS += -DBOOTLOADER_HALFKAY BOOTLOADER_TYPE = halfkay + # Teensy 2.0 ifeq ($(strip $(MCU)), atmega32u4) BOOTLOADER_SIZE = 512 endif + # Teensy 2.0++ ifeq ($(strip $(MCU)), at90usb1286) BOOTLOADER_SIZE = 1024 endif + # Teensy LC, 3.x + ifneq (,$(filter $(MCU_ORIG), MKL26Z64 MK20DX128 MK20DX256 MK66FX1M0)) + FIRMWARE_FORMAT = hex + endif endif ifeq ($(strip $(BOOTLOADER)), caterina) OPT_DEFS += -DBOOTLOADER_CATERINA From 0779538817aa9f03ce7832d0a6be29163cf4121d Mon Sep 17 00:00:00 2001 From: Doomsdayrs <38189170+Doomsdayrs@users.noreply.github.com> Date: Fri, 6 May 2022 20:01:16 -0400 Subject: [PATCH 55/71] Sol3 fix rgb map (#17019) * Fix for key -> LED mapping * Revert whitespace changes * Revert whitespace changes 2 Co-authored-by: theVDude --- keyboards/rgbkb/sol3/rev1/rev1.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/keyboards/rgbkb/sol3/rev1/rev1.c b/keyboards/rgbkb/sol3/rev1/rev1.c index 5dc156c94d1d..c66e145e8041 100644 --- a/keyboards/rgbkb/sol3/rev1/rev1.c +++ b/keyboards/rgbkb/sol3/rev1/rev1.c @@ -113,16 +113,18 @@ void matrix_slave_scan_kb() { #ifdef RGB_MATRIX_ENABLE // clang-format off led_config_t g_led_config = { { - { 41, 42, 43, 44, 45, 46, 47 }, - { 54, 53, 52, 51, 50, 49, 48 }, - { 55, 56, 57, 58, 59, 60, 61 }, - { 68, 67, 66, 65, 64, 63, 62 }, + { 41, 42, 43, 44, 45, 46, 47, NO_LED }, + { 54, 53, 52, 51, 50, 49, 48, NO_LED }, + { 55, 56, 57, 58, 59, 60, 61, NO_LED }, + { 68, 67, 66, 65, 64, 63, 62, NO_LED }, { 69, 70, 71, 72, 73, 74, 75, 76 }, - { 119, 120, 121, 122, 123, 124, 125 }, - { 132, 131, 130, 129, 128, 127, 126 }, - { 133, 134, 135, 136, 137, 138, 139 }, - { 146, 145, 144, 143, 142, 141, 140 }, - { 147, 148, 149, 150, 151, 152, 153 } + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { 119, 120, 121, 122, 123, 124, 125, NO_LED }, + { 132, 131, 130, 129, 128, 127, 126, NO_LED }, + { 133, 134, 135, 136, 137, 138, 139, NO_LED }, + { 146, 145, 144, 143, 142, 141, 140, NO_LED }, + { 147, 148, 149, 150, 151, 152, 153, 154 }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } }, { // ALL XY VALUES DIVIDE BY 2, THEN ADD 5 { 1, 6 }, { 1, 13 }, { 1, 19 }, { 1, 25 }, { 1, 31 }, { 1, 37 }, { 1, 43 }, { 1, 49 }, { 4, 52 }, { 11, 52 }, { 17, 52 }, { 23, 52 }, { 29, 52 }, { 35, 52 }, { 41, 54 }, { 46, 57 }, { 52, 60 }, { 57, 63 }, { 62, 66 }, { 68, 69 }, @@ -284,4 +286,4 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { #endif } return true; -}; \ No newline at end of file +}; From 2c5505343d3c820f2f6875ee3687d5793daffd1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20G=C3=A9rard?= <1322081+GreatWizard@users.noreply.github.com> Date: Mon, 9 May 2022 03:05:05 +0200 Subject: [PATCH 56/71] feat: add support for JJ50 VIA (#16420) --- .../kprepublic/jj50/keymaps/via/config.h | 20 +++ .../kprepublic/jj50/keymaps/via/keymap.c | 138 ++++++++++++++++++ .../kprepublic/jj50/keymaps/via/rules.mk | 2 + 3 files changed, 160 insertions(+) create mode 100644 keyboards/kprepublic/jj50/keymaps/via/config.h create mode 100644 keyboards/kprepublic/jj50/keymaps/via/keymap.c create mode 100644 keyboards/kprepublic/jj50/keymaps/via/rules.mk diff --git a/keyboards/kprepublic/jj50/keymaps/via/config.h b/keyboards/kprepublic/jj50/keymaps/via/config.h new file mode 100644 index 000000000000..e05e2c87414e --- /dev/null +++ b/keyboards/kprepublic/jj50/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2022 Guillaume Gérard + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public LicensezZZ +along with this program. If not, see . +*/ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/kprepublic/jj50/keymaps/via/keymap.c b/keyboards/kprepublic/jj50/keymaps/via/keymap.c new file mode 100644 index 000000000000..978ac4c12c46 --- /dev/null +++ b/keyboards/kprepublic/jj50/keymaps/via/keymap.c @@ -0,0 +1,138 @@ +/* +Copyright 2022 Guillaume Gérard + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public LicensezZZ +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, + _FN +}; + +#define FN MO(_FN) +#define LOWER FN_MO13 +#define RAISE FN_MO23 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + 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_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, + FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + 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 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_GRV, 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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |CPSLCK| | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Fn (rgblight and backlight layout) + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | |RGBVA-|RGBVA+| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | |RGBSA-|RGBSA+| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| + * `-----------------------------------------------------------------------------------' + */ + [_FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_HUI, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, BL_BRTG + ) +}; diff --git a/keyboards/kprepublic/jj50/keymaps/via/rules.mk b/keyboards/kprepublic/jj50/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/kprepublic/jj50/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes From 9a008b91f8ae3f55bff00bb9a2f6fd0c7f50d2a8 Mon Sep 17 00:00:00 2001 From: Jay Greco Date: Mon, 9 May 2022 18:28:16 -0700 Subject: [PATCH 57/71] Update RMKB to support SNAP (#17042) --- keyboards/nullbitsco/common/remote_kb.c | 10 +++++----- keyboards/nullbitsco/common/remote_kb.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/nullbitsco/common/remote_kb.c b/keyboards/nullbitsco/common/remote_kb.c index 4dcc9f461622..8e3f7f6766d9 100644 --- a/keyboards/nullbitsco/common/remote_kb.c +++ b/keyboards/nullbitsco/common/remote_kb.c @@ -62,13 +62,12 @@ static void send_msg(uint16_t keycode, bool pressed) { msg[IDX_KCMSB] = (keycode >> 8) & 0xFF; msg[IDX_PRESSED] = pressed; msg[IDX_CHECKSUM] = chksum8(msg, UART_MSG_LEN-1); - uart_transmit(msg, UART_MSG_LEN); } -static void print_message_buffer(void) { +static inline void print_message_buffer(void) { for (int i=0; i Date: Tue, 10 May 2022 14:25:42 +0200 Subject: [PATCH 58/71] converter/a1200/mistress1200: further firmware shrinking to fit on Atmega16U4 (16kb) (#17040) * Create dummy.txt * Add files via upload * Add files via upload * Delete dummy.txt * Update config.h * Update rules.mk * Update keymap.c * Update keyboards/converter/a1200/mistress1200/rules.mk Co-authored-by: Joel Challis * Update keyboards/converter/a1200/mistress1200/rules.mk Co-authored-by: Joel Challis * Update keyboards/converter/a1200/mistress1200/rules.mk Co-authored-by: Joel Challis * Update keyboards/converter/a1200/mistress1200/config.h Co-authored-by: Drashna Jaelre * Update keyboards/converter/a1200/mistress1200/config.h Co-authored-by: Drashna Jaelre * Update keyboards/converter/a1200/mistress1200/config.h Co-authored-by: Drashna Jaelre * Update keyboards/converter/a1200/mistress1200/rules.mk Co-authored-by: Drashna Jaelre * Update config.h * Update rules.mk * Update readme.md * Update config.h * Update rules.mk * Update config.h * Update keyboards/converter/a1200/mistress1200/config.h Co-authored-by: Joel Challis Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre --- keyboards/converter/a1200/mistress1200/config.h | 5 +++++ keyboards/converter/a1200/mistress1200/rules.mk | 3 +++ 2 files changed, 8 insertions(+) diff --git a/keyboards/converter/a1200/mistress1200/config.h b/keyboards/converter/a1200/mistress1200/config.h index 2ae2525398f5..123d6165d6e1 100644 --- a/keyboards/converter/a1200/mistress1200/config.h +++ b/keyboards/converter/a1200/mistress1200/config.h @@ -49,6 +49,11 @@ along with this program. If not, see . #define LED_CAPS_LOCK_PIN B0 #define LED_PIN_ON_STATE 0 +#define TAPPING_TOGGLE 3 + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE +#define LAYER_STATE_8BIT /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/converter/a1200/mistress1200/rules.mk b/keyboards/converter/a1200/mistress1200/rules.mk index 56aa5d9ba996..90c20bafc92c 100644 --- a/keyboards/converter/a1200/mistress1200/rules.mk +++ b/keyboards/converter/a1200/mistress1200/rules.mk @@ -17,3 +17,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no From 36598551fb63dd6a3c4b5a2ea635407a8729c92b Mon Sep 17 00:00:00 2001 From: Eugene-Yuan Kou Date: Wed, 11 May 2022 00:00:30 +0800 Subject: [PATCH 59/71] Adding akira (#16982) * keyboard:akira initial commit * Update keyboards/ekow/akira/akira.h Co-authored-by: Joel Challis * Update keyboards/ekow/akira/keymaps/via/rules.mk Co-authored-by: Joel Challis * Update keyboards/ekow/akira/readme.md Co-authored-by: Joel Challis * Update .gitignore Co-authored-by: Joel Challis * Update readme.md * Update keyboards/ekow/akira/rules.mk Co-authored-by: Drashna Jaelre * Update rules.mk remove redundant content. * added keyboard/ekow/keymaps/via/keymap.c * remove .ccls-cache * add instructions of enter the bootloader * add instructions of enter the bootloader * modify ekow/akira:via * Update keyboards/ekow/akira/readme.md Co-authored-by: Ryan * Update keyboards/ekow/akira/keymaps/via/rules.mk Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/ekow/akira/akira.c | 16 + keyboards/ekow/akira/akira.h | 35 ++ keyboards/ekow/akira/config.h | 51 +++ keyboards/ekow/akira/info.json | 319 ++++++++++++++++++ keyboards/ekow/akira/keymaps/default/keymap.c | 25 ++ .../ekow/akira/keymaps/default/readme.md | 1 + keyboards/ekow/akira/keymaps/via/keymap.c | 26 ++ keyboards/ekow/akira/keymaps/via/rules.mk | 3 + keyboards/ekow/akira/readme.md | 24 ++ keyboards/ekow/akira/rules.mk | 18 + 10 files changed, 518 insertions(+) create mode 100644 keyboards/ekow/akira/akira.c create mode 100644 keyboards/ekow/akira/akira.h create mode 100644 keyboards/ekow/akira/config.h create mode 100644 keyboards/ekow/akira/info.json create mode 100644 keyboards/ekow/akira/keymaps/default/keymap.c create mode 100644 keyboards/ekow/akira/keymaps/default/readme.md create mode 100644 keyboards/ekow/akira/keymaps/via/keymap.c create mode 100644 keyboards/ekow/akira/keymaps/via/rules.mk create mode 100644 keyboards/ekow/akira/readme.md create mode 100644 keyboards/ekow/akira/rules.mk diff --git a/keyboards/ekow/akira/akira.c b/keyboards/ekow/akira/akira.c new file mode 100644 index 000000000000..420a05e04a28 --- /dev/null +++ b/keyboards/ekow/akira/akira.c @@ -0,0 +1,16 @@ +/* Copyright 2022 eugenepy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "akira.h" diff --git a/keyboards/ekow/akira/akira.h b/keyboards/ekow/akira/akira.h new file mode 100644 index 000000000000..0417458027fb --- /dev/null +++ b/keyboards/ekow/akira/akira.h @@ -0,0 +1,35 @@ +/* Copyright 2022 eugenepy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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_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, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K41, K42, K47, 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, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D , XXX, XXX}, \ + { K41, K42, XXX, XXX, XXX, K47, XXX, XXX, XXX, XXX, K4B, K4C, XXX, XXX, XXX} \ +} diff --git a/keyboards/ekow/akira/config.h b/keyboards/ekow/akira/config.h new file mode 100644 index 000000000000..678827543fdf --- /dev/null +++ b/keyboards/ekow/akira/config.h @@ -0,0 +1,51 @@ +/* +Copyright 2022 eugenepy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0x4B59 // KY +#define PRODUCT_ID 0x414B // AK +#define DEVICE_VER 0x0000 +#define MANUFACTURER Keeboyzlab +#define PRODUCT AKIRA + +// key matrix size +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +// M60-A PCB default pin-out +#define MATRIX_ROW_PINS \ + { B0, B1, B2, B10, B11 } +#define MATRIX_COL_PINS \ + { B12, B13, B14, B15, A8, A9, A10, A15, B3, B4, B5, B6, B7, B8, B9 } + +/* + * 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 DEBOUNCE 3 diff --git a/keyboards/ekow/akira/info.json b/keyboards/ekow/akira/info.json new file mode 100644 index 000000000000..b6ebf9b8a20b --- /dev/null +++ b/keyboards/ekow/akira/info.json @@ -0,0 +1,319 @@ +{ + "keyboard_name": "KEYBOYZLAB:AKIRA", + "maintainer": "eugenepy", + "url": "http://github.com/EugenePY", + "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 + } + ] + } + } +} diff --git a/keyboards/ekow/akira/keymaps/default/keymap.c b/keyboards/ekow/akira/keymaps/default/keymap.c new file mode 100644 index 000000000000..672516840d7e --- /dev/null +++ b/keyboards/ekow/akira/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2022 eugenepy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 + [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_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RCTL, KC_RALT), + + // Fn1 Layer + [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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/ekow/akira/keymaps/default/readme.md b/keyboards/ekow/akira/keymaps/default/readme.md new file mode 100644 index 000000000000..b20d47869979 --- /dev/null +++ b/keyboards/ekow/akira/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for akira diff --git a/keyboards/ekow/akira/keymaps/via/keymap.c b/keyboards/ekow/akira/keymaps/via/keymap.c new file mode 100644 index 000000000000..e7c70a6f9e8c --- /dev/null +++ b/keyboards/ekow/akira/keymaps/via/keymap.c @@ -0,0 +1,26 @@ +/* Copyright 2022 eugenepy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 + [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_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RCTL, KC_RALT), + + // Fn1 Layer + [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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [2] = LAYOUT_60_hhkb(XXX, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/ekow/akira/keymaps/via/rules.mk b/keyboards/ekow/akira/keymaps/via/rules.mk new file mode 100644 index 000000000000..c859353a464c --- /dev/null +++ b/keyboards/ekow/akira/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no diff --git a/keyboards/ekow/akira/readme.md b/keyboards/ekow/akira/readme.md new file mode 100644 index 000000000000..e1a0c9036602 --- /dev/null +++ b/keyboards/ekow/akira/readme.md @@ -0,0 +1,24 @@ +# AKIRA + +* Keyboard Maintainer: [eugenepy](https://github.com/eugenepy) +* Hardware Supported: AKIRA pcb, both Hotswap and solderable. +* Hardware Availability: Not yet on groupbuy + +# Build +Make example for this keyboard (after setting up your build environment): + + make ekow/akira:default + +Flashing example for this keyboard: + + make ekow/akira: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 Buttom on the back of the PCB, the board will enter the dfu-mode, no extra pads need to short. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + diff --git a/keyboards/ekow/akira/rules.mk b/keyboards/ekow/akira/rules.mk new file mode 100644 index 000000000000..6653c66b1608 --- /dev/null +++ b/keyboards/ekow/akira/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = STM32F042 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output From c873daeabfd8884187823edb00abc7d2623475c1 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Wed, 11 May 2022 03:07:01 +0900 Subject: [PATCH 60/71] [Keyboard] Fix led num for center_enter/qoolee (#17050) --- keyboards/takashicompany/center_enter/config.h | 2 +- keyboards/takashicompany/qoolee/config.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/takashicompany/center_enter/config.h b/keyboards/takashicompany/center_enter/config.h index 9900d35f372e..d6840ca682f9 100644 --- a/keyboards/takashicompany/center_enter/config.h +++ b/keyboards/takashicompany/center_enter/config.h @@ -68,7 +68,7 @@ along with this program. If not, see . #define RGB_DI_PIN D3 #ifdef RGB_DI_PIN -# define RGBLED_NUM 16 +# define RGBLED_NUM 6 # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/takashicompany/qoolee/config.h b/keyboards/takashicompany/qoolee/config.h index 3095f8415957..36bb330c9519 100644 --- a/keyboards/takashicompany/qoolee/config.h +++ b/keyboards/takashicompany/qoolee/config.h @@ -68,7 +68,7 @@ along with this program. If not, see . #define RGB_DI_PIN D3 #ifdef RGB_DI_PIN -# define RGBLED_NUM 16 +# define RGBLED_NUM 6 # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 From a942c44347281bff38a326761b9d8978ab686da7 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 10:38:30 +1000 Subject: [PATCH 61/71] rename v1 to v2 --- keyboards/idobao/id80/{v1 => v2}/ansi/config.h | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/default/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/default/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/config.h | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/rverst.json | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/via/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/via/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/ansi/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/ansi/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/config.h | 0 keyboards/idobao/id80/{v1 => v2}/info.json | 0 keyboards/idobao/id80/{v1 => v2}/iso/config.h | 0 keyboards/idobao/id80/{v1 => v2}/iso/keymaps/default/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/iso/keymaps/default/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/iso/keymaps/via/keymap.c | 0 keyboards/idobao/id80/{v1 => v2}/iso/keymaps/via/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/iso/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/iso/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/readme.md | 0 keyboards/idobao/id80/{v1 => v2}/rules.mk | 0 keyboards/idobao/id80/{v1 => v2}/v1.c | 0 keyboards/idobao/id80/{v1 => v2}/v1.h | 0 27 files changed, 0 insertions(+), 0 deletions(-) rename keyboards/idobao/id80/{v1 => v2}/ansi/config.h (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/default/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/default/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/config.h (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/msf/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/rverst/rverst.json (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/via/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/keymaps/via/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/ansi/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/config.h (100%) rename keyboards/idobao/id80/{v1 => v2}/info.json (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/config.h (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/keymaps/default/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/keymaps/default/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/keymaps/via/keymap.c (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/keymaps/via/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/iso/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/readme.md (100%) rename keyboards/idobao/id80/{v1 => v2}/rules.mk (100%) rename keyboards/idobao/id80/{v1 => v2}/v1.c (100%) rename keyboards/idobao/id80/{v1 => v2}/v1.h (100%) diff --git a/keyboards/idobao/id80/v1/ansi/config.h b/keyboards/idobao/id80/v2/ansi/config.h similarity index 100% rename from keyboards/idobao/id80/v1/ansi/config.h rename to keyboards/idobao/id80/v2/ansi/config.h diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/default/keymap.c rename to keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/default/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/default/readme.md rename to keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/config.h b/keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/msf/config.h rename to keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/msf/keymap.c rename to keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/msf/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/msf/readme.md rename to keyboards/idobao/id80/v2/ansi/keymaps/msf/readme.md diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/rules.mk b/keyboards/idobao/id80/v2/ansi/keymaps/msf/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/msf/rules.mk rename to keyboards/idobao/id80/v2/ansi/keymaps/msf/rules.mk diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/rverst/keymap.c rename to keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/rverst/readme.md rename to keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/rverst.json b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/rverst/rverst.json rename to keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/via/keymap.c rename to keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/via/rules.mk b/keyboards/idobao/id80/v2/ansi/keymaps/via/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/ansi/keymaps/via/rules.mk rename to keyboards/idobao/id80/v2/ansi/keymaps/via/rules.mk diff --git a/keyboards/idobao/id80/v1/ansi/readme.md b/keyboards/idobao/id80/v2/ansi/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/ansi/readme.md rename to keyboards/idobao/id80/v2/ansi/readme.md diff --git a/keyboards/idobao/id80/v1/ansi/rules.mk b/keyboards/idobao/id80/v2/ansi/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/ansi/rules.mk rename to keyboards/idobao/id80/v2/ansi/rules.mk diff --git a/keyboards/idobao/id80/v1/config.h b/keyboards/idobao/id80/v2/config.h similarity index 100% rename from keyboards/idobao/id80/v1/config.h rename to keyboards/idobao/id80/v2/config.h diff --git a/keyboards/idobao/id80/v1/info.json b/keyboards/idobao/id80/v2/info.json similarity index 100% rename from keyboards/idobao/id80/v1/info.json rename to keyboards/idobao/id80/v2/info.json diff --git a/keyboards/idobao/id80/v1/iso/config.h b/keyboards/idobao/id80/v2/iso/config.h similarity index 100% rename from keyboards/idobao/id80/v1/iso/config.h rename to keyboards/idobao/id80/v2/iso/config.h diff --git a/keyboards/idobao/id80/v1/iso/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/iso/keymaps/default/keymap.c rename to keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c diff --git a/keyboards/idobao/id80/v1/iso/keymaps/default/readme.md b/keyboards/idobao/id80/v2/iso/keymaps/default/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/iso/keymaps/default/readme.md rename to keyboards/idobao/id80/v2/iso/keymaps/default/readme.md diff --git a/keyboards/idobao/id80/v1/iso/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c similarity index 100% rename from keyboards/idobao/id80/v1/iso/keymaps/via/keymap.c rename to keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c diff --git a/keyboards/idobao/id80/v1/iso/keymaps/via/rules.mk b/keyboards/idobao/id80/v2/iso/keymaps/via/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/iso/keymaps/via/rules.mk rename to keyboards/idobao/id80/v2/iso/keymaps/via/rules.mk diff --git a/keyboards/idobao/id80/v1/iso/readme.md b/keyboards/idobao/id80/v2/iso/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/iso/readme.md rename to keyboards/idobao/id80/v2/iso/readme.md diff --git a/keyboards/idobao/id80/v1/iso/rules.mk b/keyboards/idobao/id80/v2/iso/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/iso/rules.mk rename to keyboards/idobao/id80/v2/iso/rules.mk diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v2/readme.md similarity index 100% rename from keyboards/idobao/id80/v1/readme.md rename to keyboards/idobao/id80/v2/readme.md diff --git a/keyboards/idobao/id80/v1/rules.mk b/keyboards/idobao/id80/v2/rules.mk similarity index 100% rename from keyboards/idobao/id80/v1/rules.mk rename to keyboards/idobao/id80/v2/rules.mk diff --git a/keyboards/idobao/id80/v1/v1.c b/keyboards/idobao/id80/v2/v1.c similarity index 100% rename from keyboards/idobao/id80/v1/v1.c rename to keyboards/idobao/id80/v2/v1.c diff --git a/keyboards/idobao/id80/v1/v1.h b/keyboards/idobao/id80/v2/v1.h similarity index 100% rename from keyboards/idobao/id80/v1/v1.h rename to keyboards/idobao/id80/v2/v1.h From 8d22f96b6e7f552a98ef2caf1fceb252e17a2f12 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 10:46:43 +1000 Subject: [PATCH 62/71] rename id80 v2 filenames --- keyboards/idobao/id80/v2/rules.mk | 9 +++------ keyboards/idobao/id80/v2/{v1.c => v2.c} | 2 +- keyboards/idobao/id80/v2/{v1.h => v2.h} | 0 3 files changed, 4 insertions(+), 7 deletions(-) rename keyboards/idobao/id80/v2/{v1.c => v2.c} (97%) rename keyboards/idobao/id80/v2/{v1.h => v2.h} (100%) diff --git a/keyboards/idobao/id80/v2/rules.mk b/keyboards/idobao/id80/v2/rules.mk index 0baebd07fc5f..bc6052bbced9 100644 --- a/keyboards/idobao/id80/v2/rules.mk +++ b/keyboards/idobao/id80/v2/rules.mk @@ -1,5 +1,5 @@ # Defalt to the ansi version -DEFAULT_FOLDER = idobao/id80/v1/ansi +DEFAULT_FOLDER = idobao/id80/v2/ansi # MCU name MCU = atmega32u4 @@ -10,15 +10,12 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover +NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output - -# partially generated by KBFirmware JSON to QMK Parser -# https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/idobao/id80/v2/v1.c b/keyboards/idobao/id80/v2/v2.c similarity index 97% rename from keyboards/idobao/id80/v2/v1.c rename to keyboards/idobao/id80/v2/v2.c index 7147b6163e18..4bbe242cbf0c 100644 --- a/keyboards/idobao/id80/v2/v1.c +++ b/keyboards/idobao/id80/v2/v2.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 "v1.h" +#include "v2.h" diff --git a/keyboards/idobao/id80/v2/v1.h b/keyboards/idobao/id80/v2/v2.h similarity index 100% rename from keyboards/idobao/id80/v2/v1.h rename to keyboards/idobao/id80/v2/v2.h From 56f50bb8ca4efd454a513ffbcdfe54ef1af9d911 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 11:36:10 +1000 Subject: [PATCH 63/71] create V1 placeholder --- keyboards/idobao/id80/v1/readme.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 keyboards/idobao/id80/v1/readme.md diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v1/readme.md new file mode 100644 index 000000000000..8c76b6163c12 --- /dev/null +++ b/keyboards/idobao/id80/v1/readme.md @@ -0,0 +1,25 @@ +# IDOBAO ID80 + +![ID80](https://idobao.github.io/assets/img/idobao-id80-v1.png) + +A 75% hotswap keyboard from IDOBAO. + +* Keyboard Maintainer: [Sergey Vlasov](https://github.com/sigprof) +* Hardware Supported: IDOBAO ID80 +* Hardware Availability: [Drop](https://drop.com/buy/idobao-id80-75-hot-swappable-mechanical-keyboard-kit?mode=guest_open) + +> ⚠ **Please note:** The source folder for this keyboard has moved to `../v2`. + +Make example for this keyboard (after setting up your build environment): + + make idobao/id80/v2: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 Escape key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available From e82ee66291fa04a07ade50d09e29d62f5f31d56a Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 11:37:35 +1000 Subject: [PATCH 64/71] rename ambiguous `LAYOUT` to `LAYOUT_ansi` --- .../idobao/id80/v2/ansi/keymaps/default/keymap.c | 4 ++-- keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c | 6 +++--- .../idobao/id80/v2/ansi/keymaps/rverst/keymap.c | 12 ++++++------ keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c | 8 ++++---- keyboards/idobao/id80/v2/v2.c | 1 + keyboards/idobao/id80/v2/v2.h | 3 ++- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c index 696fb303e293..04ef561a4faf 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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, MO(1), 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_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, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi( RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c index 6bb91f0f19ef..55b3db74ad36 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_VOLD, KC_VOLU, KC_F8, KC_F9, KC_F10, KC_PSTE, KC_PSCR, KC_DEL, 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_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, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi( RESET, KC_CALC, _______, _______, _______, KC_MUTE, KC_F6, KC_F7, KC_MPLY, KC_MSTP, KC_BRID, KC_BRIU, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, KC_DEL, @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP ), - [2] = LAYOUT( + [2] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c index 3656f48dfebb..17b0445a5a66 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c @@ -20,7 +20,7 @@ // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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 , MO(4) , KC_DEL , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_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, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC , OSL(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi( RV_SNAP, 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_MUTE, RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, RV_EUR , RV_RT , RV_TM , KC_TRNS, RV_UUML, KC_TRNS, RV_OUML, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT ), - [2] = LAYOUT( + [2] = 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_TRNS, MO(4) , 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_VOLU, 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_VOLD, @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC , OSL(3) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [3] = LAYOUT( + [3] = LAYOUT_ansi( RV_SNAP, 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_MUTE, RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_LOCK, RV_UUML, KC_TRNS, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD, @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT ), - [4] = LAYOUT( + [4] = LAYOUT_ansi( DEBUG , RV_SM0 , RV_SM1 , RV_SM2 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , DF(0) , DF(2) , KC_TRNS, MO(5) , RV_SAYM, RV_SM3 , RV_SM4 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RGB_TOG, KC_NO , KC_NO , GUI_ON , KC_NO , KC_NO , RCG_SWP, RGB_RMOD,RGB_M_P, RGB_MOD ), - [5] = LAYOUT( + [5] = LAYOUT_ansi( RESET , RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, KC_NO , RV_SM3S, RV_SM4S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , 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/idobao/id80/v2/ansi/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c index 686ce9ce7394..491ebea9673f 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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, MO(1), 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_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, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi( RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP ), - [2] = LAYOUT( + [2] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/v2.c b/keyboards/idobao/id80/v2/v2.c index 4bbe242cbf0c..f92f5e062923 100644 --- a/keyboards/idobao/id80/v2/v2.c +++ b/keyboards/idobao/id80/v2/v2.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 "v2.h" diff --git a/keyboards/idobao/id80/v2/v2.h b/keyboards/idobao/id80/v2/v2.h index a016e39083f6..d45b75853b7f 100644 --- a/keyboards/idobao/id80/v2/v2.h +++ b/keyboards/idobao/id80/v2/v2.h @@ -13,11 +13,12 @@ * 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( \ +#define LAYOUT_ansi( \ K50, K51, K52, K53, K54, K55, K56, K57, K58, KA7, KA5, KA4, KA3, KA6, KA2, \ K40, K41, K42, K43, K44, K45, K46, K47, K48, K98, K97, K95, K94, K96, K92, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K88, K87, K85, K84, K83, K82, \ From ede8d932abfd463b1a8b4646039b2bad465478a9 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 11:49:53 +1000 Subject: [PATCH 65/71] elaborate on v1 vs. v2 boards --- keyboards/idobao/id80/v1/readme.md | 2 ++ keyboards/idobao/id80/v2/readme.md | 22 +++++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v1/readme.md index 8c76b6163c12..8ba49d669d8a 100644 --- a/keyboards/idobao/id80/v1/readme.md +++ b/keyboards/idobao/id80/v1/readme.md @@ -8,7 +8,9 @@ A 75% hotswap keyboard from IDOBAO. * Hardware Supported: IDOBAO ID80 * Hardware Availability: [Drop](https://drop.com/buy/idobao-id80-75-hot-swappable-mechanical-keyboard-kit?mode=guest_open) +--- > ⚠ **Please note:** The source folder for this keyboard has moved to `../v2`. +--- Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/idobao/id80/v2/readme.md b/keyboards/idobao/id80/v2/readme.md index 8a26378b3b06..7c4af604e074 100644 --- a/keyboards/idobao/id80/v2/readme.md +++ b/keyboards/idobao/id80/v2/readme.md @@ -1,20 +1,20 @@ # IDOBAO ID80 -![ID80](https://ae01.alicdn.com/kf/H0f617c6129c24cfaa26a8c9e8e54851aj.jpg) +![ID80](https://idobao.github.io/assets/img/idobao-id80.png) A 75% hotswap keyboard from IDOBAO. -## ANSI support: +## ANSI support *(v1 & v2)*: * Keyboard Maintainer: [Sergey Vlasov](https://github.com/sigprof) -* Hardware Supported: IDOBAO ID80 -* Hardware Availability: [AliExpress](https://www.aliexpress.com/item/4000590804514.html), [Drop](https://drop.com/buy/idobao-id80-75-hot-swappable-mechanical-keyboard-kit?mode=guest_open) +* Hardware Supported: IDOBAO ID80v1, IDOBAO ID80v2 +* Hardware Availability: [IDOBAO](https://idobao.net/search?type=product&q=ID80*), [AliExpress](https://www.aliexpress.com/store/5072109/search?origin=y&SearchText=ID80) Make example for this keyboard (after setting up your build environment): - make idobao/id80/v1/ansi:default + make idobao/id80/v2/ansi:default -## ISO support: +## ISO support *(v2-iso)*: * Keyboard Maintainer: [Carsten Rose](https://github.com/cwr10010) * Hardware Supported: IDOBAO ID80v2 @@ -22,6 +22,14 @@ Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment): - make idobao/id80/v1/iso:default + make idobao/id80/v2/iso: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 Escape key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available From 2dc186520331aa8c99ebd6ce9dbd86719ce0dee5 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 11:50:12 +1000 Subject: [PATCH 66/71] ensure v1 folder compiles --- keyboards/idobao/id80/v1/rules.mk | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 keyboards/idobao/id80/v1/rules.mk diff --git a/keyboards/idobao/id80/v1/rules.mk b/keyboards/idobao/id80/v1/rules.mk new file mode 100644 index 000000000000..20283f04be5f --- /dev/null +++ b/keyboards/idobao/id80/v1/rules.mk @@ -0,0 +1,2 @@ +# Defalt to the ansi version +DEFAULT_FOLDER = idobao/id80/v2/ansi From 21b59399786a4957ecf0feada77407f66c8fbe60 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 15:09:31 +1000 Subject: [PATCH 67/71] Update info.json --- keyboards/idobao/id80/v2/info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/idobao/id80/v2/info.json b/keyboards/idobao/id80/v2/info.json index 072b4ca4db5c..03093e7b13a3 100644 --- a/keyboards/idobao/id80/v2/info.json +++ b/keyboards/idobao/id80/v2/info.json @@ -1,9 +1,9 @@ { - "keyboard_name": "ID80", + "keyboard_name": "IDOBAO ID80", "url": "", - "maintainer": "qmk", + "maintainer": "IDOBAOKB", "layouts": { - "LAYOUT": { + "LAYOUT_ansi": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, From 351cbdef400f100b94f985974dba116680cbd608 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 15:54:13 +1000 Subject: [PATCH 68/71] disable backlight for v1 boards --- keyboards/idobao/id80/v1/readme.md | 2 +- keyboards/idobao/id80/v2/config.h | 8 +++++--- keyboards/idobao/id80/v2/rules.mk | 14 ++++++++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v1/readme.md index 8ba49d669d8a..da9f720c2a31 100644 --- a/keyboards/idobao/id80/v1/readme.md +++ b/keyboards/idobao/id80/v1/readme.md @@ -14,7 +14,7 @@ A 75% hotswap keyboard from IDOBAO. Make example for this keyboard (after setting up your build environment): - make idobao/id80/v2:default + make idobao/id80/v2:default BACKLIGHT=off 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/idobao/id80/v2/config.h b/keyboards/idobao/id80/v2/config.h index c6cf66738225..dceeb5ec4c3f 100644 --- a/keyboards/idobao/id80/v2/config.h +++ b/keyboards/idobao/id80/v2/config.h @@ -53,9 +53,11 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW -#define BACKLIGHT_PIN B6 -#define BACKLIGHT_BREATHING -#define BACKLIGHT_LEVELS 3 +#ifndef ID80_NO_BACKLIGHT + #define BACKLIGHT_PIN B6 + #define BACKLIGHT_BREATHING + #define BACKLIGHT_LEVELS 3 +#endif #define LED_CAPS_LOCK_PIN C7 #define LED_PIN_ON_STATE 0 diff --git a/keyboards/idobao/id80/v2/rules.mk b/keyboards/idobao/id80/v2/rules.mk index bc6052bbced9..aa27d14ea652 100644 --- a/keyboards/idobao/id80/v2/rules.mk +++ b/keyboards/idobao/id80/v2/rules.mk @@ -16,6 +16,16 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output + +ifeq ($(findstring no,$(BACKLIGHT)), no) + $(info NO BACKLIGHT) + BACKLIGHT_ENABLE = no + OPT_DEFS += -DID80_NO_BACKLIGHT +else ifeq ($(findstring off,$(BACKLIGHT)), off) + $(info BACKLIGHT OFF) + BACKLIGHT_ENABLE = no + OPT_DEFS += -DID80_NO_BACKLIGHT +else + BACKLIGHT_ENABLE = yes +endif From fc9f74a16d594a30c275d2b22fdd438494a4e2ef Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 11 May 2022 16:12:07 +1000 Subject: [PATCH 69/71] updated v1 conditional compile to use `BACKLIGHT_ENABLE=no` --- keyboards/idobao/id80/v1/readme.md | 2 +- keyboards/idobao/id80/v2/config.h | 2 +- keyboards/idobao/id80/v2/rules.mk | 13 +------------ 3 files changed, 3 insertions(+), 14 deletions(-) diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v1/readme.md index da9f720c2a31..04db4917b380 100644 --- a/keyboards/idobao/id80/v1/readme.md +++ b/keyboards/idobao/id80/v1/readme.md @@ -14,7 +14,7 @@ A 75% hotswap keyboard from IDOBAO. Make example for this keyboard (after setting up your build environment): - make idobao/id80/v2:default BACKLIGHT=off + make idobao/id80/v2:default BACKLIGHT_ENABLE=no 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/idobao/id80/v2/config.h b/keyboards/idobao/id80/v2/config.h index dceeb5ec4c3f..2e21ae502500 100644 --- a/keyboards/idobao/id80/v2/config.h +++ b/keyboards/idobao/id80/v2/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW -#ifndef ID80_NO_BACKLIGHT +#ifdef BACKLIGHT_ENABLE #define BACKLIGHT_PIN B6 #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 diff --git a/keyboards/idobao/id80/v2/rules.mk b/keyboards/idobao/id80/v2/rules.mk index aa27d14ea652..ad7340ce1727 100644 --- a/keyboards/idobao/id80/v2/rules.mk +++ b/keyboards/idobao/id80/v2/rules.mk @@ -17,15 +17,4 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow - -ifeq ($(findstring no,$(BACKLIGHT)), no) - $(info NO BACKLIGHT) - BACKLIGHT_ENABLE = no - OPT_DEFS += -DID80_NO_BACKLIGHT -else ifeq ($(findstring off,$(BACKLIGHT)), off) - $(info BACKLIGHT OFF) - BACKLIGHT_ENABLE = no - OPT_DEFS += -DID80_NO_BACKLIGHT -else - BACKLIGHT_ENABLE = yes -endif +BACKLIGHT_ENABLE = yes # Enable underkey LED backlight From 3e6fa3daa859cef09c1c05b192546ddaae4e1df2 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 18 May 2022 00:04:33 +1000 Subject: [PATCH 70/71] additional code cleanup --- .../idobao/id80/v2/ansi/keymaps/default/readme.md | 1 - .../idobao/id80/v2/ansi/keymaps/rverst/readme.md | 4 ++-- .../idobao/id80/v2/ansi/keymaps/rverst/rverst.json | 2 +- keyboards/idobao/id80/v2/ansi/readme.md | 2 +- .../idobao/id80/v2/iso/keymaps/default/readme.md | 1 - keyboards/idobao/id80/v2/iso/readme.md | 2 +- keyboards/idobao/id80/v2/readme.md | 12 +++++++++--- 7 files changed, 14 insertions(+), 10 deletions(-) delete mode 100644 keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md delete mode 100644 keyboards/idobao/id80/v2/iso/keymaps/default/readme.md diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md deleted file mode 100644 index 8ae9f656cd0b..000000000000 --- a/keyboards/idobao/id80/v2/ansi/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for id80 diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md index ba33980edb3c..66dd2b528732 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md @@ -1,6 +1,6 @@ -# idobao id80 +# IDOBAO ID80 -This is my layout for the idobao id80. It depends of my [user files](../../../../users/rverst) +This is my layout for the IDOBAO ID80. It depends of my [user files](../../../../users/rverst) and the main goal is to give an convenient and unified access to some special keys (umlauts, ß, €) for different operating systems (Mac, Windows and Linux). diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json index 50235498fed4..f126fa189842 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json @@ -1,5 +1,5 @@ { - "keyboard": "id80", + "keyboard": "ID80", "keymap": "rverst", "layout": "LAYOUT", "layers": [ diff --git a/keyboards/idobao/id80/v2/ansi/readme.md b/keyboards/idobao/id80/v2/ansi/readme.md index 1bfae4373554..fcf41c5f2377 100644 --- a/keyboards/idobao/id80/v2/ansi/readme.md +++ b/keyboards/idobao/id80/v2/ansi/readme.md @@ -1 +1 @@ -# The ANSI variant of the id80 +# The ANSI variant of the ID80 diff --git a/keyboards/idobao/id80/v2/iso/keymaps/default/readme.md b/keyboards/idobao/id80/v2/iso/keymaps/default/readme.md deleted file mode 100644 index 8ae9f656cd0b..000000000000 --- a/keyboards/idobao/id80/v2/iso/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for id80 diff --git a/keyboards/idobao/id80/v2/iso/readme.md b/keyboards/idobao/id80/v2/iso/readme.md index 3e0d8ce2312b..300b37419433 100644 --- a/keyboards/idobao/id80/v2/iso/readme.md +++ b/keyboards/idobao/id80/v2/iso/readme.md @@ -1 +1 @@ -# The ISO variant of the id80 +# The ISO variant of the ID80 diff --git a/keyboards/idobao/id80/v2/readme.md b/keyboards/idobao/id80/v2/readme.md index 7c4af604e074..fcba9255e11f 100644 --- a/keyboards/idobao/id80/v2/readme.md +++ b/keyboards/idobao/id80/v2/readme.md @@ -7,12 +7,18 @@ A 75% hotswap keyboard from IDOBAO. ## ANSI support *(v1 & v2)*: * Keyboard Maintainer: [Sergey Vlasov](https://github.com/sigprof) -* Hardware Supported: IDOBAO ID80v1, IDOBAO ID80v2 -* Hardware Availability: [IDOBAO](https://idobao.net/search?type=product&q=ID80*), [AliExpress](https://www.aliexpress.com/store/5072109/search?origin=y&SearchText=ID80) +* Hardware Supported: + * IDOBAO ID80v1 + * IDOBAO ID80v2 +* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=ID80*), [AliExpress](https://www.aliexpress.com/store/5072109/search?origin=y&SearchText=ID80) Make example for this keyboard (after setting up your build environment): make idobao/id80/v2/ansi:default + +To compile for the **v1** please use: + + make idobao/id80/v2:default BACKLIGHT_ENABLE=no ## ISO support *(v2-iso)*: @@ -32,4 +38,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the Escape key and plug in the keyboard * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `RESET` if it is available *(default is [Fn]+[Esc])* From 51e38969b29f5d013326996e535c49dff713f90e Mon Sep 17 00:00:00 2001 From: Vino Rodrigues Date: Wed, 18 May 2022 00:16:06 +1000 Subject: [PATCH 71/71] RESET -> QK_BOOT default keymaps --- keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c | 2 +- keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c | 2 +- keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c | 2 +- keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c | 2 +- keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c | 2 +- keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c index 04ef561a4faf..b09718dda072 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_ansi( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c index 55b3db74ad36..bc31cfb0b826 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_ansi( - RESET, KC_CALC, _______, _______, _______, KC_MUTE, KC_F6, KC_F7, KC_MPLY, KC_MSTP, KC_BRID, KC_BRIU, KC_F11, KC_F12, _______, + QK_BOOT, KC_CALC, _______, _______, _______, KC_MUTE, KC_F6, KC_F7, KC_MPLY, KC_MSTP, KC_BRID, KC_BRIU, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c index 17b0445a5a66..1e751e751d15 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO , KC_NO , GUI_ON , KC_NO , KC_NO , RCG_SWP, RGB_RMOD,RGB_M_P, RGB_MOD ), [5] = LAYOUT_ansi( - RESET , RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, + QK_BOOT, RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, KC_NO , RV_SM3S, RV_SM4S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , 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/idobao/id80/v2/ansi/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c index 491ebea9673f..4fc88dc59202 100644 --- a/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_ansi( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c index 1cc606735631..01eaa2a44f33 100644 --- a/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_iso( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c index 710da2edf182..25ff6b084de9 100644 --- a/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c +++ b/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_iso( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,