From 06310e81e9ddebcfc5e25b826bfe4914375de14e Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Fri, 8 Jul 2022 22:49:55 +0100 Subject: [PATCH 01/69] Allow only col or row pins for *_right extraction. (#17590) --- lib/python/qmk/info.py | 38 +++++++++----------------------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 23761d71b7..340969f415 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -318,7 +318,7 @@ def _extract_split_right_pins(info_data, config_c): unused_pins = unused_pin_text.replace('{', '').replace('}', '').strip() if isinstance(unused_pin_text, str) else None direct_pins = config_c.get('DIRECT_PINS_RIGHT', '').replace(' ', '')[1:-1] - if row_pins and col_pins: + if row_pins or col_pins or direct_pins or unused_pins: if info_data.get('split', {}).get('matrix_pins', {}).get('right') in info_data: _log_warning(info_data, 'Right hand matrix data is specified in both info.json and config.h, the config.h values win.') @@ -331,37 +331,17 @@ def _extract_split_right_pins(info_data, config_c): if 'right' not in info_data['split']['matrix_pins']: info_data['split']['matrix_pins']['right'] = {} - info_data['split']['matrix_pins']['right'] = { - 'cols': _extract_pins(col_pins), - 'rows': _extract_pins(row_pins), - } + if col_pins: + info_data['split']['matrix_pins']['right']['cols'] = _extract_pins(col_pins) - if direct_pins: - if info_data.get('split', {}).get('matrix_pins', {}).get('right', {}): - _log_warning(info_data, 'Right hand matrix data is specified in both info.json and config.h, the config.h values win.') + if row_pins: + info_data['split']['matrix_pins']['right']['rows'] = _extract_pins(row_pins) - if 'split' not in info_data: - info_data['split'] = {} + if direct_pins: + info_data['split']['matrix_pins']['right']['direct'] = _extract_direct_matrix(direct_pins) - if 'matrix_pins' not in info_data['split']: - info_data['split']['matrix_pins'] = {} - - if 'right' not in info_data['split']['matrix_pins']: - info_data['split']['matrix_pins']['right'] = {} - - info_data['split']['matrix_pins']['right']['direct'] = _extract_direct_matrix(direct_pins) - - if unused_pins: - if 'split' not in info_data: - info_data['split'] = {} - - if 'matrix_pins' not in info_data['split']: - info_data['split']['matrix_pins'] = {} - - if 'right' not in info_data['split']['matrix_pins']: - info_data['split']['matrix_pins']['right'] = {} - - info_data['split']['matrix_pins']['right']['unused'] = _extract_pins(unused_pins) + if unused_pins: + info_data['split']['matrix_pins']['right']['unused'] = _extract_pins(unused_pins) def _extract_matrix_info(info_data, config_c): From 561c5e1d7adfee1e318dd5b732738c35778d575e Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 9 Jul 2022 22:32:43 +1000 Subject: [PATCH 02/69] Add line to multibuild output log showing the actual build target. (#17606) --- lib/python/qmk/cli/multibuild.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/python/qmk/cli/multibuild.py b/lib/python/qmk/cli/multibuild.py index dff8c88422..a1db669ca8 100755 --- a/lib/python/qmk/cli/multibuild.py +++ b/lib/python/qmk/cli/multibuild.py @@ -69,6 +69,7 @@ def multibuild(cli): all: {keyboard_safe}_binary {keyboard_safe}_binary: @rm -f "{QMK_FIRMWARE}/.build/failed.log.{keyboard_safe}" || true + @echo "Compiling QMK Firmware for target: '{keyboard_name}:{cli.args.keymap}'..." >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{cli.args.keymap}" REQUIRE_PLATFORM_KEY= COLOR=true SILENT=false {' '.join(cli.args.env)} \\ >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" 2>&1 \\ || cp "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" "{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}" From 2106acc24a5c223a5429ea5413bd78f6f0ad038c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 9 Jul 2022 18:26:48 +0100 Subject: [PATCH 03/69] merge/um80 - Fix WPM issues in configurator builds (#17608) --- keyboards/merge/um80/um80.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/keyboards/merge/um80/um80.c b/keyboards/merge/um80/um80.c index 4bb925c6c9..557197c89d 100644 --- a/keyboards/merge/um80/um80.c +++ b/keyboards/merge/um80/um80.c @@ -16,6 +16,10 @@ #include "um80.h" +#ifndef WPM_ENABLE +# define get_current_wpm() 0 +#endif + #ifdef OLED_ENABLE void suspend_power_down_kb(void) { oled_off(); @@ -61,8 +65,6 @@ static const char PROGMEM merge_logo[] = { 0x01, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00 }; -uint8_t current_wpm = 0; - static void print_status_narrow(void) { oled_set_cursor(0,1); oled_write_raw_P(merge_logo, sizeof(merge_logo)); @@ -108,7 +110,6 @@ static void print_status_narrow(void) { bool oled_task_kb(void) { if (!oled_task_user()) { return false; } - current_wpm = get_current_wpm(); if (is_keyboard_master()) { print_status_narrow(); //render_logo(); From a5eeee4deda870863ff903ccf573c762165a7315 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 10 Jul 2022 23:44:56 +0100 Subject: [PATCH 04/69] Fix infinite recursion in checkerboards/quark_plus (#17616) --- keyboards/checkerboards/quark_plus/quark_plus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/checkerboards/quark_plus/quark_plus.c b/keyboards/checkerboards/quark_plus/quark_plus.c index 036d3a96c5..0c0ae0cf4e 100644 --- a/keyboards/checkerboards/quark_plus/quark_plus.c +++ b/keyboards/checkerboards/quark_plus/quark_plus.c @@ -17,7 +17,7 @@ #include "quark_plus.h" bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_kb(index, clockwise)) { return false; } + if (!encoder_update_user(index, clockwise)) { return false; } if (index == 1) { /* left encoder*/ if (clockwise){ tap_code(KC_WH_U); From 16b837b35b1aa4af18ead31b5a7d89c5e933cc92 Mon Sep 17 00:00:00 2001 From: GG <72414103+spbgzh@users.noreply.github.com> Date: Mon, 11 Jul 2022 14:23:13 +0300 Subject: [PATCH 05/69] [Keyboard] Add Promise87 (#17525) --- keyboards/wuque/promise87/ansi/ansi.c | 17 + keyboards/wuque/promise87/ansi/ansi.h | 185 +++++++ keyboards/wuque/promise87/ansi/config.h | 41 ++ keyboards/wuque/promise87/ansi/info.json | 498 ++++++++++++++++++ .../promise87/ansi/keymaps/87_ansi/keymap.c | 36 ++ .../promise87/ansi/keymaps/87_ansi/readme.md | 1 + .../ansi/keymaps/87_ansi_split_bs/keymap.c | 36 ++ .../ansi/keymaps/87_ansi_split_bs/readme.md | 1 + .../keymaps/87_ansi_split_lshift/keymap.c | 36 ++ .../keymaps/87_ansi_split_lshift/readme.md | 1 + .../keymaps/87_ansi_split_rshift/keymap.c | 36 ++ .../keymaps/87_ansi_split_rshift/readme.md | 1 + .../promise87/ansi/keymaps/default/keymap.c | 36 ++ .../promise87/ansi/keymaps/default/readme.md | 1 + .../wuque/promise87/ansi/keymaps/via/keymap.c | 52 ++ .../promise87/ansi/keymaps/via/readme.md | 1 + .../wuque/promise87/ansi/keymaps/via/rules.mk | 2 + keyboards/wuque/promise87/ansi/readme.md | 27 + keyboards/wuque/promise87/ansi/rules.mk | 18 + keyboards/wuque/promise87/wkl/config.h | 41 ++ keyboards/wuque/promise87/wkl/info.json | 483 +++++++++++++++++ .../promise87/wkl/keymaps/87_wkl/keymap.c | 36 ++ .../promise87/wkl/keymaps/87_wkl/readme.md | 1 + .../wkl/keymaps/87_wkl_split_bs/keymap.c | 36 ++ .../wkl/keymaps/87_wkl_split_bs/readme.md | 1 + .../wkl/keymaps/87_wkl_split_lshift/keymap.c | 36 ++ .../wkl/keymaps/87_wkl_split_lshift/readme.md | 1 + .../wkl/keymaps/87_wkl_split_rshift/keymap.c | 36 ++ .../wkl/keymaps/87_wkl_split_rshift/readme.md | 1 + .../promise87/wkl/keymaps/default/keymap.c | 36 ++ .../promise87/wkl/keymaps/default/readme.md | 1 + .../wuque/promise87/wkl/keymaps/via/keymap.c | 52 ++ .../wuque/promise87/wkl/keymaps/via/readme.md | 1 + .../wuque/promise87/wkl/keymaps/via/rules.mk | 2 + keyboards/wuque/promise87/wkl/readme.md | 27 + keyboards/wuque/promise87/wkl/rules.mk | 18 + keyboards/wuque/promise87/wkl/wkl.c | 17 + keyboards/wuque/promise87/wkl/wkl.h | 184 +++++++ 38 files changed, 2036 insertions(+) create mode 100644 keyboards/wuque/promise87/ansi/ansi.c create mode 100644 keyboards/wuque/promise87/ansi/ansi.h create mode 100644 keyboards/wuque/promise87/ansi/config.h create mode 100644 keyboards/wuque/promise87/ansi/info.json create mode 100644 keyboards/wuque/promise87/ansi/keymaps/87_ansi/keymap.c create mode 100644 keyboards/wuque/promise87/ansi/keymaps/87_ansi/readme.md create mode 100644 keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_bs/keymap.c create mode 100644 keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_bs/readme.md create mode 100644 keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_lshift/keymap.c create mode 100644 keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_lshift/readme.md create mode 100644 keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_rshift/keymap.c create mode 100644 keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_rshift/readme.md create mode 100644 keyboards/wuque/promise87/ansi/keymaps/default/keymap.c create mode 100644 keyboards/wuque/promise87/ansi/keymaps/default/readme.md create mode 100644 keyboards/wuque/promise87/ansi/keymaps/via/keymap.c create mode 100644 keyboards/wuque/promise87/ansi/keymaps/via/readme.md create mode 100644 keyboards/wuque/promise87/ansi/keymaps/via/rules.mk create mode 100644 keyboards/wuque/promise87/ansi/readme.md create mode 100644 keyboards/wuque/promise87/ansi/rules.mk create mode 100644 keyboards/wuque/promise87/wkl/config.h create mode 100644 keyboards/wuque/promise87/wkl/info.json create mode 100644 keyboards/wuque/promise87/wkl/keymaps/87_wkl/keymap.c create mode 100644 keyboards/wuque/promise87/wkl/keymaps/87_wkl/readme.md create mode 100644 keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_bs/keymap.c create mode 100644 keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_bs/readme.md create mode 100644 keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_lshift/keymap.c create mode 100644 keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_lshift/readme.md create mode 100644 keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_rshift/keymap.c create mode 100644 keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_rshift/readme.md create mode 100644 keyboards/wuque/promise87/wkl/keymaps/default/keymap.c create mode 100644 keyboards/wuque/promise87/wkl/keymaps/default/readme.md create mode 100644 keyboards/wuque/promise87/wkl/keymaps/via/keymap.c create mode 100644 keyboards/wuque/promise87/wkl/keymaps/via/readme.md create mode 100644 keyboards/wuque/promise87/wkl/keymaps/via/rules.mk create mode 100644 keyboards/wuque/promise87/wkl/readme.md create mode 100644 keyboards/wuque/promise87/wkl/rules.mk create mode 100644 keyboards/wuque/promise87/wkl/wkl.c create mode 100644 keyboards/wuque/promise87/wkl/wkl.h diff --git a/keyboards/wuque/promise87/ansi/ansi.c b/keyboards/wuque/promise87/ansi/ansi.c new file mode 100644 index 0000000000..8e20dfb751 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/ansi.c @@ -0,0 +1,17 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ansi.h" diff --git a/keyboards/wuque/promise87/ansi/ansi.h b/keyboards/wuque/promise87/ansi/ansi.h new file mode 100644 index 0000000000..30f16793cf --- /dev/null +++ b/keyboards/wuque/promise87/ansi/ansi.h @@ -0,0 +1,185 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + + +/* Standard Arrangement + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │3d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │4d │ │4f │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ||5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_87_ansi + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ||5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_87_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_87_ansi_split_bs + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │3d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ||5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_87_ansi_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_87_ansi_split_lshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ │4f │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ||5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_87_ansi_split_lshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_87_ansi_split_rshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │4d │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ||5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_87_ansi_split_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} diff --git a/keyboards/wuque/promise87/ansi/config.h b/keyboards/wuque/promise87/ansi/config.h new file mode 100644 index 0000000000..ce76fac578 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/config.h @@ -0,0 +1,41 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x906D +#define PRODUCT_ID 0x0005 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wuque +#define PRODUCT promise87 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_ROW_PINS { B3, B7, B2, F0, D3, D0 } +#define MATRIX_COL_PINS { D6, D7, D1, D5, F7, D4, F5, F4, F1, C7, C6, B6, B5, B4, E6, B1, B0 } + +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN F6 +#define LED_PIN_ON_STATE 0 diff --git a/keyboards/wuque/promise87/ansi/info.json b/keyboards/wuque/promise87/ansi/info.json new file mode 100644 index 0000000000..f8cf44b849 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/info.json @@ -0,0 +1,498 @@ +{ + "keyboard_name": "promise87", + "url": "https://shop.wuquestudio.com/", + "maintainer": "spbgzh", + "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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "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 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_87_ansi": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_87_ansi_split_bs": { + "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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_87_ansi_split_lshift": { + "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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_87_ansi_split_rshift": { + "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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "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 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "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/wuque/promise87/ansi/keymaps/87_ansi/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/87_ansi/keymap.c new file mode 100644 index 0000000000..67d72fb850 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/87_ansi/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_87_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_87_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/87_ansi/readme.md b/keyboards/wuque/promise87/ansi/keymaps/87_ansi/readme.md new file mode 100644 index 0000000000..6aee31c744 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/87_ansi/readme.md @@ -0,0 +1 @@ +# The 87_ansi keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_bs/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_bs/keymap.c new file mode 100644 index 0000000000..f238a4aa38 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_bs/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_87_ansi_split_bs( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, + 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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_87_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_bs/readme.md b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_bs/readme.md new file mode 100644 index 0000000000..3bfed281e7 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_bs/readme.md @@ -0,0 +1 @@ +# The 87_split_bs keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_lshift/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_lshift/keymap.c new file mode 100644 index 0000000000..53b9159f0d --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_lshift/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_87_ansi_split_lshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_87_ansi_split_lshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_lshift/readme.md b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_lshift/readme.md new file mode 100644 index 0000000000..dda9e97643 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_lshift/readme.md @@ -0,0 +1 @@ +# The 87_split_lshift keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_rshift/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_rshift/keymap.c new file mode 100644 index 0000000000..ffe93d4517 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_rshift/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_87_ansi_split_rshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_87_ansi_split_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_rshift/readme.md b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_rshift/readme.md new file mode 100644 index 0000000000..48e51c385c --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/87_ansi_split_rshift/readme.md @@ -0,0 +1 @@ +# The 87_split_rshift keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/default/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..89b9705014 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_all( + KC_ESC, KC_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_BSPC, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/default/readme.md b/keyboards/wuque/promise87/ansi/keymaps/default/readme.md new file mode 100644 index 0000000000..f3a77c93fd --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/via/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/via/keymap.c new file mode 100644 index 0000000000..85c2758d37 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_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_BSPC, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/via/readme.md b/keyboards/wuque/promise87/ansi/keymaps/via/readme.md new file mode 100644 index 0000000000..a500dfdb15 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/via/rules.mk b/keyboards/wuque/promise87/ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wuque/promise87/ansi/readme.md b/keyboards/wuque/promise87/ansi/readme.md new file mode 100644 index 0000000000..a5c5591de9 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/readme.md @@ -0,0 +1,27 @@ +# promise87 + +More Info at [promise87](https://shop.wuquestudio.com/) +​ + +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: promise 87 +* Hardware Availability: [promise87](https://shop.wuquestudio.com/) +​ + +Make example for this keyboard (after setting up your build environment): + + make wuque/promise87/ansi:default + +Flashing example for this keyboard: + + make wuque/promise87/ansi:default:flash + +## Bootloader + +Enter the bootloader using one of the following methods: + +* Tap the Reset switch mounted on the PCB +* In the case of the default keymap, use the key combination Fn + PageUp +* Hold the Esc key while connecting the USB cable (also erases persistent settings) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/wuque/promise87/ansi/rules.mk b/keyboards/wuque/promise87/ansi/rules.mk new file mode 100644 index 0000000000..bc2cad63d3 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/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 = 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 diff --git a/keyboards/wuque/promise87/wkl/config.h b/keyboards/wuque/promise87/wkl/config.h new file mode 100644 index 0000000000..aebcac549e --- /dev/null +++ b/keyboards/wuque/promise87/wkl/config.h @@ -0,0 +1,41 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x906D +#define PRODUCT_ID 0x0006 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wuque +#define PRODUCT promise87 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_ROW_PINS { B3, B7, B2, F0, D3, D0 } +#define MATRIX_COL_PINS { D6, D7, D1, D5, F7, D4, F5, F4, F1, C7, C6, B6, B5, B4, E6, B1, B0 } + +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN F6 +#define LED_PIN_ON_STATE 0 diff --git a/keyboards/wuque/promise87/wkl/info.json b/keyboards/wuque/promise87/wkl/info.json new file mode 100644 index 0000000000..f5d4253faa --- /dev/null +++ b/keyboards/wuque/promise87/wkl/info.json @@ -0,0 +1,483 @@ +{ + "keyboard_name": "promise87", + "url": "https://shop.wuquestudio.com/", + "maintainer": "spbgzh", + "layouts": { + "LAYOUT_all_wkl": { + "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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_87_wkl": { + "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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_87_wkl_split_bs": { + "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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_87_wkl_split_lshift": { + "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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_87_wkl_split_rshift": { + "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": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "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, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "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": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "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/wuque/promise87/wkl/keymaps/87_wkl/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/87_wkl/keymap.c new file mode 100644 index 0000000000..23d8429473 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/87_wkl/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_87_wkl( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_87_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/87_wkl/readme.md b/keyboards/wuque/promise87/wkl/keymaps/87_wkl/readme.md new file mode 100644 index 0000000000..b5b4ca436f --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/87_wkl/readme.md @@ -0,0 +1 @@ +# The 87_WKL keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_bs/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_bs/keymap.c new file mode 100644 index 0000000000..914fcb0773 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_bs/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_87_wkl_split_bs( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, + 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_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_87_wkl_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_bs/readme.md b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_bs/readme.md new file mode 100644 index 0000000000..f157f22021 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_bs/readme.md @@ -0,0 +1 @@ +# The 87_WKL_split_bs keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_lshift/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_lshift/keymap.c new file mode 100644 index 0000000000..ecf208d26d --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_lshift/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_87_wkl_split_lshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_87_wkl_split_lshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_lshift/readme.md b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_lshift/readme.md new file mode 100644 index 0000000000..dda9e97643 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_lshift/readme.md @@ -0,0 +1 @@ +# The 87_split_lshift keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_rshift/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_rshift/keymap.c new file mode 100644 index 0000000000..38816adabb --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_rshift/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_87_wkl_split_rshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_87_wkl_split_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_rshift/readme.md b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_rshift/readme.md new file mode 100644 index 0000000000..48e51c385c --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/87_wkl_split_rshift/readme.md @@ -0,0 +1 @@ +# The 87_split_rshift keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/default/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/default/keymap.c new file mode 100644 index 0000000000..9934c2db60 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_all_wkl( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/default/readme.md b/keyboards/wuque/promise87/wkl/keymaps/default/readme.md new file mode 100644 index 0000000000..f3a77c93fd --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/via/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/via/keymap.c new file mode 100644 index 0000000000..d492cc9ae2 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all_wkl( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/via/readme.md b/keyboards/wuque/promise87/wkl/keymaps/via/readme.md new file mode 100644 index 0000000000..a500dfdb15 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/via/rules.mk b/keyboards/wuque/promise87/wkl/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wuque/promise87/wkl/readme.md b/keyboards/wuque/promise87/wkl/readme.md new file mode 100644 index 0000000000..f4562164bd --- /dev/null +++ b/keyboards/wuque/promise87/wkl/readme.md @@ -0,0 +1,27 @@ +# promise87 + +More Info at [promise87](https://shop.wuquestudio.com/) +​ + +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: promise 87 +* Hardware Availability: [promise87](https://shop.wuquestudio.com/) +​ + +Make example for this keyboard (after setting up your build environment): + + make wuque/promise87/wkl:default + +Flashing example for this keyboard: + + make wuque/promise87/wkl:default:flash + +## Bootloader + +Enter the bootloader using one of the following methods: + +* Tap the Reset switch mounted on the PCB +* In the case of the default keymap, use the key combination Fn + PageUp +* Hold the Esc key while connecting the USB cable (also erases persistent settings) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/wuque/promise87/wkl/rules.mk b/keyboards/wuque/promise87/wkl/rules.mk new file mode 100644 index 0000000000..bc2cad63d3 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/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 = 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 diff --git a/keyboards/wuque/promise87/wkl/wkl.c b/keyboards/wuque/promise87/wkl/wkl.c new file mode 100644 index 0000000000..6264f7b1d6 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/wkl.c @@ -0,0 +1,17 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "wkl.h" diff --git a/keyboards/wuque/promise87/wkl/wkl.h b/keyboards/wuque/promise87/wkl/wkl.h new file mode 100644 index 0000000000..201d903c2b --- /dev/null +++ b/keyboards/wuque/promise87/wkl/wkl.h @@ -0,0 +1,184 @@ +/* Copyright 2022 wuque + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + + +/* LAYOUT_all_WKL + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │3d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │4d │ │4f │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_all_wkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K52, K56, 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, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_87_wkl + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ │4f │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_87_wkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K52, K56, 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, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_87_wkl_split_bs + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │3d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ │4f │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_87_wkl_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K52, K56, 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, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_87_wkl_split_lshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ │4f │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_87_wkl_split_lshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K52, K56, 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, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_87_wkl_split_rshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d ││0e │0f │0g │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d ││2e │2f │2g │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │4d │ │4f │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_87_wkl_split_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K52, K56, 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, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} From 5389f088b11da69b76f226e7720c95bf1e05ba15 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 11 Jul 2022 12:30:45 +0100 Subject: [PATCH 06/69] splitkb/kyria - Resolve CONVERT_TO_PROTON_C warnings (#17617) --- keyboards/splitkb/kyria/rev1/proton_c/rules.mk | 2 +- keyboards/splitkb/kyria/rev2/proton_c/rules.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/splitkb/kyria/rev1/proton_c/rules.mk b/keyboards/splitkb/kyria/rev1/proton_c/rules.mk index 1a5f9a7cb3..496312fe98 100644 --- a/keyboards/splitkb/kyria/rev1/proton_c/rules.mk +++ b/keyboards/splitkb/kyria/rev1/proton_c/rules.mk @@ -9,4 +9,4 @@ WS2812_DRIVER = pwm SERIAL_DRIVER = usart AUDIO_ENABLE = no LTO_ENABLE = no -CONVERT_TO_PROTON_C = yes +CONVERT_TO = proton_c diff --git a/keyboards/splitkb/kyria/rev2/proton_c/rules.mk b/keyboards/splitkb/kyria/rev2/proton_c/rules.mk index 1a5f9a7cb3..496312fe98 100644 --- a/keyboards/splitkb/kyria/rev2/proton_c/rules.mk +++ b/keyboards/splitkb/kyria/rev2/proton_c/rules.mk @@ -9,4 +9,4 @@ WS2812_DRIVER = pwm SERIAL_DRIVER = usart AUDIO_ENABLE = no LTO_ENABLE = no -CONVERT_TO_PROTON_C = yes +CONVERT_TO = proton_c From 2dab029bcfb84b1fdd8fd0ef4d41ba41b9b5a109 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 11 Jul 2022 05:51:29 -0700 Subject: [PATCH 07/69] Peej Rosaline Refactor (#17564) --- keyboards/peej/rosaline/keymaps/via/keymap.c | 46 ------------- keyboards/peej/rosaline/{ => ortho}/info.json | 55 --------------- .../ortho => ortho/keymaps/default}/keymap.c | 0 .../via-ortho => ortho/keymaps/via}/keymap.c | 0 .../via-ortho => ortho/keymaps/via}/rules.mk | 0 keyboards/peej/rosaline/ortho/ortho.h | 57 ++++++++++++++++ keyboards/peej/rosaline/ortho/rules.mk | 18 +++++ keyboards/peej/rosaline/readme.md | 7 +- keyboards/peej/rosaline/rosaline.h | 38 ++--------- keyboards/peej/rosaline/rules.mk | 19 +----- keyboards/peej/rosaline/staggered/info.json | 68 +++++++++++++++++++ .../{ => staggered}/keymaps/default/keymap.c | 20 +++--- .../rosaline/staggered/keymaps/via/keymap.c | 46 +++++++++++++ .../{ => staggered}/keymaps/via/rules.mk | 0 keyboards/peej/rosaline/staggered/rules.mk | 18 +++++ keyboards/peej/rosaline/staggered/staggered.h | 57 ++++++++++++++++ 16 files changed, 285 insertions(+), 164 deletions(-) delete mode 100644 keyboards/peej/rosaline/keymaps/via/keymap.c rename keyboards/peej/rosaline/{ => ortho}/info.json (53%) rename keyboards/peej/rosaline/{keymaps/ortho => ortho/keymaps/default}/keymap.c (100%) rename keyboards/peej/rosaline/{keymaps/via-ortho => ortho/keymaps/via}/keymap.c (100%) rename keyboards/peej/rosaline/{keymaps/via-ortho => ortho/keymaps/via}/rules.mk (100%) create mode 100644 keyboards/peej/rosaline/ortho/ortho.h create mode 100644 keyboards/peej/rosaline/ortho/rules.mk create mode 100644 keyboards/peej/rosaline/staggered/info.json rename keyboards/peej/rosaline/{ => staggered}/keymaps/default/keymap.c (73%) create mode 100644 keyboards/peej/rosaline/staggered/keymaps/via/keymap.c rename keyboards/peej/rosaline/{ => staggered}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/peej/rosaline/staggered/rules.mk create mode 100644 keyboards/peej/rosaline/staggered/staggered.h diff --git a/keyboards/peej/rosaline/keymaps/via/keymap.c b/keyboards/peej/rosaline/keymaps/via/keymap.c deleted file mode 100644 index 1d6ac2ed82..0000000000 --- a/keyboards/peej/rosaline/keymaps/via/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2021 Paul James - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[0] = LAYOUT_staggered_40( - KC_TAB, KC_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_GESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), -[1] = LAYOUT_staggered_40( - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END -), -[2] = LAYOUT_staggered_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), -[3] = LAYOUT_staggered_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -}; diff --git a/keyboards/peej/rosaline/info.json b/keyboards/peej/rosaline/ortho/info.json similarity index 53% rename from keyboards/peej/rosaline/info.json rename to keyboards/peej/rosaline/ortho/info.json index 8a6f71aae2..cb07d3e083 100644 --- a/keyboards/peej/rosaline/info.json +++ b/keyboards/peej/rosaline/ortho/info.json @@ -3,61 +3,6 @@ "url": "https://github.com/peej/rosaline-keyboard", "maintainer": "Peej", "layouts": { - "LAYOUT_staggered_40": { - "layout": [ - { "x": 0, "y": 0, "w": 1.5 }, - { "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": 1.5 }, - { "x": 0, "y": 1, "w": 1.75 }, - { "x": 1, "y": 1 }, - { "x": 2, "y": 1 }, - { "x": 3, "y": 1 }, - { "x": 4, "y": 1 }, - { "x": 5, "y": 1 }, - { "x": 6, "y": 1 }, - { "x": 7, "y": 1 }, - { "x": 8, "y": 1 }, - { "x": 9, "y": 1 }, - { "x": 10, "y": 1 }, - { "x": 11, "y": 1 }, - { "x": 12, "y": 1, "w": 2.25 }, - { "x": 0, "y": 2, "w": 2.25 }, - { "x": 1, "y": 2 }, - { "x": 2, "y": 2 }, - { "x": 3, "y": 2 }, - { "x": 4, "y": 2 }, - { "x": 5, "y": 2 }, - { "x": 6, "y": 2 }, - { "x": 7, "y": 2 }, - { "x": 8, "y": 2 }, - { "x": 9, "y": 2 }, - { "x": 10, "y": 2 }, - { "x": 11, "y": 2, "w": 1.75 }, - { "x": 12, "y": 2 }, - { "x": 0, "y": 3, "w": 1.5 }, - { "x": 1, "y": 3, "w": 1.5 }, - { "x": 2, "y": 3, "w": 1.5 }, - { "x": 3, "y": 3, "w": 2.75 }, - { "x": 4, "y": 3 }, - { "x": 5, "y": 3, "w": 2.25 }, - { "x": 6, "y": 3 }, - { "x": 7, "y": 3 }, - { "x": 8, "y": 3 }, - { "x": 9, "y": 3 }, - { "x": 10, "y": 3 } - ] - }, "LAYOUT_ortho_4x15": { "layout": [ { "x": 0, "y": 0 }, diff --git a/keyboards/peej/rosaline/keymaps/ortho/keymap.c b/keyboards/peej/rosaline/ortho/keymaps/default/keymap.c similarity index 100% rename from keyboards/peej/rosaline/keymaps/ortho/keymap.c rename to keyboards/peej/rosaline/ortho/keymaps/default/keymap.c diff --git a/keyboards/peej/rosaline/keymaps/via-ortho/keymap.c b/keyboards/peej/rosaline/ortho/keymaps/via/keymap.c similarity index 100% rename from keyboards/peej/rosaline/keymaps/via-ortho/keymap.c rename to keyboards/peej/rosaline/ortho/keymaps/via/keymap.c diff --git a/keyboards/peej/rosaline/keymaps/via-ortho/rules.mk b/keyboards/peej/rosaline/ortho/keymaps/via/rules.mk similarity index 100% rename from keyboards/peej/rosaline/keymaps/via-ortho/rules.mk rename to keyboards/peej/rosaline/ortho/keymaps/via/rules.mk diff --git a/keyboards/peej/rosaline/ortho/ortho.h b/keyboards/peej/rosaline/ortho/ortho.h new file mode 100644 index 0000000000..b3287784c3 --- /dev/null +++ b/keyboards/peej/rosaline/ortho/ortho.h @@ -0,0 +1,57 @@ +/* Copyright 2021 Paul James + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "rosaline.h" + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │00 │40 │01 │41 │02 │42 │03 │43 │04 │44 │05 │45 │06 │46 │07 │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │10 │50 │11 │51 │12 │52 │13 │53 │14 │54 │15 │55 │16 │56 │17 │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │20 │60 │21 │61 │22 │62 │23 │63 │24 │64 │25 │65 │26 │66 │27 │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │30 │70 │31 │71 │32 │72 │33 │73 │34 │74 │35 │75 │36 │76 │37 │ + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + * ┌───────────────────────────┐ + * │73 │ 7u Space + * └───────────────────────────┘ + * ┌───────┐ ┌───────┐ + * 2u Left │32 │ │35 │ 2u Right + * └───────┘ └───────┘ + */ + +#define LAYOUT_ortho_4x15( \ + k00, k40, k01, k41, k02, k42, k03, k43, k04, k44, k05, k45, k06, k46, k07, \ + k10, k50, k11, k51, k12, k52, k13, k53, k14, k54, k15, k55, k16, k56, k17, \ + k20, k60, k21, k61, k22, k62, k23, k63, k24, k64, k25, k65, k26, k66, k27, \ + k30, k70, k31, k71, k32, k72, k33, k73, k34, k74, k35, k75, k36, k76, k37 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, k46, XXX }, \ + { k50, k51, k52, k53, k54, k55, k56, XXX }, \ + { k60, k61, k62, k63, k64, k65, k66, XXX }, \ + { k70, k71, k72, k73, k74, k75, k76, XXX } \ +} + +#define LED1 C5 +#define LED2 C4 diff --git a/keyboards/peej/rosaline/ortho/rules.mk b/keyboards/peej/rosaline/ortho/rules.mk new file mode 100644 index 0000000000..d1dde8af62 --- /dev/null +++ b/keyboards/peej/rosaline/ortho/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega328p + +# Bootloader selection +BOOTLOADER = usbasploader + +# 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 diff --git a/keyboards/peej/rosaline/readme.md b/keyboards/peej/rosaline/readme.md index 033faa34f2..2b176d30df 100644 --- a/keyboards/peej/rosaline/readme.md +++ b/keyboards/peej/rosaline/readme.md @@ -2,7 +2,7 @@ ## Through-hole 40% keyboard PCB for 60% cases -![juliet](https://github.com/peej/rosaline-keyboard/raw/master/images/pcb.jpg) +![Rosaline Staggered](https://raw.githubusercontent.com/peej/rosaline-keyboard/a40d60e95ee69630db0ea53d97c59b9e5db4851f/images/pcb-staggered-render.jpg) 40% staggered or 4x15 ortholinear PCB for 60% tray mount cases with only through hole components. @@ -11,8 +11,11 @@ Make example for this keyboard (after setting up your build environment): - make peej/rosaline:default + make peej/rosaline/staggered:default # for staggered PCBs + make peej/rosaline/ortho:default # for ortholinear PCBs ## Bootloader Use usbasploader in [hsgw's repository](https://github.com/hsgw/USBaspLoader/tree/plaid). + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/peej/rosaline/rosaline.h b/keyboards/peej/rosaline/rosaline.h index 1e41a2e95e..22125f3188 100644 --- a/keyboards/peej/rosaline/rosaline.h +++ b/keyboards/peej/rosaline/rosaline.h @@ -20,39 +20,11 @@ #define XXX KC_NO -#define LAYOUT_staggered_40( \ - k00, k01, k10, k20, k21, k30, k31, k40, k41, k50, k60, k61, k70, k71, \ - k02, k11, k12, k22, k23, k32, k33, k42, k51, k52, k62, k63, k72, \ - k03, k13, k14, k24, k34, k35, k43, k44, k53, k54, k64, k73, k74, \ - k04, k05, k15, k25, k45, k55, k56, k65, k66, k75, k76 \ -) \ -{ \ - { k00, k10, k20, k30, k40, k50, k60, k70 }, \ - { k01, k11, k21, k31, k41, k51, k61, k71 }, \ - { k02, k12, k22, k32, k42, k52, k62, k72 }, \ - { k03, k13, k23, k33, k43, k53, k63, k73 }, \ - { k04, k14, k24, k34, k44, k54, k64, k74 }, \ - { k05, k15, k25, k35, k45, k55, k65, k75 }, \ - { XXX, XXX, XXX, XXX, XXX, k56, k66, k76 }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ -} - -#define LAYOUT_ortho_4x15( \ - k00, k04, k10, k14, k20, k24, k30, k34, k40, k44, k50, k54, k60, k64, k70, \ - k01, k05, k11, k15, k21, k25, k31, k35, k41, k45, k51, k55, k61, k65, k71, \ - k02, k06, k12, k16, k22, k26, k32, k36, k42, k46, k52, k56, k62, k66, k72, \ - k03, k07, k13, k17, k23, k27, k33, k37, k43, k47, k53, k57, k63, k67, k73 \ -) \ -{ \ - { k00, k10, k20, k30, k40, k50, k60, k70 }, \ - { k01, k11, k21, k31, k41, k51, k61, k71 }, \ - { k02, k12, k22, k32, k42, k52, k62, k72 }, \ - { k03, k13, k23, k33, k43, k53, k63, k73 }, \ - { k04, k14, k24, k34, k44, k54, k64, XXX }, \ - { k05, k15, k25, k35, k45, k55, k65, XXX }, \ - { k06, k16, k26, k36, k46, k56, k66, XXX }, \ - { k07, k17, k27, k37, k47, k57, k67, XXX } \ -} +#if defined(KEYBOARD_peej_rosaline_staggered) + #include "staggered.h" +#elif defined(KEYBOARD_peej_rosaline_ortho) + #include "ortho.h" +#endif #define LED1 C5 #define LED2 C4 diff --git a/keyboards/peej/rosaline/rules.mk b/keyboards/peej/rosaline/rules.mk index d1dde8af62..928164362a 100644 --- a/keyboards/peej/rosaline/rules.mk +++ b/keyboards/peej/rosaline/rules.mk @@ -1,18 +1 @@ -# MCU name -MCU = atmega328p - -# Bootloader selection -BOOTLOADER = usbasploader - -# 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 +DEFAULT_FOLDER = peej/rosaline/staggered diff --git a/keyboards/peej/rosaline/staggered/info.json b/keyboards/peej/rosaline/staggered/info.json new file mode 100644 index 0000000000..ba886865a5 --- /dev/null +++ b/keyboards/peej/rosaline/staggered/info.json @@ -0,0 +1,68 @@ +{ + "keyboard_name": "Rosaline", + "url": "https://github.com/peej/rosaline-keyboard", + "maintainer": "Peej", + "layout_aliases": { + "LAYOUT_staggered_40": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0, "w":1.5}, + {"x":1.5, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":10.5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0, "w":1.5}, + + {"x":0, "y":1, "w":1.75}, + {"x":1.75, "y":1}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":7.75, "y":1}, + {"x":8.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1, "w":2.25}, + + {"x":0, "y":2, "w":2.25}, + {"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":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2}, + {"x":11.25, "y":2}, + {"x":12.25, "y":2, "w":1.75}, + {"x":14, "y":2}, + + {"x":0, "y":3, "w":1.5}, + {"x":1.5, "y":3}, + {"x":2.5, "y":3, "w":1.5}, + {"x":4, "y":3, "w":2.75}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3, "w":2.25}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3} + ] + } + } +} diff --git a/keyboards/peej/rosaline/keymaps/default/keymap.c b/keyboards/peej/rosaline/staggered/keymaps/default/keymap.c similarity index 73% rename from keyboards/peej/rosaline/keymaps/default/keymap.c rename to keyboards/peej/rosaline/staggered/keymaps/default/keymap.c index fc659293f0..11f3831c44 100644 --- a/keyboards/peej/rosaline/keymaps/default/keymap.c +++ b/keyboards/peej/rosaline/staggered/keymaps/default/keymap.c @@ -36,11 +36,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Gui | Alt | Space | Space | Alt | Ctrl | Left | Down | Up | Rght | * `--------'------'--------'---------------------'------------'------'------'------'------'------'------' */ -[_QWERTY] = LAYOUT_staggered_40( - KC_TAB, KC_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_GESC, 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, FN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +[_QWERTY] = LAYOUT_all( + KC_TAB, KC_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_GESC, 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, FN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Function @@ -54,11 +54,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Gui | Alt | Space | Space | Alt | Ctrl | Left | Down | Up | Rght | * `--------'------'--------'---------------------'------------'------'------'------'------'------'------' */ -[_FUNCTION] = LAYOUT_staggered_40( - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +[_FUNCTION] = LAYOUT_all( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ) }; diff --git a/keyboards/peej/rosaline/staggered/keymaps/via/keymap.c b/keyboards/peej/rosaline/staggered/keymaps/via/keymap.c new file mode 100644 index 0000000000..87c0717da6 --- /dev/null +++ b/keyboards/peej/rosaline/staggered/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2021 Paul James + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_TAB, KC_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_GESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), +[1] = LAYOUT_all( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), +[2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/peej/rosaline/keymaps/via/rules.mk b/keyboards/peej/rosaline/staggered/keymaps/via/rules.mk similarity index 100% rename from keyboards/peej/rosaline/keymaps/via/rules.mk rename to keyboards/peej/rosaline/staggered/keymaps/via/rules.mk diff --git a/keyboards/peej/rosaline/staggered/rules.mk b/keyboards/peej/rosaline/staggered/rules.mk new file mode 100644 index 0000000000..d1dde8af62 --- /dev/null +++ b/keyboards/peej/rosaline/staggered/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega328p + +# Bootloader selection +BOOTLOADER = usbasploader + +# 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 diff --git a/keyboards/peej/rosaline/staggered/staggered.h b/keyboards/peej/rosaline/staggered/staggered.h new file mode 100644 index 0000000000..cc2703c834 --- /dev/null +++ b/keyboards/peej/rosaline/staggered/staggered.h @@ -0,0 +1,57 @@ +/* Copyright 2021 Paul James + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "rosaline.h" + +/* + * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │00 │10 │01 │02 │12 │03 │13 │04 │14 │05 │06 │16 │07 │17 │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │11 │21 │22 │32 │23 │33 │24 │15 │25 │26 │36 │27 │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┬──────────┐ ┌──────┬───┬───┐ + * │30 │31 │41 │42 │43 │53 │34 │44 │35 │45 │46 │37 │47 │ │46 │37 │ 1u/2.75u RShift │46 │37 │47 │ 1.75u/1u/1u RShift + * ├─────┬──┴┬──┴──┬┴───┴───┴─┬─┴───┴──┬┴──┬┴──┬┴──┬┴──┬───┼───┤ └───┴──────────┘ └──────┴───┴───┘ + * │40 │50 │51 │52 │54 │55 │65 │56 │66 │57 │67 │ + * └─────┴───┴─────┴──────────┴────────┴───┴───┴───┴───┴───┴───┘ + * ┌───────────────────────────┬─────┬───┬─────┐ + * 7u Space │54 │56 │66 │57 │ Tsangan Right Mods + * └───────────────────────────┴─────┴───┴─────┘ + * ┌──────────┬───┬────────┬───┐ + * 2.75/1/2.25/1u │52 │54 │55 │65 │ + * └──────────┴───┴────────┴───┘ + */ + +#define LAYOUT_all( \ + k00, k10, k01, k02, k12, k03, k13, k04, k14, k05, k06, k16, k07, k17, \ + k20, k11, k21, k22, k32, k23, k33, k24, k15, k25, k26, k36, k27, \ + k30, k31, k41, k42, k43, k53, k34, k44, k35, k45, k46, k37, k47, \ + k40, k50, k51, k52, k54, k55, k65, k56, k66, k57, k67 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { XXX, XXX, XXX, XXX, XXX, k65, k66, k67 }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ +} + +#define LED1 C5 +#define LED2 C4 From c8f969a3ceefb071399029136081e51035a8a193 Mon Sep 17 00:00:00 2001 From: Naphtaline Date: Mon, 11 Jul 2022 14:55:01 +0200 Subject: [PATCH 08/69] [Keyboard] kbdfans kbd67 rev 2 : add new LAYOUT_65_iso_split_bs (#16922) * [Layout/Keymap] kbdfans kbd67 rev2 : add new LAYOUT_65_iso_split_bs and naphaline keymap as a working example * Update keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c I do trust the reviewer, here goes the change :) Co-authored-by: Ryan * Remove QMK custom keycodes 1/2 Co-authored-by: Nick Brassel * Remove QMK custom keycodes 2/2 Co-authored-by: Nick Brassel Co-authored-by: Ryan Co-authored-by: Nick Brassel --- .../kbd67/rev2/keymaps/naphtaline/keymap.c | 58 +++++++++++++++++++ .../kbd67/rev2/keymaps/naphtaline/readme.md | 4 ++ keyboards/kbdfans/kbd67/rev2/rev2.h | 16 +++++ 3 files changed, 78 insertions(+) create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c new file mode 100644 index 0000000000..808f6e759d --- /dev/null +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c @@ -0,0 +1,58 @@ +/* Copyright 2018 'mechmerlin' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |GESC| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp| Del| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ent |PgUp| + * |-------------------------------------------------------. |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '| | |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|End | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |MS3| Space |Alt |MO1|Ctrl|Lef|Dow|Rig| + * `----------------------------------------------------------------' + */ +[0] = LAYOUT_65_iso_split_bs( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DELETE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MS_BTN3, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap Fn Layer + * ,----------------------------------------------------------------. + * |~ `|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del |Mute| + * |----------------------------------------------------------------| + * | | |Up | | | | | | | | | | | |Vol+| + * |----------------------------------------------------------------| + * | |Lef|Dow|Rig| | | | | | | | | |Vol-| + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | Space |Space| Space | | | | | | | + * `----------------------------------------------------------------' + */ +[1] = LAYOUT_65_iso_split_bs( + QK_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_MUTE, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_SPC, KC_SPC, KC_SPC, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md new file mode 100644 index 0000000000..b550e938d0 --- /dev/null +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md @@ -0,0 +1,4 @@ +# Not the default keymap for kbd67 + + - this is my personnal layout, but is meant to be used as a base for the new layout LAYOUT_65_iso_split_bs + - 3 splitted space bar. (Space - Mouse click 3 - Space) diff --git a/keyboards/kbdfans/kbd67/rev2/rev2.h b/keyboards/kbdfans/kbd67/rev2/rev2.h index 1c1c0bf418..349a844522 100644 --- a/keyboards/kbdfans/kbd67/rev2/rev2.h +++ b/keyboards/kbdfans/kbd67/rev2/rev2.h @@ -130,6 +130,22 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ } +#define LAYOUT_65_iso_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F }, \ + { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, KC_NO, K43, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + + #define LAYOUT_65_ansi_split_space( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ From 61ce15f2025b6d1f925c9bae83c84eb04e3cdf61 Mon Sep 17 00:00:00 2001 From: Evelien Dekkers Date: Mon, 11 Jul 2022 14:57:39 +0200 Subject: [PATCH 09/69] [Keyboard] Fin pad (#17523) Co-authored-by: Joel Challis --- keyboards/evyd13/fin_pad/config.h | 20 +++++ keyboards/evyd13/fin_pad/info.json | 88 +++++++++++++++++++ .../evyd13/fin_pad/keymaps/default/keymap.c | 16 ++++ keyboards/evyd13/fin_pad/keymaps/via/keymap.c | 41 +++++++++ keyboards/evyd13/fin_pad/keymaps/via/rules.mk | 1 + keyboards/evyd13/fin_pad/readme.md | 27 ++++++ keyboards/evyd13/fin_pad/rules.mk | 1 + 7 files changed, 194 insertions(+) create mode 100644 keyboards/evyd13/fin_pad/config.h create mode 100644 keyboards/evyd13/fin_pad/info.json create mode 100644 keyboards/evyd13/fin_pad/keymaps/default/keymap.c create mode 100644 keyboards/evyd13/fin_pad/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/fin_pad/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/fin_pad/readme.md create mode 100644 keyboards/evyd13/fin_pad/rules.mk diff --git a/keyboards/evyd13/fin_pad/config.h b/keyboards/evyd13/fin_pad/config.h new file mode 100644 index 0000000000..2155d337a8 --- /dev/null +++ b/keyboards/evyd13/fin_pad/config.h @@ -0,0 +1,20 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// 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/evyd13/fin_pad/info.json b/keyboards/evyd13/fin_pad/info.json new file mode 100644 index 0000000000..f2fb0b90a7 --- /dev/null +++ b/keyboards/evyd13/fin_pad/info.json @@ -0,0 +1,88 @@ +{ + "manufacturer": "Evelien Dekkers", + "keyboard_name": "Fin Pad", + "maintainer": "evyd13", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C4", "C5", "D0", "C2"], + "rows": ["C6", "C7", "B7", "B6", "B5", "B4"] + }, + "community_layouts": [ + "numpad_6x4", + "ortho_6x4" + ], + "processor": "atmega32u2", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xA6E2", + "vid": "0x4705" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_ortho_6x4" + }, + "layouts": { + "LAYOUT_ortho_6x4": { + "layout": [ + {"matrix": [0, 0], "label":"ESC", "x":0, "y":0}, + {"matrix": [0, 1], "label":"TAB", "x":1, "y":0}, + {"matrix": [0, 2], "label":"PEQL", "x":2, "y":0}, + {"matrix": [0, 3], "label":"BSPC", "x":3, "y":0}, + {"matrix": [1, 0], "label":"NUM", "x":0, "y":1.25}, + {"matrix": [1, 1], "label":"PSLS", "x":1, "y":1.25}, + {"matrix": [1, 2], "label":"PAST", "x":2, "y":1.25}, + {"matrix": [1, 3], "label":"PMNS", "x":3, "y":1.25}, + {"matrix": [2, 0], "label":"P7", "x":0, "y":2.25}, + {"matrix": [2, 1], "label":"P8", "x":1, "y":2.25}, + {"matrix": [2, 2], "label":"P9", "x":2, "y":2.25}, + {"matrix": [2, 3], "label":"PPLS", "x":3, "y":2.25}, + {"matrix": [3, 0], "label":"P4", "x":0, "y":3.25}, + {"matrix": [3, 1], "label":"P5", "x":1, "y":3.25}, + {"matrix": [3, 2], "label":"P6", "x":2, "y":3.25}, + {"matrix": [3, 3], "label":"PPLS", "x":3, "y":3.25}, + {"matrix": [4, 0], "label":"P1", "x":0, "y":4.25}, + {"matrix": [4, 1], "label":"P2", "x":1, "y":4.25}, + {"matrix": [4, 2], "label":"P3", "x":2, "y":4.25}, + {"matrix": [4, 3], "label":"PENT", "x":3, "y":4.25}, + {"matrix": [5, 0], "label":"P0", "x":0, "y":5.25}, + {"matrix": [5, 1], "label":"P0", "x":1, "y":5.25}, + {"matrix": [5, 2], "label":"PDOT", "x":2, "y":5.25}, + {"matrix": [5, 3], "label":"PENT", "x":3, "y":5.25} + ] + }, + "LAYOUT_numpad_6x4": { + "layout": [ + {"matrix": [0, 0], "label":"ESC", "x":0, "y":0}, + {"matrix": [0, 1], "label":"TAB", "x":1, "y":0}, + {"matrix": [0, 2], "label":"PEQL", "x":2, "y":0}, + {"matrix": [0, 3], "label":"BSPC", "x":3, "y":0}, + {"matrix": [1, 0], "label":"NUM", "x":0, "y":1.25}, + {"matrix": [1, 1], "label":"PSLS", "x":1, "y":1.25}, + {"matrix": [1, 2], "label":"PAST", "x":2, "y":1.25}, + {"matrix": [1, 3], "label":"PMNS", "x":3, "y":1.25}, + {"matrix": [2, 0], "label":"P7", "x":0, "y":2.25}, + {"matrix": [2, 1], "label":"P8", "x":1, "y":2.25}, + {"matrix": [2, 2], "label":"P9", "x":2, "y":2.25}, + {"matrix": [3, 0], "label":"P4", "x":0, "y":3.25}, + {"matrix": [3, 1], "label":"P5", "x":1, "y":3.25}, + {"matrix": [3, 2], "label":"P6", "x":2, "y":3.25}, + {"matrix": [3, 3], "label":"PPLS", "x":3, "y":2.25, "h":2}, + {"matrix": [4, 0], "label":"P1", "x":0, "y":4.25}, + {"matrix": [4, 1], "label":"P2", "x":1, "y":4.25}, + {"matrix": [4, 2], "label":"P3", "x":2, "y":4.25}, + {"matrix": [5, 0], "label":"P0", "x":0, "y":5.25}, + {"matrix": [5, 2], "label":"PDOT", "x":2, "y":5.25}, + {"matrix": [5, 3], "label":"PENT", "x":3, "y":4.25, "h":2} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/evyd13/fin_pad/keymaps/default/keymap.c b/keyboards/evyd13/fin_pad/keymaps/default/keymap.c new file mode 100644 index 0000000000..2e59bc05b7 --- /dev/null +++ b/keyboards/evyd13/fin_pad/keymaps/default/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_6x4( + KC_ESC, KC_TAB, KC_EQL, KC_BSPC, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT + ) +}; diff --git a/keyboards/evyd13/fin_pad/keymaps/via/keymap.c b/keyboards/evyd13/fin_pad/keymaps/via/keymap.c new file mode 100644 index 0000000000..f199e27981 --- /dev/null +++ b/keyboards/evyd13/fin_pad/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_TAB, KC_EQL, KC_BSPC, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) +}; + diff --git a/keyboards/evyd13/fin_pad/keymaps/via/rules.mk b/keyboards/evyd13/fin_pad/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/evyd13/fin_pad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/evyd13/fin_pad/readme.md b/keyboards/evyd13/fin_pad/readme.md new file mode 100644 index 0000000000..4802caadec --- /dev/null +++ b/keyboards/evyd13/fin_pad/readme.md @@ -0,0 +1,27 @@ +# Fin Pad + +![Fin Pad](https://i.imgur.com/OC5O2SZ.png) + +A replacement PCB for the Lin Dolphin Pad + +* Keyboard Maintainer: [Evelien Dekkers](https://github.com/evyd13) +* Hardware Supported: Fin Pad PCB +* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/fin-pad) + +Make example for this keyboard (after setting up your build environment): + + make evyd13/fin_pad:default + +Flashing example for this keyboard: + + make evyd13/fin_pad: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/evyd13/fin_pad/rules.mk b/keyboards/evyd13/fin_pad/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/evyd13/fin_pad/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 6663dd728866d236c5339d1a551752e50b777e64 Mon Sep 17 00:00:00 2001 From: balloondogcaps <101639737+balloondogcaps@users.noreply.github.com> Date: Mon, 11 Jul 2022 20:53:25 +0200 Subject: [PATCH 10/69] [Keyboard] Add TR90 (#16838) Co-authored-by: Ryan --- keyboards/balloondogcaps/tr90/info.json | 41 +++++++++++++++++++ .../tr90/keymaps/default/keymap.c | 31 ++++++++++++++ .../balloondogcaps/tr90/keymaps/via/keymap.c | 41 +++++++++++++++++++ .../balloondogcaps/tr90/keymaps/via/rules.mk | 1 + keyboards/balloondogcaps/tr90/readme.md | 25 +++++++++++ keyboards/balloondogcaps/tr90/rules.mk | 0 6 files changed, 139 insertions(+) create mode 100644 keyboards/balloondogcaps/tr90/info.json create mode 100644 keyboards/balloondogcaps/tr90/keymaps/default/keymap.c create mode 100644 keyboards/balloondogcaps/tr90/keymaps/via/keymap.c create mode 100644 keyboards/balloondogcaps/tr90/keymaps/via/rules.mk create mode 100644 keyboards/balloondogcaps/tr90/readme.md create mode 100644 keyboards/balloondogcaps/tr90/rules.mk diff --git a/keyboards/balloondogcaps/tr90/info.json b/keyboards/balloondogcaps/tr90/info.json new file mode 100644 index 0000000000..c17cafaebf --- /dev/null +++ b/keyboards/balloondogcaps/tr90/info.json @@ -0,0 +1,41 @@ +{ + "manufacturer": "Balloondog", + "keyboard_name": "TR90", + "maintainer": "balloondogcaps", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F5", "F6", "D5"], + "rows": ["F0", "F1", "F4"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4243" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 } + ] + } + } +} diff --git a/keyboards/balloondogcaps/tr90/keymaps/default/keymap.c b/keyboards/balloondogcaps/tr90/keymaps/default/keymap.c new file mode 100644 index 0000000000..793212e002 --- /dev/null +++ b/keyboards/balloondogcaps/tr90/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2021 Balloondog + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_VOLD, KC_VOLU, MO(1) + ), + [1] = LAYOUT( + KC_7, KC_8, KC_9, + KC_0, KC_MINUS, KC_PLUS, + RESET, KC_AT , KC_TRNS + ), +}; + + diff --git a/keyboards/balloondogcaps/tr90/keymaps/via/keymap.c b/keyboards/balloondogcaps/tr90/keymaps/via/keymap.c new file mode 100644 index 0000000000..efe6eefa77 --- /dev/null +++ b/keyboards/balloondogcaps/tr90/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2021 Balloondog + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_VOLD, KC_VOLU, MO(1) + ), + [1] = LAYOUT( + KC_7, KC_8, KC_9, + KC_0, KC_MINUS, KC_PLUS, + RESET, KC_AT , KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + + diff --git a/keyboards/balloondogcaps/tr90/keymaps/via/rules.mk b/keyboards/balloondogcaps/tr90/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/balloondogcaps/tr90/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/balloondogcaps/tr90/readme.md b/keyboards/balloondogcaps/tr90/readme.md new file mode 100644 index 0000000000..06b8a232ef --- /dev/null +++ b/keyboards/balloondogcaps/tr90/readme.md @@ -0,0 +1,25 @@ +# balloondogcaps/tr90 + +![balloondogcaps/tr90](https://i.imgur.com/GCAZotn.jpeg) + +A 3x3 Pro Macropad with programmer pins + +* Keyboard Maintainer: [Balloondog](https://instagram.com/balloondogcaps) +* Hardware Supported: Balloondog Play Rough series case(s) +* Hardware Availability: [Balloondog](http://store.balloondog.nl) + +Make example for this keyboard (after setting up your build environment): + + make balloondogcaps/tr90:default + +Flashing example for this keyboard: + + make balloondogcaps/tr90:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Hold the bottom right key and then press the bottom left key to enter the bootloader diff --git a/keyboards/balloondogcaps/tr90/rules.mk b/keyboards/balloondogcaps/tr90/rules.mk new file mode 100644 index 0000000000..e69de29bb2 From 61a5059fc5595eb60db75d0b7a6bffd3189db442 Mon Sep 17 00:00:00 2001 From: balloondogcaps <101639737+balloondogcaps@users.noreply.github.com> Date: Mon, 11 Jul 2022 20:53:51 +0200 Subject: [PATCH 11/69] [Keyboard] TR90PM (#17060) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/balloondogcaps/tr90pm/info.json | 41 +++++++++++++++++++ .../tr90pm/keymaps/default/keymap.c | 31 ++++++++++++++ .../tr90pm/keymaps/via/keymap.c | 41 +++++++++++++++++++ .../tr90pm/keymaps/via/rules.mk | 1 + keyboards/balloondogcaps/tr90pm/readme.md | 25 +++++++++++ keyboards/balloondogcaps/tr90pm/rules.mk | 1 + 6 files changed, 140 insertions(+) create mode 100644 keyboards/balloondogcaps/tr90pm/info.json create mode 100644 keyboards/balloondogcaps/tr90pm/keymaps/default/keymap.c create mode 100644 keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c create mode 100644 keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk create mode 100644 keyboards/balloondogcaps/tr90pm/readme.md create mode 100644 keyboards/balloondogcaps/tr90pm/rules.mk diff --git a/keyboards/balloondogcaps/tr90pm/info.json b/keyboards/balloondogcaps/tr90pm/info.json new file mode 100644 index 0000000000..d028b4a3cd --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/info.json @@ -0,0 +1,41 @@ +{ + "manufacturer": "Balloondog", + "keyboard_name": "TR90PM", + "maintainer": "balloondogcaps", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D1", "D0", "D4"], + "rows": ["C6", "D7", "E6"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x4243" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 } + ] + } + } +} diff --git a/keyboards/balloondogcaps/tr90pm/keymaps/default/keymap.c b/keyboards/balloondogcaps/tr90pm/keymaps/default/keymap.c new file mode 100644 index 0000000000..793212e002 --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2021 Balloondog + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_VOLD, KC_VOLU, MO(1) + ), + [1] = LAYOUT( + KC_7, KC_8, KC_9, + KC_0, KC_MINUS, KC_PLUS, + RESET, KC_AT , KC_TRNS + ), +}; + + diff --git a/keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c b/keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c new file mode 100644 index 0000000000..efe6eefa77 --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2021 Balloondog + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_VOLD, KC_VOLU, MO(1) + ), + [1] = LAYOUT( + KC_7, KC_8, KC_9, + KC_0, KC_MINUS, KC_PLUS, + RESET, KC_AT , KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + + diff --git a/keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk b/keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/balloondogcaps/tr90pm/readme.md b/keyboards/balloondogcaps/tr90pm/readme.md new file mode 100644 index 0000000000..7a7c35660c --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/readme.md @@ -0,0 +1,25 @@ +# balloondogcaps/tr90pm + +![balloondogcaps/tr90pm](https://i.imgur.com/AO5anzZh.png) + +A 3x3 Pro Micro enabled Macropad + +* Keyboard Maintainer: [Balloondog](https://instagram.com/balloondogcaps) +* Hardware Supported: Balloondog Play Rough series case(s) +* Hardware Availability: [Balloondog](http://store.balloondog.nl) + +Make example for this keyboard (after setting up your build environment): + + make balloondogcaps/tr90pm:default + +Flashing example for this keyboard: + + make balloondogcaps/tr90pm:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: +* **Physical reset button**: Briefly press the button on the back of the PCB. Some Pro Micro's require a double press. +* **Keycode in layout**: Hold the bottom right key and then press the bottom left key to enter the bootloader diff --git a/keyboards/balloondogcaps/tr90pm/rules.mk b/keyboards/balloondogcaps/tr90pm/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 2bb05507076c8bdb64a8cffd0895795d392e4b82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20B=C4=83lu=C8=9B?= Date: Mon, 11 Jul 2022 19:46:51 +0000 Subject: [PATCH 12/69] [Keyboard] add kinesis/kintlc (#17301) --- keyboards/kinesis/config.h | 2 +- keyboards/kinesis/kinesis.h | 2 + keyboards/kinesis/kint36/kint36.c | 5 +- keyboards/kinesis/kint36/rules.mk | 3 - keyboards/kinesis/kint41/kint41.c | 5 +- keyboards/kinesis/kint41/rules.mk | 3 +- keyboards/kinesis/kintlc/chconf.h | 53 ++++++++++++++ keyboards/kinesis/kintlc/config.h | 114 +++++++++++++++++++++++++++++ keyboards/kinesis/kintlc/kintlc.c | 27 +++++++ keyboards/kinesis/kintlc/kintlc.h | 92 +++++++++++++++++++++++ keyboards/kinesis/kintlc/mcuconf.h | 45 ++++++++++++ keyboards/kinesis/kintlc/readme.md | 3 + keyboards/kinesis/kintlc/rules.mk | 9 +++ 13 files changed, 353 insertions(+), 10 deletions(-) create mode 100644 keyboards/kinesis/kintlc/chconf.h create mode 100644 keyboards/kinesis/kintlc/config.h create mode 100644 keyboards/kinesis/kintlc/kintlc.c create mode 100644 keyboards/kinesis/kintlc/kintlc.h create mode 100644 keyboards/kinesis/kintlc/mcuconf.h create mode 100644 keyboards/kinesis/kintlc/readme.md create mode 100644 keyboards/kinesis/kintlc/rules.mk diff --git a/keyboards/kinesis/config.h b/keyboards/kinesis/config.h index 63b296a528..271625ebd1 100644 --- a/keyboards/kinesis/config.h +++ b/keyboards/kinesis/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define MANUFACTURER You -#define PRODUCT Kinesis Advantage/Contoured +#define PRODUCT Kinesis Classic/Advantage/Contoured // Mouse #define MOUSEKEY_DELAY 60 diff --git a/keyboards/kinesis/kinesis.h b/keyboards/kinesis/kinesis.h index 54cf6b81a7..e3345ee27f 100644 --- a/keyboards/kinesis/kinesis.h +++ b/keyboards/kinesis/kinesis.h @@ -12,6 +12,8 @@ # include "kint36.h" #elif defined(KEYBOARD_kinesis_kint41) # include "kint41.h" +#elif defined(KEYBOARD_kinesis_kintlc) +# include "kintlc.h" #endif #include "quantum.h" diff --git a/keyboards/kinesis/kint36/kint36.c b/keyboards/kinesis/kint36/kint36.c index 108c14c7ba..cc32a60262 100644 --- a/keyboards/kinesis/kint36/kint36.c +++ b/keyboards/kinesis/kint36/kint36.c @@ -16,11 +16,12 @@ #include "kint36.h" +#define LED_POWER C5 + void matrix_init_kb(void) { matrix_init_user(); -// Turn on the Teensy 3.6 Power LED: -#define LED_POWER C5 + // Turn on the Teensy 3.6 Power LED: setPinOutput(LED_POWER); writePinHigh(LED_POWER); } diff --git a/keyboards/kinesis/kint36/rules.mk b/keyboards/kinesis/kint36/rules.mk index c50225ad8a..d495568dd3 100644 --- a/keyboards/kinesis/kint36/rules.mk +++ b/keyboards/kinesis/kint36/rules.mk @@ -4,6 +4,3 @@ MCU = MK66FX1M0 # Debounce eagerly (report change immediately), keep per-key timers. We can use # this because the kinT does not have to deal with noise. DEBOUNCE_TYPE = sym_eager_pk - -#Specify firmware format that is copied to root qmk_firmware folder -FIRMWARE_FORMAT = hex diff --git a/keyboards/kinesis/kint41/kint41.c b/keyboards/kinesis/kint41/kint41.c index ab6567d097..346bf8cac4 100644 --- a/keyboards/kinesis/kint41/kint41.c +++ b/keyboards/kinesis/kint41/kint41.c @@ -16,11 +16,12 @@ #include "kint41.h" +#define LED_POWER LINE_PIN13 + void matrix_init_kb(void) { matrix_init_user(); -// Turn on the Teensy 4.x Power LED: -#define LED_POWER LINE_PIN13 + // Turn on the Teensy 4.x Power LED: setPinOutput(LED_POWER); writePinHigh(LED_POWER); } diff --git a/keyboards/kinesis/kint41/rules.mk b/keyboards/kinesis/kint41/rules.mk index 2681ff6724..4b39b87be6 100644 --- a/keyboards/kinesis/kint41/rules.mk +++ b/keyboards/kinesis/kint41/rules.mk @@ -3,7 +3,7 @@ MCU_SERIES = MIMXRT1062 MCU_LDSCRIPT = MIMXRT1062 MCU_STARTUP = MIMXRT1062 BOARD = IC_TEENSY_4_1 -MCU = cortex-m4 +MCU = cortex-m4 ARMV = 7 # Debounce eagerly (report change immediately), keep per-key timers. We can use @@ -11,5 +11,4 @@ ARMV = 7 # pressed. DEBOUNCE_TYPE = sym_eager_pk -#Specify firmware format that is copied to root qmk_firmware folder FIRMWARE_FORMAT = hex diff --git a/keyboards/kinesis/kintlc/chconf.h b/keyboards/kinesis/kintlc/chconf.h new file mode 100644 index 0000000000..73408ff625 --- /dev/null +++ b/keyboards/kinesis/kintlc/chconf.h @@ -0,0 +1,53 @@ +/* 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/kinesis/kint36/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 1000 + +#define CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_TIME_QUANTUM 20 + +#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE + +#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE + +#define CH_CFG_FACTORY_SEMAPHORES TRUE + +#define CH_CFG_FACTORY_MAILBOXES TRUE + +#define CH_CFG_FACTORY_OBJ_FIFOS TRUE + +#define CH_CFG_FACTORY_PIPES TRUE + +#define CH_DBG_SYSTEM_STATE_CHECK TRUE + +#define CH_DBG_ENABLE_CHECKS TRUE + +#define CH_DBG_ENABLE_ASSERTS TRUE + +#define CH_DBG_ENABLE_STACK_CHECK TRUE + +#define CH_DBG_FILL_THREADS TRUE + + +#include_next diff --git a/keyboards/kinesis/kintlc/config.h b/keyboards/kinesis/kintlc/config.h new file mode 100644 index 0000000000..8e15fea479 --- /dev/null +++ b/keyboards/kinesis/kintlc/config.h @@ -0,0 +1,114 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* USB Device descriptor parameter */ +#undef VENDOR_ID +#define VENDOR_ID 0x1209 +#undef PRODUCT_ID +#define PRODUCT_ID 0x345C +#undef DEVICE_VER +#define DEVICE_VER 0x0001 +#undef MANUFACTURER +#define MANUFACTURER "https://github.com/stapelberg" +#undef PRODUCT +#define PRODUCT "kinT (kintlc)" + +/* key matrix size */ +#define MATRIX_ROWS 15 +#define MATRIX_COLS 7 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS \ + { \ + LINE_PIN8, /* ROW_EQL */ \ + LINE_PIN9, /* ROW_1 */ \ + LINE_PIN10, /* ROW_2 */ \ + LINE_PIN11, /* ROW_3 */ \ + LINE_PIN7, /* ROW_4 */ \ + LINE_PIN16, /* ROW_5 */ \ + LINE_PIN5, /* ROW_6 */ \ + LINE_PIN3, /* ROW_7 */ \ + LINE_PIN4, /* ROW_8 */ \ + LINE_PIN1, /* ROW_9 */ \ + LINE_PIN0, /* ROW_0 */ \ + LINE_PIN2, /* ROW_MIN */ \ + LINE_PIN17, /* ROW_ESC */ \ + LINE_PIN23, /* ROW_F1 */ \ + LINE_PIN21 /* ROW_F2 */ \ + } + +#define MATRIX_COL_PINS \ + { \ + LINE_PIN18, /* COL_0 */ \ + LINE_PIN14, /* COL_1 */ \ + LINE_PIN15, /* COL_2 */ \ + LINE_PIN20, /* COL_3 */ \ + LINE_PIN22, /* COL_4 */ \ + LINE_PIN19, /* COL_5 */ \ + LINE_PIN6 /* COL_6 */ \ + } + +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Well-worn Cherry MX key switches can bounce for up to 20ms, despite the + * Cherry data sheet specifying 5ms. Because we use the sym_eager_pk debounce + * algorithm, this debounce latency only affects key releases (not key + * presses). */ +#undef DEBOUNCE +#define DEBOUNCE 20 + +#define IGNORE_MOD_TAP_INTERRUPT + +// The Teensy LC power consumption is unknown as per +// https://www.pjrc.com/store/teensylc.html but since +// https://www.pjrc.com/store/teensy41.html says 100mA, let's go with half. +#define USB_MAX_POWER_CONSUMPTION 50 + +/* We use the i.MX RT1060 high-speed GPIOs (GPIO6-9) which are connected to the + * AHB bus (AHB_CLK_ROOT), which runs at the same speed as the ARM Core Clock, + * i.e. 600 MHz. See MIMXRT1062, page 949, 12.1 Chip-specific GPIO information. + * No additional delay is necessary. */ + +// in clock cycles +#define GPIO_INPUT_PIN_DELAY 0 + +// The default "1" results in LEDs being on when they should be off and +// the other way around. +#define LED_PIN_ON_STATE 0 + +// Discussion about which Teensy LC pins can be used for driving staus LEDs: +// https://github.com/kinx-project/kint/issues/55 +// Discussion about using Neopixel LEDs: +// https://github.com/kinx-project/kint/issues/32 +// Available pins can be seen in: +// /lib/chibios-contrib/os/hal/boards/PJRC_TEENSY_LC/board.h +#define LED_CAPS_LOCK_PIN LINE_PIN12 +#define LED_SCROLL_LOCK_PIN LINE_PIN25 +#define LED_COMPOSE_PIN LINE_PIN24 diff --git a/keyboards/kinesis/kintlc/kintlc.c b/keyboards/kinesis/kintlc/kintlc.c new file mode 100644 index 0000000000..19b723600a --- /dev/null +++ b/keyboards/kinesis/kintlc/kintlc.c @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "kintlc.h" + +#define LED_POWER LINE_PIN13 + +void matrix_init_kb(void) { + matrix_init_user(); + + // Turn on the Teensy LC Power LED: + setPinOutput(LED_POWER); + writePinHigh(LED_POWER); +} diff --git a/keyboards/kinesis/kintlc/kintlc.h b/keyboards/kinesis/kintlc/kintlc.h new file mode 100644 index 0000000000..d427a1c2d6 --- /dev/null +++ b/keyboards/kinesis/kintlc/kintlc.h @@ -0,0 +1,92 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguments as on the physical keyboard +// The second converts the arguments into the 2-D scanned array + +#define LAYOUT( \ + kC0, kD0, kE0, kC1, kD1, kE1, kC2, kD2, kE2, \ + k00, k10, k20, k30, k40, k50, \ + k01, k11, k21, k31, k41, k51, \ + k02, k12, k22, k32, k42, k52, \ + k03, k13, k23, k33, k43, k53, \ + k14, k24, k34, k54, \ + k56, k55, \ + k35, \ + k36, k46, k25, \ + \ + kC3, kD3, kE3, kC4, kD4, kE4, kC5, kE5, kD5, \ + k60, k70, k80, k90, kA0, kB0, \ + k61, k71, k81, k91, kA1, kB1, \ + k62, k72, k82, k92, kA2, kB2, \ + k63, k73, k83, k93, kA3, kB3, \ + k64, k84, k94, kA4, \ + k96, k85, \ + k86, \ + k66, k75, k65 \ +) { \ + { k00, k01, k02, k03, ___, ___, ___ }, \ + { k10, k11, k12, k13, k14, ___, ___ }, \ + { k20, k21, k22, k23, k24, k25, ___ }, \ + { k30, k31, k32, k33, k34, k35, k36 }, \ + { k40, k41, k42, k43, ___, ___, k46 }, \ + { k50, k51, k52, k53, k54, k55, k56 }, \ + { k60, k61, k62, k63, k64, k65, k66 }, \ + { k70, k71, k72, k73, ___, k75, ___ }, \ + { k80, k81, k82, k83, k84, k85, k86 }, \ + { k90, k91, k92, k93, k94, ___, k96 }, \ + { kA0, kA1, kA2, kA3, kA4, ___, ___ }, \ + { kB0, kB1, kB2, kB3, ___, ___, ___ }, \ + { kC0, kC1, kC2, kC3, kC4, kC5, ___ }, \ + { kD0, kD1, kD2, kD3, kD4, kD5, ___ }, \ + { kE0, kE1, kE2, kE3, kE4, kE5, ___ }, \ +} + +/* ---------------- LEFT HAND ----------------- ---------------- RIGHT HAND ---------------- */ +#define LAYOUT_pretty( \ + kC0, kD0, kE0, kC1, kD1, kE1, kC2, kD2, kE2, kC3, kD3, kE3, kC4, kD4, kE4, kC5, kE5, kD5, \ + k00, k10, k20, k30, k40, k50, k60, k70, k80, k90, kA0, kB0, \ + k01, k11, k21, k31, k41, k51, k61, k71, k81, k91, kA1, kB1, \ + k02, k12, k22, k32, k42, k52, k62, k72, k82, k92, kA2, kB2, \ + k03, k13, k23, k33, k43, k53, k63, k73, k83, k93, kA3, kB3, \ + k14, k24, k34, k54, k64, k84, k94, kA4, \ + k56, k55, k96, k85, \ + k35, k86, \ + k36, k46, k25, k66, k75, k65 \ +) { \ + { k00, k01, k02, k03, ___, ___, ___ }, \ + { k10, k11, k12, k13, k14, ___, ___ }, \ + { k20, k21, k22, k23, k24, k25, ___ }, \ + { k30, k31, k32, k33, k34, k35, k36 }, \ + { k40, k41, k42, k43, ___, ___, k46 }, \ + { k50, k51, k52, k53, k54, k55, k56 }, \ + { k60, k61, k62, k63, k64, k65, k66 }, \ + { k70, k71, k72, k73, ___, k75, ___ }, \ + { k80, k81, k82, k83, k84, k85, k86 }, \ + { k90, k91, k92, k93, k94, ___, k96 }, \ + { kA0, kA1, kA2, kA3, kA4, ___, ___ }, \ + { kB0, kB1, kB2, kB3, ___, ___, ___ }, \ + { kC0, kC1, kC2, kC3, kC4, kC5, ___ }, \ + { kD0, kD1, kD2, kD3, kD4, kD5, ___ }, \ + { kE0, kE1, kE2, kE3, kE4, kE5, ___ } \ +} diff --git a/keyboards/kinesis/kintlc/mcuconf.h b/keyboards/kinesis/kintlc/mcuconf.h new file mode 100644 index 0000000000..ea576df5bc --- /dev/null +++ b/keyboards/kinesis/kintlc/mcuconf.h @@ -0,0 +1,45 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +#define KL2x_MCUCONF + +/* + * HAL driver system settings. + */ +/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */ +#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE +#define KINETIS_PLLCLK_FREQUENCY 96000000UL +#define KINETIS_SYSCLK_FREQUENCY 48000000UL + +/* + * SERIAL driver system settings. + */ +#define KINETIS_SERIAL_USE_UART0 TRUE + +/* + * USB driver settings + */ +#define KINETIS_USB_USE_USB0 TRUE + +/* Need to redefine this, since the default (configured for K20x) might not apply + * 2 for Teensy LC + * 5 for Teensy 3.x */ +#define KINETIS_USB_USB0_IRQ_PRIORITY 2 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/kinesis/kintlc/readme.md b/keyboards/kinesis/kintlc/readme.md new file mode 100644 index 0000000000..d7b5737452 --- /dev/null +++ b/keyboards/kinesis/kintlc/readme.md @@ -0,0 +1,3 @@ +# kinesis_kintlc keyboard firmware + +Please see https://github.com/kinx-project/kint for details. diff --git a/keyboards/kinesis/kintlc/rules.mk b/keyboards/kinesis/kintlc/rules.mk new file mode 100644 index 0000000000..bfc10748ab --- /dev/null +++ b/keyboards/kinesis/kintlc/rules.mk @@ -0,0 +1,9 @@ +# MCU name +MCU = MKL26Z64 +# This MCU is not in the main CHIBIOS repo but in the CHIBIOS_CONTRIB repo. +USE_CHIBIOS_CONTRIB = yes + +# Debounce eagerly (report change immediately), keep per-key timers. We can use +# this because the Cherry MX keyswitches on the Kinesis only produce noise while +# pressed. +DEBOUNCE_TYPE = sym_eager_pk From 7c3b6c4bc48def9f8da344e93fca1ec6699cedec Mon Sep 17 00:00:00 2001 From: Felix Jen Date: Mon, 11 Jul 2022 13:57:20 -0700 Subject: [PATCH 13/69] [Keyboard] Add Swordfish keyboard (#17567) --- keyboards/fjlabs/swordfish/config.h | 116 ++++++++++++++++++ keyboards/fjlabs/swordfish/info.json | 10 ++ .../fjlabs/swordfish/keymaps/default/keymap.c | 39 ++++++ .../fjlabs/swordfish/keymaps/via/keymap.c | 57 +++++++++ .../fjlabs/swordfish/keymaps/via/rules.mk | 1 + keyboards/fjlabs/swordfish/readme.md | 16 +++ keyboards/fjlabs/swordfish/rules.mk | 21 ++++ keyboards/fjlabs/swordfish/swordfish.c | 14 +++ keyboards/fjlabs/swordfish/swordfish.h | 32 +++++ 9 files changed, 306 insertions(+) create mode 100644 keyboards/fjlabs/swordfish/config.h create mode 100644 keyboards/fjlabs/swordfish/info.json create mode 100644 keyboards/fjlabs/swordfish/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/swordfish/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/swordfish/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/swordfish/readme.md create mode 100644 keyboards/fjlabs/swordfish/rules.mk create mode 100644 keyboards/fjlabs/swordfish/swordfish.c create mode 100644 keyboards/fjlabs/swordfish/swordfish.h diff --git a/keyboards/fjlabs/swordfish/config.h b/keyboards/fjlabs/swordfish/config.h new file mode 100644 index 0000000000..32bd17c0d1 --- /dev/null +++ b/keyboards/fjlabs/swordfish/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 0x0024 // Swordfish +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER FJLaboratories +#define PRODUCT Swordfish + +/* 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 { B0, B1, C7, C6, B6 } +#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, B2, B3, B7, B5, B4, D7, D6, D4, D5 } +#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 D3 +#define RGBLED_NUM 1 +#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 255 +#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 diff --git a/keyboards/fjlabs/swordfish/info.json b/keyboards/fjlabs/swordfish/info.json new file mode 100644 index 0000000000..121bf04132 --- /dev/null +++ b/keyboards/fjlabs/swordfish/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "Swordfish PCBs", + "url": "http://www.fjlaboratories.com/", + "maintainer": "mrnoisytiger", + "layouts": { + "LAYOUT_alice_all": { + "layout": [{"x":18.33, "y":0.142}, {"x":2.37, "y":0.27}, {"x":3.37, "y":0.27}, {"x":14.13, "y":0.27}, {"x":15.13, "y":0.27}, {"x":17.13, "y":0.27}, {"x":16.13, "y":0.27}, {"x":18.45, "y":1.142}, {"x":2.24, "y":1.28, "w":1.5}, {"x":3.74, "y":1.28}, {"x":13.75, "y":1.28}, {"x":14.75, "y":1.28}, {"x":15.75, "y":1.28}, {"x":16.75, "y":1.28, "w":1.5}, {"x":18.61, "y":2.142}, {"x":2.1, "y":2.28, "w":1.75}, {"x":3.85, "y":2.28}, {"x":14.16, "y":2.28}, {"x":15.16, "y":2.28}, {"x":16.16, "y":2.28, "w":2.25}, {"x":1.95, "y":3.28, "w":2.25}, {"x":4.2, "y":3.28}, {"x":13.81, "y":3.28}, {"x":14.81, "y":3.28}, {"x":15.81, "y":3.28, "w":1.75}, {"x":17.77, "y":3.48}, {"x":1.95, "y":4.28, "w":1.25}, {"x":3.2, "y":4.28, "w":1.25}, {"x":14.06, "y":4.28, "w":1.25}, {"x":15.31, "y":4.28, "w":1.25}, {"x":16.77, "y":4.475}, {"x":17.77, "y":4.475}, {"x":18.77, "y":4.475}, {"x":0, "y":5.28}, {"x":1, "y":5.28}, {"x":2, "y":5.28}, {"x":3, "y":5.28}, {"x":4, "y":5.28}, {"x":0.5, "y":6.28}, {"x":1.5, "y":6.28}, {"x":2.5, "y":6.28}, {"x":3.5, "y":6.28}, {"x":0.75, "y":7.28}, {"x":1.75, "y":7.28}, {"x":2.75, "y":7.28}, {"x":3.75, "y":7.28}, {"x":1.25, "y":8.28}, {"x":2.25, "y":8.28}, {"x":3.25, "y":8.28}, {"x":4.25, "y":8.28}, {"x":1.25, "y":9.28, "w":1.25}, {"x":2.5, "y":9.28, "w":2.75}, {"x":-4.5, "y":10.08}, {"x":-3.5, "y":10.08}, {"x":-2.5, "y":10.08}, {"x":-1.5, "y":10.08}, {"x":-5.0, "y":11.08}, {"x":-4, "y":11.08}, {"x":-3.0, "y":11.08}, {"x":-2, "y":11.08}, {"x":-4.75, "y":12.08}, {"x":-3.75, "y":12.08}, {"x":-2.75, "y":12.08}, {"x":-1.75, "y":12.08}, {"x":-5.25, "y":13.08}, {"x":-4.25, "y":13.08}, {"x":-3.25, "y":13.08}, {"x":-2.25, "y":13.08}, {"x":-5.25, "y":14.08, "w":2.25}, {"x":-3.0, "y":14.08, "w":1.25}] + } + } +} diff --git a/keyboards/fjlabs/swordfish/keymaps/default/keymap.c b/keyboards/fjlabs/swordfish/keymaps/default/keymap.c new file mode 100644 index 0000000000..ecce4f1a7b --- /dev/null +++ b/keyboards/fjlabs/swordfish/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_alice_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_MPLY, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_5, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_VOLU, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_T, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_VOLD, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_G, 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_B, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_alice_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, RGB_MOD, RGB_RMOD, RGB_TOG, + 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, RGB_VAI, + 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, RGB_VAD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ) +}; diff --git a/keyboards/fjlabs/swordfish/keymaps/via/keymap.c b/keyboards/fjlabs/swordfish/keymaps/via/keymap.c new file mode 100644 index 0000000000..50ade4767e --- /dev/null +++ b/keyboards/fjlabs/swordfish/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_alice_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_MPLY, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_5, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_VOLU, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_T, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_VOLD, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_G, 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_B, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_alice_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, RGB_MOD, RGB_RMOD, RGB_TOG, + 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, RGB_VAI, + 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, RGB_VAD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + + [_LAYER2] = LAYOUT_alice_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 + ), + + [_LAYER3] = LAYOUT_alice_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/fjlabs/swordfish/keymaps/via/rules.mk b/keyboards/fjlabs/swordfish/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/fjlabs/swordfish/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/fjlabs/swordfish/readme.md b/keyboards/fjlabs/swordfish/readme.md new file mode 100644 index 0000000000..0f6f847285 --- /dev/null +++ b/keyboards/fjlabs/swordfish/readme.md @@ -0,0 +1,16 @@ +# 7V Hotswap PCB by FJLaboratories + +The following is the QMK Firmware for the 7V Hotswap PCB by [FJLaboratories](https://www.fjlaboratories.com/). + +* Keyboard Maintainer: [FJLaboratories](https://github.com/mrnoisytiger) +* Hardware Supported: 7V Hotswap + +Make example for this keyboard (after setting up your build environment): + + make fjlabs/7vhotswap: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/swordfish/rules.mk b/keyboards/fjlabs/swordfish/rules.mk new file mode 100644 index 0000000000..82e9a04fa5 --- /dev/null +++ b/keyboards/fjlabs/swordfish/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 = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/fjlabs/swordfish/swordfish.c b/keyboards/fjlabs/swordfish/swordfish.c new file mode 100644 index 0000000000..a8689fefe8 --- /dev/null +++ b/keyboards/fjlabs/swordfish/swordfish.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 "swordfish.h" diff --git a/keyboards/fjlabs/swordfish/swordfish.h b/keyboards/fjlabs/swordfish/swordfish.h new file mode 100644 index 0000000000..0b2e8acc62 --- /dev/null +++ b/keyboards/fjlabs/swordfish/swordfish.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" + +/* === All used matrix spots populated === */ +#define LAYOUT_alice_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, \ + 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, K4B, K4C, K4D, \ + K50, K51, K52, K54, K55, K57, K58, 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 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO }, \ + { K50, K51, K52, KC_NO, K54, K55, KC_NO, K57, K58, KC_NO, K5A, K5B, K5C, K5D, K5E } \ +} From 9a41a303ccf0fc76b06ae1fdea35bfdb56c7f265 Mon Sep 17 00:00:00 2001 From: Danny Date: Mon, 11 Jul 2022 17:14:55 -0400 Subject: [PATCH 14/69] [Keyboard] Add Quefrency Rev. 5 (#17503) --- .../keebio/quefrency/keymaps/default/config.h | 3 - .../keebio/quefrency/keymaps/default/keymap.c | 52 +- .../{default65macro => default60}/config.h | 3 + .../quefrency/keymaps/default60/keymap.c | 35 ++ .../quefrency/keymaps/default65macro/keymap.c | 50 -- keyboards/keebio/quefrency/quefrency.h | 3 + keyboards/keebio/quefrency/rev4/info.json | 467 ------------------ keyboards/keebio/quefrency/rev4/rev4.h | 80 --- keyboards/keebio/quefrency/rev5/config.h | 69 +++ keyboards/keebio/quefrency/rev5/info.json | 370 ++++++++++++++ keyboards/keebio/quefrency/rev5/readme.md | 18 + keyboards/keebio/quefrency/rev5/rev5.c | 35 ++ keyboards/keebio/quefrency/rev5/rev5.h | 120 +++++ keyboards/keebio/quefrency/rev5/rules.mk | 4 + 14 files changed, 694 insertions(+), 615 deletions(-) rename keyboards/keebio/quefrency/keymaps/{default65macro => default60}/config.h (93%) create mode 100644 keyboards/keebio/quefrency/keymaps/default60/keymap.c delete mode 100644 keyboards/keebio/quefrency/keymaps/default65macro/keymap.c create mode 100644 keyboards/keebio/quefrency/rev5/config.h create mode 100644 keyboards/keebio/quefrency/rev5/info.json create mode 100644 keyboards/keebio/quefrency/rev5/readme.md create mode 100644 keyboards/keebio/quefrency/rev5/rev5.c create mode 100644 keyboards/keebio/quefrency/rev5/rev5.h create mode 100644 keyboards/keebio/quefrency/rev5/rules.mk diff --git a/keyboards/keebio/quefrency/keymaps/default/config.h b/keyboards/keebio/quefrency/keymaps/default/config.h index f9efe78c5b..53bf8fb933 100644 --- a/keyboards/keebio/quefrency/keymaps/default/config.h +++ b/keyboards/keebio/quefrency/keymaps/default/config.h @@ -21,7 +21,4 @@ along with this program. If not, see . #pragma once -/* Use I2C or Serial, not both */ - -#define USE_SERIAL // #define USE_I2C diff --git a/keyboards/keebio/quefrency/keymaps/default/keymap.c b/keyboards/keebio/quefrency/keymaps/default/keymap.c index 008cf5128d..a152c304a7 100644 --- a/keyboards/keebio/quefrency/keymaps/default/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/default/keymap.c @@ -1,31 +1,53 @@ -#include QMK_KEYBOARD_H +// Copyright 2022 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -#define _BASE 0 -#define _FN1 1 +enum custom_layer { + _BASE, + _FN1, +}; enum custom_keycodes { QWERTY = SAFE_RANGE, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, MO(_FN1),KC_BSPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_BASE] = LAYOUT_65_with_macro( + KC_F1, KC_F2, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_HOME, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, MO(_FN1),KC_SPC, KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT ), - [_FN1] = LAYOUT( - 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_BSPC, - RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [_FN1] = LAYOUT_65_with_macro( + _______, _______, 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_BSPC, _______, + _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return false; +} diff --git a/keyboards/keebio/quefrency/keymaps/default65macro/config.h b/keyboards/keebio/quefrency/keymaps/default60/config.h similarity index 93% rename from keyboards/keebio/quefrency/keymaps/default65macro/config.h rename to keyboards/keebio/quefrency/keymaps/default60/config.h index 53bf8fb933..f9efe78c5b 100644 --- a/keyboards/keebio/quefrency/keymaps/default65macro/config.h +++ b/keyboards/keebio/quefrency/keymaps/default60/config.h @@ -21,4 +21,7 @@ along with this program. If not, see . #pragma once +/* Use I2C or Serial, not both */ + +#define USE_SERIAL // #define USE_I2C diff --git a/keyboards/keebio/quefrency/keymaps/default60/keymap.c b/keyboards/keebio/quefrency/keymaps/default60/keymap.c new file mode 100644 index 0000000000..f987d9aa4d --- /dev/null +++ b/keyboards/keebio/quefrency/keymaps/default60/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2022 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum custom_layer { + _BASE, + _FN1, +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60( + 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_DEL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, MO(_FN1),KC_BSPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_60( + 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_BSPC, + RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c b/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c deleted file mode 100644 index f452232b2d..0000000000 --- a/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c +++ /dev/null @@ -1,50 +0,0 @@ -#include QMK_KEYBOARD_H - -extern keymap_config_t keymap_config; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _BASE 0 -#define _FN1 1 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_65_with_macro( - KC_F1, KC_F2, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_HOME, - KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, - KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, MO(_FN1),KC_SPC, KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_FN1] = LAYOUT_65_with_macro( - _______, _______, 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_BSPC, _______, - _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } - else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return false; -} diff --git a/keyboards/keebio/quefrency/quefrency.h b/keyboards/keebio/quefrency/quefrency.h index 2c77dc2ad3..d9a14c439c 100644 --- a/keyboards/keebio/quefrency/quefrency.h +++ b/keyboards/keebio/quefrency/quefrency.h @@ -14,3 +14,6 @@ #ifdef KEYBOARD_keebio_quefrency_rev4 #include "rev4.h" #endif +#ifdef KEYBOARD_keebio_quefrency_rev5 + #include "rev5.h" +#endif diff --git a/keyboards/keebio/quefrency/rev4/info.json b/keyboards/keebio/quefrency/rev4/info.json index 3c2364ef15..314bb807f0 100644 --- a/keyboards/keebio/quefrency/rev4/info.json +++ b/keyboards/keebio/quefrency/rev4/info.json @@ -356,473 +356,6 @@ { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, - { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 13.25, "y": 4 }, - { "label": "Ctrl", "x": 14.25, "y": 4 }, - { "label": "Win", "x": 15.25, "y": 4 }, - { "label": "Left", "x": 16.25, "y": 4 }, - { "label": "Down", "x": 17.25, "y": 4 }, - { "label": "Right", "x": 18.25, "y": 4 } - ] - }, - "LAYOUT_60_iso": { - "layout": [ - { "label": "Esc", "x": 0, "y": 0 }, - { "label": "1", "x": 1, "y": 0 }, - { "label": "2", "x": 2, "y": 0 }, - { "label": "3", "x": 3, "y": 0 }, - { "label": "4", "x": 4, "y": 0 }, - { "label": "5", "x": 5, "y": 0 }, - { "label": "6", "x": 6, "y": 0 }, - - { "label": "7", "x": 8, "y": 0 }, - { "label": "8", "x": 9, "y": 0 }, - { "label": "9", "x": 10, "y": 0 }, - { "label": "0", "x": 11, "y": 0 }, - { "label": "-", "x": 12, "y": 0 }, - { "label": "=", "x": 13, "y": 0 }, - { "label": "Del", "x": 14, "y": 0 }, - { "label": "Bksp", "x": 15, "y": 0 }, - - { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 1.5, "y": 1 }, - { "label": "W", "x": 2.5, "y": 1 }, - { "label": "E", "x": 3.5, "y": 1 }, - { "label": "R", "x": 4.5, "y": 1 }, - { "label": "T", "x": 5.5, "y": 1 }, - - { "label": "Y", "x": 7.5, "y": 1 }, - { "label": "U", "x": 8.5, "y": 1 }, - { "label": "I", "x": 9.5, "y": 1 }, - { "label": "O", "x": 10.5, "y": 1 }, - { "label": "P", "x": 11.5, "y": 1 }, - { "label": "[", "x": 12.5, "y": 1 }, - { "label": "]", "x": 13.5, "y": 1 }, - - { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, - { "label": "A", "x": 1.75, "y": 2 }, - { "label": "S", "x": 2.75, "y": 2 }, - { "label": "D", "x": 3.75, "y": 2 }, - { "label": "F", "x": 4.75, "y": 2 }, - { "label": "G", "x": 5.75, "y": 2 }, - - { "label": "H", "x": 7.75, "y": 2 }, - { "label": "J", "x": 8.75, "y": 2 }, - { "label": "K", "x": 9.75, "y": 2 }, - { "label": "L", "x": 10.75, "y": 2 }, - { "label": ";", "x": 11.75, "y": 2 }, - { "label": "'", "x": 12.75, "y": 2 }, - { "label": "NUHS", "x": 13.75, "y": 2 }, - { "label": "Enter", "x": 14.75, "y": 1, "w": 1.25, "h": 2 }, - - { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 1.25, "y": 3 }, - { "label": "Z", "x": 2.25, "y": 3 }, - { "label": "X", "x": 3.25, "y": 3 }, - { "label": "C", "x": 4.25, "y": 3 }, - { "label": "V", "x": 5.25, "y": 3 }, - { "label": "B", "x": 6.25, "y": 3 }, - - { "label": "N", "x": 8.25, "y": 3 }, - { "label": "M", "x": 9.25, "y": 3 }, - { "label": ",", "x": 10.25, "y": 3 }, - { "label": ".", "x": 11.25, "y": 3 }, - { "label": "/", "x": 12.25, "y": 3 }, - { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 15, "y": 3 }, - - { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, - - { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 11, "y": 4 }, - { "label": "Ctrl", "x": 12, "y": 4 }, - { "label": "Left", "x": 13, "y": 4 }, - { "label": "Down", "x": 14, "y": 4 }, - { "label": "Right", "x": 15, "y": 4 } - ] - }, - "LAYOUT_65_iso": { - "layout": [ - { "label": "Esc", "x": 0, "y": 0 }, - { "label": "1", "x": 1, "y": 0 }, - { "label": "2", "x": 2, "y": 0 }, - { "label": "3", "x": 3, "y": 0 }, - { "label": "4", "x": 4, "y": 0 }, - { "label": "5", "x": 5, "y": 0 }, - { "label": "6", "x": 6, "y": 0 }, - - { "label": "7", "x": 8, "y": 0 }, - { "label": "8", "x": 9, "y": 0 }, - { "label": "9", "x": 10, "y": 0 }, - { "label": "0", "x": 11, "y": 0 }, - { "label": "-", "x": 12, "y": 0 }, - { "label": "=", "x": 13, "y": 0 }, - { "label": "Del", "x": 14, "y": 0 }, - { "label": "Bksp", "x": 15, "y": 0 }, - { "label": "Home", "x": 16, "y": 0 }, - - { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 1.5, "y": 1 }, - { "label": "W", "x": 2.5, "y": 1 }, - { "label": "E", "x": 3.5, "y": 1 }, - { "label": "R", "x": 4.5, "y": 1 }, - { "label": "T", "x": 5.5, "y": 1 }, - - { "label": "Y", "x": 7.5, "y": 1 }, - { "label": "U", "x": 8.5, "y": 1 }, - { "label": "I", "x": 9.5, "y": 1 }, - { "label": "O", "x": 10.5, "y": 1 }, - { "label": "P", "x": 11.5, "y": 1 }, - { "label": "[", "x": 12.5, "y": 1 }, - { "label": "]", "x": 13.5, "y": 1 }, - { "label": "End", "x": 16, "y": 1 }, - - { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, - { "label": "A", "x": 1.75, "y": 2 }, - { "label": "S", "x": 2.75, "y": 2 }, - { "label": "D", "x": 3.75, "y": 2 }, - { "label": "F", "x": 4.75, "y": 2 }, - { "label": "G", "x": 5.75, "y": 2 }, - - { "label": "H", "x": 7.75, "y": 2 }, - { "label": "J", "x": 8.75, "y": 2 }, - { "label": "K", "x": 9.75, "y": 2 }, - { "label": "L", "x": 10.75, "y": 2 }, - { "label": ";", "x": 11.75, "y": 2 }, - { "label": "'", "x": 12.75, "y": 2 }, - { "label": "NUHS", "x": 13.75, "y": 2 }, - { "label": "Enter", "x": 14.75, "y": 1, "w": 1.25, "h": 2 }, - { "label": "Page Up", "x": 16, "y": 2 }, - - { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 1.25, "y": 3 }, - { "label": "Z", "x": 2.25, "y": 3 }, - { "label": "X", "x": 3.25, "y": 3 }, - { "label": "C", "x": 4.25, "y": 3 }, - { "label": "V", "x": 5.25, "y": 3 }, - { "label": "B", "x": 6.25, "y": 3 }, - - { "label": "N", "x": 8.25, "y": 3 }, - { "label": "M", "x": 9.25, "y": 3 }, - { "label": ",", "x": 10.25, "y": 3 }, - { "label": ".", "x": 11.25, "y": 3 }, - { "label": "/", "x": 12.25, "y": 3 }, - { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 15, "y": 3 }, - { "label": "Page Down", "x": 16, "y": 3 }, - - { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, - - { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 11, "y": 4 }, - { "label": "Ctrl", "x": 12, "y": 4 }, - { "label": "Win", "x": 13, "y": 4 }, - { "label": "Left", "x": 14, "y": 4 }, - { "label": "Down", "x": 15, "y": 4 }, - { "label": "Right", "x": 16, "y": 4 } - ] - }, - "LAYOUT_60_iso_with_macro": { - "layout": [ - { "label": "F1", "x": 0, "y": 0 }, - { "label": "F6", "x": 1, "y": 0 }, - - { "label": "Esc", "x": 2.25, "y": 0 }, - { "label": "1", "x": 3.25, "y": 0 }, - { "label": "2", "x": 4.25, "y": 0 }, - { "label": "3", "x": 5.25, "y": 0 }, - { "label": "4", "x": 6.25, "y": 0 }, - { "label": "5", "x": 7.25, "y": 0 }, - { "label": "6", "x": 8.25, "y": 0 }, - - { "label": "7", "x": 10.25, "y": 0 }, - { "label": "8", "x": 11.25, "y": 0 }, - { "label": "9", "x": 12.25, "y": 0 }, - { "label": "0", "x": 13.25, "y": 0 }, - { "label": "-", "x": 14.25, "y": 0 }, - { "label": "=", "x": 15.25, "y": 0 }, - { "label": "Del", "x": 16.25, "y": 0 }, - { "label": "Bksp", "x": 17.25, "y": 0 }, - - { "label": "F2", "x": 0, "y": 1 }, - { "label": "F7", "x": 1, "y": 1 }, - - { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 3.75, "y": 1 }, - { "label": "W", "x": 4.75, "y": 1 }, - { "label": "E", "x": 5.75, "y": 1 }, - { "label": "R", "x": 6.75, "y": 1 }, - { "label": "T", "x": 7.75, "y": 1 }, - - { "label": "Y", "x": 9.75, "y": 1 }, - { "label": "U", "x": 10.75, "y": 1 }, - { "label": "I", "x": 11.75, "y": 1 }, - { "label": "O", "x": 12.75, "y": 1 }, - { "label": "P", "x": 13.75, "y": 1 }, - { "label": "[", "x": 14.75, "y": 1 }, - { "label": "]", "x": 15.75, "y": 1 }, - - { "label": "F3", "x": 0, "y": 2 }, - { "label": "F8", "x": 1, "y": 2 }, - - { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, - { "label": "A", "x": 4, "y": 2 }, - { "label": "S", "x": 5, "y": 2 }, - { "label": "D", "x": 6, "y": 2 }, - { "label": "F", "x": 7, "y": 2 }, - { "label": "G", "x": 8, "y": 2 }, - - { "label": "H", "x": 10, "y": 2 }, - { "label": "J", "x": 11, "y": 2 }, - { "label": "K", "x": 12, "y": 2 }, - { "label": "L", "x": 13, "y": 2 }, - { "label": ";", "x": 14, "y": 2 }, - { "label": "'", "x": 15, "y": 2 }, - { "label": "NUHS", "x": 16, "y": 2 }, - { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, - - { "label": "F4", "x": 0, "y": 3 }, - { "label": "F9", "x": 1, "y": 3 }, - - { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 3.5, "y": 3 }, - { "label": "Z", "x": 4.5, "y": 3 }, - { "label": "X", "x": 5.5, "y": 3 }, - { "label": "C", "x": 6.5, "y": 3 }, - { "label": "V", "x": 7.5, "y": 3 }, - { "label": "B", "x": 8.5, "y": 3 }, - - { "label": "N", "x": 10.5, "y": 3 }, - { "label": "M", "x": 11.5, "y": 3 }, - { "label": ",", "x": 12.5, "y": 3 }, - { "label": ".", "x": 13.5, "y": 3 }, - { "label": "/", "x": 14.5, "y": 3 }, - { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 17.25, "y": 3 }, - - { "label": "F5", "x": 0, "y": 4 }, - { "label": "F10", "x": 1, "y": 4 }, - - { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, - - { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 13.25, "y": 4 }, - { "label": "Ctrl", "x": 14.25, "y": 4 }, - { "label": "Left", "x": 15.25, "y": 4 }, - { "label": "Down", "x": 16.25, "y": 4 }, - { "label": "Right", "x": 17.25, "y": 4 } - ] - }, - "LAYOUT_65_iso_with_macro": { - "layout": [ - { "label": "F1", "x": 0, "y": 0 }, - { "label": "F6", "x": 1, "y": 0 }, - - { "label": "Esc", "x": 2.25, "y": 0 }, - { "label": "1", "x": 3.25, "y": 0 }, - { "label": "2", "x": 4.25, "y": 0 }, - { "label": "3", "x": 5.25, "y": 0 }, - { "label": "4", "x": 6.25, "y": 0 }, - { "label": "5", "x": 7.25, "y": 0 }, - { "label": "6", "x": 8.25, "y": 0 }, - - { "label": "7", "x": 10.25, "y": 0 }, - { "label": "8", "x": 11.25, "y": 0 }, - { "label": "9", "x": 12.25, "y": 0 }, - { "label": "0", "x": 13.25, "y": 0 }, - { "label": "-", "x": 14.25, "y": 0 }, - { "label": "=", "x": 15.25, "y": 0 }, - { "label": "Del", "x": 16.25, "y": 0 }, - { "label": "Bksp", "x": 17.25, "y": 0 }, - { "label": "Home", "x": 18.25, "y": 0 }, - - { "label": "F2", "x": 0, "y": 1 }, - { "label": "F7", "x": 1, "y": 1 }, - - { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 3.75, "y": 1 }, - { "label": "W", "x": 4.75, "y": 1 }, - { "label": "E", "x": 5.75, "y": 1 }, - { "label": "R", "x": 6.75, "y": 1 }, - { "label": "T", "x": 7.75, "y": 1 }, - - { "label": "Y", "x": 9.75, "y": 1 }, - { "label": "U", "x": 10.75, "y": 1 }, - { "label": "I", "x": 11.75, "y": 1 }, - { "label": "O", "x": 12.75, "y": 1 }, - { "label": "P", "x": 13.75, "y": 1 }, - { "label": "[", "x": 14.75, "y": 1 }, - { "label": "]", "x": 15.75, "y": 1 }, - { "label": "PgUp", "x": 18.25, "y": 1 }, - - { "label": "F3", "x": 0, "y": 2 }, - { "label": "F8", "x": 1, "y": 2 }, - - { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, - { "label": "A", "x": 4, "y": 2 }, - { "label": "S", "x": 5, "y": 2 }, - { "label": "D", "x": 6, "y": 2 }, - { "label": "F", "x": 7, "y": 2 }, - { "label": "G", "x": 8, "y": 2 }, - - { "label": "H", "x": 10, "y": 2 }, - { "label": "J", "x": 11, "y": 2 }, - { "label": "K", "x": 12, "y": 2 }, - { "label": "L", "x": 13, "y": 2 }, - { "label": ";", "x": 14, "y": 2 }, - { "label": "'", "x": 15, "y": 2 }, - { "label": "NUHS", "x": 16, "y": 2 }, - { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, - { "label": "PgDn", "x": 18.25, "y": 2 }, - - { "label": "F4", "x": 0, "y": 3 }, - { "label": "F9", "x": 1, "y": 3 }, - - { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 3.5, "y": 3 }, - { "label": "Z", "x": 4.5, "y": 3 }, - { "label": "X", "x": 5.5, "y": 3 }, - { "label": "C", "x": 6.5, "y": 3 }, - { "label": "V", "x": 7.5, "y": 3 }, - { "label": "B", "x": 8.5, "y": 3 }, - - { "label": "N", "x": 10.5, "y": 3 }, - { "label": "M", "x": 11.5, "y": 3 }, - { "label": ",", "x": 12.5, "y": 3 }, - { "label": ".", "x": 13.5, "y": 3 }, - { "label": "/", "x": 14.5, "y": 3 }, - { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 17.25, "y": 3 }, - { "label": "End", "x": 18.25, "y": 3 }, - - { "label": "F5", "x": 0, "y": 4 }, - { "label": "F10", "x": 1, "y": 4 }, - - { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, - - { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 13.25, "y": 4 }, - { "label": "Ctrl", "x": 14.25, "y": 4 }, - { "label": "Win", "x": 15.25, "y": 4 }, - { "label": "Left", "x": 16.25, "y": 4 }, - { "label": "Down", "x": 17.25, "y": 4 }, - { "label": "Right", "x": 18.25, "y": 4 } - ] - }, - "LAYOUT_all": { - "layout": [ - { "label": "F1", "x": 0, "y": 0 }, - { "label": "F6", "x": 1, "y": 0 }, - - { "label": "Esc", "x": 2.25, "y": 0 }, - { "label": "1", "x": 3.25, "y": 0 }, - { "label": "2", "x": 4.25, "y": 0 }, - { "label": "3", "x": 5.25, "y": 0 }, - { "label": "4", "x": 6.25, "y": 0 }, - { "label": "5", "x": 7.25, "y": 0 }, - { "label": "6", "x": 8.25, "y": 0 }, - - { "label": "7", "x": 10.25, "y": 0 }, - { "label": "8", "x": 11.25, "y": 0 }, - { "label": "9", "x": 12.25, "y": 0 }, - { "label": "0", "x": 13.25, "y": 0 }, - { "label": "-", "x": 14.25, "y": 0 }, - { "label": "=", "x": 15.25, "y": 0 }, - { "label": "Del", "x": 16.25, "y": 0 }, - { "label": "Bksp", "x": 17.25, "y": 0 }, - { "label": "Home", "x": 18.25, "y": 0 }, - - { "label": "F2", "x": 0, "y": 1 }, - { "label": "F7", "x": 1, "y": 1 }, - - { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 3.75, "y": 1 }, - { "label": "W", "x": 4.75, "y": 1 }, - { "label": "E", "x": 5.75, "y": 1 }, - { "label": "R", "x": 6.75, "y": 1 }, - { "label": "T", "x": 7.75, "y": 1 }, - - { "label": "Y", "x": 9.75, "y": 1 }, - { "label": "U", "x": 10.75, "y": 1 }, - { "label": "I", "x": 11.75, "y": 1 }, - { "label": "O", "x": 12.75, "y": 1 }, - { "label": "P", "x": 13.75, "y": 1 }, - { "label": "[", "x": 14.75, "y": 1 }, - { "label": "]", "x": 15.75, "y": 1 }, - { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, - { "label": "PgUp", "x": 18.25, "y": 1 }, - - { "label": "F3", "x": 0, "y": 2 }, - { "label": "F8", "x": 1, "y": 2 }, - - { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, - { "label": "A", "x": 4, "y": 2 }, - { "label": "S", "x": 5, "y": 2 }, - { "label": "D", "x": 6, "y": 2 }, - { "label": "F", "x": 7, "y": 2 }, - { "label": "G", "x": 8, "y": 2 }, - - { "label": "H", "x": 10, "y": 2 }, - { "label": "J", "x": 11, "y": 2 }, - { "label": "K", "x": 12, "y": 2 }, - { "label": "L", "x": 13, "y": 2 }, - { "label": ";", "x": 14, "y": 2 }, - { "label": "'", "x": 15, "y": 2 }, - { "label": "NUHS", "x": 16, "y": 2 }, - { "label": "Enter", "x": 17, "y": 2, "w": 1.25 }, - { "label": "PgDn", "x": 18.25, "y": 2 }, - - { "label": "F4", "x": 0, "y": 3 }, - { "label": "F9", "x": 1, "y": 3 }, - - { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 3.5, "y": 3 }, - { "label": "Z", "x": 4.5, "y": 3 }, - { "label": "X", "x": 5.5, "y": 3 }, - { "label": "C", "x": 6.5, "y": 3 }, - { "label": "V", "x": 7.5, "y": 3 }, - { "label": "B", "x": 8.5, "y": 3 }, - - { "label": "N", "x": 10.5, "y": 3 }, - { "label": "M", "x": 11.5, "y": 3 }, - { "label": ",", "x": 12.5, "y": 3 }, - { "label": ".", "x": 13.5, "y": 3 }, - { "label": "/", "x": 14.5, "y": 3 }, - { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 17.25, "y": 3 }, - { "label": "End", "x": 18.25, "y": 3 }, - - { "label": "F5", "x": 0, "y": 4 }, - { "label": "F10", "x": 1, "y": 4 }, - - { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 7.25, "y": 4 }, - { "label": "Space", "x": 8.25, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, { "label": "Alt", "x": 13.25, "y": 4 }, diff --git a/keyboards/keebio/quefrency/rev4/rev4.h b/keyboards/keebio/quefrency/rev4/rev4.h index 12f76d5c85..2284a6da43 100644 --- a/keyboards/keebio/quefrency/rev4/rev4.h +++ b/keyboards/keebio/quefrency/rev4/rev4.h @@ -99,86 +99,6 @@ along with this program. If not, see . { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ } -#define LAYOUT_60_iso( \ - LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ - LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \ - LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \ - LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ - LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ - ) \ - { \ - { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ - { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ - { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ - { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \ - { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ - { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ - } - -#define LAYOUT_65_iso( \ - LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ - LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \ - LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \ - LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ - LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ - ) \ - { \ - { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ - { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ - { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ - { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \ - { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ - { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ - } - -#define LAYOUT_60_iso_with_macro( \ - LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ - LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \ - LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \ - LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ - LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ - ) \ - { \ - { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ - { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ - { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ - { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \ - { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ - { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ - } - -#define LAYOUT_65_iso_with_macro( \ - LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ - LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \ - LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \ - LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ - LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ - ) \ - { \ - { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ - { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ - { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ - { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \ - { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ - { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ - } - #define LAYOUT_all( \ LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ diff --git a/keyboards/keebio/quefrency/rev5/config.h b/keyboards/keebio/quefrency/rev5/config.h new file mode 100644 index 0000000000..ad57a7f8c7 --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/config.h @@ -0,0 +1,69 @@ +/* Copyright 2021 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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB10 +#define PRODUCT_ID 0x5257 +#define DEVICE_VER 0x0500 +#define MANUFACTURER Keebio +#define PRODUCT Quefrency Rev. 5 + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 9 + +#define DIODE_DIRECTION COL2ROW +// wiring of each half +#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7 } +#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5, D4 } +#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 } +#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 } +#define SPLIT_HAND_PIN F7 +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F6 } +#define ENCODERS_PAD_A_RIGHT { D6 } +#define ENCODERS_PAD_B_RIGHT { D4 } + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* ws2812 RGB LED */ +#define RGB_DI_PIN E6 +#define RGBLED_NUM 16 // Number of LEDs +#define RGBLED_SPLIT { 8, 8 } +#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) +#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 diff --git a/keyboards/keebio/quefrency/rev5/info.json b/keyboards/keebio/quefrency/rev5/info.json new file mode 100644 index 0000000000..9509663c86 --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/info.json @@ -0,0 +1,370 @@ +{ + "keyboard_name": "Quefrency Rev. 5", + "url": "https://keeb.io", + "maintainer": "nooges", + "layout_aliases": { + "LAYOUT": "LAYOUT_60" + }, + "layouts": { + "LAYOUT_60": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + + { "label": "7", "x": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "y": 0 }, + + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + + { "label": "Y", "x": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + + { "label": "H", "x": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "x": 10.75, "y": 2 }, + { "label": ";", "x": 11.75, "y": 2 }, + { "label": "'", "x": 12.75, "y": 2 }, + { "label": "Enter", "x": 13.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + + { "label": "N", "x": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Left", "x": 13, "y": 4 }, + { "label": "Down", "x": 14, "y": 4 }, + { "label": "Right", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + + { "label": "7", "x": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "y": 0 }, + { "label": "Home", "x": 16, "y": 0 }, + + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + + { "label": "Y", "x": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + { "label": "End", "x": 16, "y": 1 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + + { "label": "H", "x": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "x": 10.75, "y": 2 }, + { "label": ";", "x": 11.75, "y": 2 }, + { "label": "'", "x": 12.75, "y": 2 }, + { "label": "Enter", "x": 13.75, "y": 2, "w": 2.25 }, + { "label": "Page Up", "x": 16, "y": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + + { "label": "N", "x": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + { "label": "Page Down", "x": 16, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Win", "x": 13, "y": 4 }, + { "label": "Left", "x": 14, "y": 4 }, + { "label": "Down", "x": 15, "y": 4 }, + { "label": "Right", "x": 16, "y": 4 } + ] + }, + "LAYOUT_60_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Left", "x": 15.25, "y": 4 }, + { "label": "Down", "x": 16.25, "y": 4 }, + { "label": "Right", "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_65_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/keebio/quefrency/rev5/readme.md b/keyboards/keebio/quefrency/rev5/readme.md new file mode 100644 index 0000000000..77e296f5f1 --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/readme.md @@ -0,0 +1,18 @@ +# Quefrency Rev. 5 + +Quefrency Rev. 5 features Kailh hotswap sockets with a fixed layout. The left macro portion and right column can be broken off, and split backspace or 2u backspace can be used. + +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Availability: [Keebio](https://keeb.io/) + +Make example for this keyboard (after setting up your build environment): + + make keebio/quefrency/rev5:default + +Example of flashing this keyboard: + + make keebio/quefrency/rev5: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). + +A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/quefrency/rev5/rev5.c b/keyboards/keebio/quefrency/rev5/rev5.c new file mode 100644 index 0000000000..190135420f --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/rev5.c @@ -0,0 +1,35 @@ +/* Copyright 2021 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 . +*/ + +#include "quefrency.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return false; +} diff --git a/keyboards/keebio/quefrency/rev5/rev5.h b/keyboards/keebio/quefrency/rev5/rev5.h new file mode 100644 index 0000000000..2284a6da43 --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/rev5.h @@ -0,0 +1,120 @@ +/* Copyright 2021 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 + +#include "quefrency.h" +#include "quantum.h" + +#define LAYOUT_60( \ + LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ + LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \ + LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \ + LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ + LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ + ) \ + { \ + { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ + } + +#define LAYOUT_65( \ + LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ + LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \ + LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ + } + +#define LAYOUT_60_with_macro( \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \ + LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ + } + +#define LAYOUT_65_with_macro( \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \ + LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ + } + +#define LAYOUT_all( \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \ + LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ + } diff --git a/keyboards/keebio/quefrency/rev5/rules.mk b/keyboards/keebio/quefrency/rev5/rules.mk new file mode 100644 index 0000000000..f071ae81b8 --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/rules.mk @@ -0,0 +1,4 @@ +BOOTLOADER = atmel-dfu +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = yes +ENCODER_ENABLE = yes From 2714c70bd774489f039b7c60a2f8634a64ff40c3 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 11 Jul 2022 22:45:56 +0100 Subject: [PATCH 15/69] Fix layout macro for nightly_boards/paraluman (#17633) --- keyboards/nightly_boards/paraluman/paraluman.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/keyboards/nightly_boards/paraluman/paraluman.h b/keyboards/nightly_boards/paraluman/paraluman.h index 27b2508d9a..2f6a40fb83 100644 --- a/keyboards/nightly_boards/paraluman/paraluman.h +++ b/keyboards/nightly_boards/paraluman/paraluman.h @@ -30,14 +30,14 @@ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, \ 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, \ - K40, K42, K43, K47, K4A, K4B, K4C, K4D \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K42, K43, K47, K4A, K4B, K4C, K4D \ ) { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ - { K40, KC_NO, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, K4C, K4D }, \ + { K40, KC_NO, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \ } #define LAYOUT_60_ansi_split_bs_rshift_tsangan( \ @@ -51,7 +51,5 @@ { 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, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ - { K40, KC_NO, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D }, \ - { KC_NO, KC_NO } \ + { K40, KC_NO, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D } \ } - From 2a3dd95229b68492e8740e1906957dad8ea38ea3 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 13 Jul 2022 00:06:19 +0100 Subject: [PATCH 16/69] Add basic secure docs (#17577) --- docs/_summary.md | 1 + docs/feature_secure.md | 54 +++++++++++++++++++++++++++++++++++++ docs/reference_info_json.md | 22 +++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 docs/feature_secure.md diff --git a/docs/_summary.md b/docs/_summary.md index 11f5e1dd51..b7fcddc237 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -84,6 +84,7 @@ * [One Shot Keys](one_shot_keys.md) * [Pointing Device](feature_pointing_device.md) * [Raw HID](feature_rawhid.md) + * [Secure](feature_secure.md) * [Sequencer](feature_sequencer.md) * [Swap Hands](feature_swap_hands.md) * [Tap Dance](feature_tap_dance.md) diff --git a/docs/feature_secure.md b/docs/feature_secure.md new file mode 100644 index 0000000000..ee774b05a8 --- /dev/null +++ b/docs/feature_secure.md @@ -0,0 +1,54 @@ +# Secure + +The secure feature aims to prevent unwanted interaction without user intervention. + +?> Secure does **not** currently implement encryption/decryption/etc and should not be a replacement where a strong hardware/software based solution is required. + +### Unlock sequence + +To unlock, the user must perform a set of actions. This can optionally be configured to be multiple keys. + +* While unlocking all keyboard input is ignored +* Incorrect attempts will revert back to the previously locked state + +### Automatic Locking + +Once unlocked, the keyboard will revert back to a locked state after the configured timeout. +The timeout can be refreshed by using the `secure_activity_event` function, for example from one of the various [hooks](custom_quantum_functions.md). + +## Usage + +Add the following to your `rules.mk`: + +```make +SECURE_ENABLE = yes +``` + +## Keycodes + +| Key | Description | +|------------------|--------------------------------------------------------------------------------| +| `SECURE_LOCK` | Revert back to a locked state | +| `SECURE_UNLOCK` | Forces unlock without performing a unlock sequence | +| `SECURE_TOGGLE` | Toggle directly between locked and unlock without performing a unlock sequence | +| `SECURE_REQUEST` | Request that user perform the unlock sequence | + +## Configuration + +| Define | Default | Description | +|-------------------------|----------------|---------------------------------------------------------------------------------| +|`SECURE_UNLOCK_TIMEOUT` | `5000` | Timeout for the user to perform the configured unlock sequence - `0` to disable | +|`SECURE_IDLE_TIMEOUT` | `60000` | Timeout while unlocked before returning to locked - `0` to disable | +|`SECURE_UNLOCK_SEQUENCE` | `{ { 0, 0 } }` | Array of matrix locations describing a sequential sequence of keypresses | + +## Functions + +| Function | Description | +|---------------------------|----------------------------------------------------------------------------| +| `secure_is_locked()` | Check if the device is currently locked | +| `secure_is_unlocking()` | Check if an unlock sequence is currently in progress | +| `secure_is_unlocked()` | Check if the device is currently unlocked | +| `secure_lock()` | Lock down the device | +| `secure_unlock()` | Force unlock the device - bypasses user unlock sequence | +| `secure_request_unlock()` | Begin listening for an unlock sequence | +| `secure_activity_event()` | Flag that user activity has happened and the device should remain unlocked | diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 97817164dd..aa59711592 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -238,3 +238,25 @@ Example: ``` The device version is a BCD (binary coded decimal) value, in the format `MMmr`, so the below value would look like `0x0100` in the generated code. This also means the maximum valid values for each part are `99.9.9`, despite it being a hexadecimal value under the hood. + +### Secure + +The following options can be configured: + +|Key |Description | +|------------------|---------------------------------------------------------------------------------| +|`unlock_sequence` | Timeout for the user to perform the configured unlock sequence - `0` to disable | +|`unlock_timeout` | Timeout while unlocked before returning to locked - `0` to disable | +|`idle_timeout` | Array of matrix locations describing a sequential sequence of keypresses | + +Example: + +```json +{ + "secure": { + "unlock_sequence": [ [0,0], [0,1] ], + "unlock_timeout": 5000, + "idle_timeout": 60000 + } +} +``` From 26954bbc2857c62d8de4522de12578c0da4cf904 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 12 Jul 2022 20:50:26 -0700 Subject: [PATCH 17/69] [Docs] Add Encoder requirements to PR Checklist doc (#17634) Co-authored-by: Nick Brassel --- docs/pr_checklist.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index f55517dfa2..9ab8c80e9b 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -79,6 +79,9 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](custom_quantum_functions.md?id=keyboard_pre_init_-function-documentation) - prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](custom_matrix.md?id=lite) - prefer LED indicator [Configuration Options](feature_led_indicators.md?id=configuration-options) to custom `led_update_*()` implementations where possible + - Encoder support should not be hacked into the keymap here -- no `tap_code(dynamic_keymap_get_keycode())` or `action_exec()` hacks. The [Encoder Map](feature_encoders.md?id=encoder-map) feature already supports the dynamic keymap feature (what power's VIA's "live keymap updates" capability). + - If support is absolutely necessary, it should be implemented exclusively at the keymap level, with none of the implementation bleeding into the keyboard level (no empty rows/columns, no encoder specific layouts, etc.), as those configurations can be redefined at the keymap level. Keymaps can then choose to use the `action_exec` hack. + - [Request for official proper VIA support](https://github.com/the-via/app/issues/26) - `.h` - `#include "quantum.h"` appears at the top - `LAYOUT` macros should use standard definitions if applicable From 257fc042df2bb5bd2541d34d72299c838d6a0271 Mon Sep 17 00:00:00 2001 From: AnthonyNguyen168 <89651736+AnthonyNguyen168@users.noreply.github.com> Date: Wed, 13 Jul 2022 11:09:37 +0700 Subject: [PATCH 18/69] [Keyboard] Update layout for MechBrewery series (#17570) --- keyboards/mechbrewery/mb65h/keymaps/default/keymap.c | 4 ++-- keyboards/mechbrewery/mb65h/keymaps/via/keymap.c | 4 ++-- keyboards/mechbrewery/mb65s/keymaps/ansi_blocker/keymap.c | 4 ++-- .../mechbrewery/mb65s/keymaps/ansi_blocker_7u_spc/keymap.c | 4 ++-- keyboards/mechbrewery/mb65s/keymaps/default/keymap.c | 4 ++-- keyboards/mechbrewery/mb65s/keymaps/iso_blocker/keymap.c | 4 ++-- .../mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c | 4 ++-- keyboards/mechbrewery/mb65s/keymaps/via/keymap.c | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/keyboards/mechbrewery/mb65h/keymaps/default/keymap.c b/keyboards/mechbrewery/mb65h/keymaps/default/keymap.c index 9c62755928..3905a3053d 100644 --- a/keyboards/mechbrewery/mb65h/keymaps/default/keymap.c +++ b/keyboards/mechbrewery/mb65h/keymaps/default/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, - _______, _______, KC_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/mechbrewery/mb65h/keymaps/via/keymap.c b/keyboards/mechbrewery/mb65h/keymaps/via/keymap.c index 85f94da297..cf736eeac4 100644 --- a/keyboards/mechbrewery/mb65h/keymaps/via/keymap.c +++ b/keyboards/mechbrewery/mb65h/keymaps/via/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, - _______, _______, KC_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker/keymap.c index 0076da3dc8..fce4b5cd3b 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_ansi_blocker_split_bs( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, - _______, _______, KC_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker_7u_spc/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker_7u_spc/keymap.c index a19f132295..eb9fc329f3 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker_7u_spc/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker_7u_spc/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_ansi_blocker_tsangan( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, - _______, _______, KC_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c index 1e071c610e..755b3a4b0e 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, - _______, _______, KC_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker/keymap.c index 1cff877fbb..c76a62feaa 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker/keymap.c @@ -55,8 +55,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_iso_blocker_split_bs( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c index 6071438dc1..4eed1f0e8c 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c @@ -55,8 +55,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_iso_blocker_7u_spc( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/via/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/via/keymap.c index e3c4c76fc2..94046b8833 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/via/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/via/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, - _______, _______, KC_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), From 7a090bb3df759613e2b6fa6bcdf71f5f5460a1fa Mon Sep 17 00:00:00 2001 From: Yizhen Liu <62583086+edwardslau@users.noreply.github.com> Date: Tue, 12 Jul 2022 22:10:31 -0600 Subject: [PATCH 19/69] [Keyboard] Kprepublic bm80v2 iso revised (#17571) Co-authored-by: Drashna Jaelre --- keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c | 150 ++++++++++++++++++ keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h | 34 ++++ keyboards/kprepublic/bm80v2_iso/config.h | 48 ++++++ keyboards/kprepublic/bm80v2_iso/info.json | 104 ++++++++++++ .../bm80v2_iso/keymaps/default/keymap.c | 43 +++++ .../bm80v2_iso/keymaps/via/keymap.c | 43 +++++ .../bm80v2_iso/keymaps/via/rules.mk | 2 + keyboards/kprepublic/bm80v2_iso/readme.md | 20 +++ keyboards/kprepublic/bm80v2_iso/rules.mk | 22 +++ 9 files changed, 466 insertions(+) create mode 100644 keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c create mode 100644 keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h create mode 100644 keyboards/kprepublic/bm80v2_iso/config.h create mode 100644 keyboards/kprepublic/bm80v2_iso/info.json create mode 100644 keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c create mode 100644 keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c create mode 100644 keyboards/kprepublic/bm80v2_iso/keymaps/via/rules.mk create mode 100644 keyboards/kprepublic/bm80v2_iso/readme.md create mode 100644 keyboards/kprepublic/bm80v2_iso/rules.mk diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c new file mode 100644 index 0000000000..89a20922c1 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c @@ -0,0 +1,150 @@ +/* Copyright 2022 bdtc123 * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "bm80v2_iso.h" + +#ifdef RGB_MATRIX_ENABLE + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS6_SW1, CS5_SW1, CS4_SW1}, + {0, CS6_SW3, CS5_SW3, CS4_SW3}, + {0, CS6_SW4, CS5_SW4, CS4_SW4}, + {0, CS6_SW5, CS5_SW5, CS4_SW5}, + {0, CS6_SW6, CS5_SW6, CS4_SW6}, + {0, CS6_SW7, CS5_SW7, CS4_SW7}, + {0, CS6_SW8, CS5_SW8, CS4_SW8}, + {0, CS6_SW9, CS5_SW9, CS4_SW9}, + {0, CS21_SW1, CS20_SW1, CS19_SW1}, + {0, CS21_SW2, CS20_SW2, CS19_SW2}, + {0, CS21_SW3, CS20_SW3, CS19_SW3}, + {0, CS21_SW4, CS20_SW4, CS19_SW4}, + {0, CS21_SW5, CS20_SW5, CS19_SW5}, + {0, CS21_SW6, CS20_SW6, CS19_SW6}, + {0, CS21_SW7, CS20_SW7, CS19_SW7}, + {0, CS21_SW8, CS20_SW8, CS19_SW8}, + + + {0, CS9_SW1, CS8_SW1, CS7_SW1}, + {0, CS9_SW2, CS8_SW2, CS7_SW2}, + {0, CS9_SW3, CS8_SW3, CS7_SW3}, + {0, CS9_SW4, CS8_SW4, CS7_SW4}, + {0, CS9_SW5, CS8_SW5, CS7_SW5}, + {0, CS9_SW6, CS8_SW6, CS7_SW6}, + {0, CS9_SW7, CS8_SW7, CS7_SW7}, + {0, CS9_SW8, CS8_SW8, CS7_SW8}, + {0, CS9_SW9, CS8_SW9, CS7_SW9}, + {0,CS24_SW1, CS23_SW1, CS22_SW1}, + {0,CS24_SW2, CS23_SW2, CS22_SW2}, + {0,CS24_SW3, CS23_SW3, CS22_SW3}, + {0,CS24_SW4, CS23_SW4, CS22_SW4}, + {0,CS24_SW5, CS23_SW5, CS22_SW5}, + {0,CS24_SW6, CS23_SW6, CS22_SW6}, + {0,CS24_SW7, CS23_SW7, CS22_SW7}, + {0,CS24_SW8, CS23_SW8, CS22_SW8}, + + {0, CS12_SW1, CS11_SW1, CS10_SW1}, + {0, CS12_SW2, CS11_SW2, CS10_SW2}, + {0, CS12_SW3, CS11_SW3, CS10_SW3}, + {0, CS12_SW4, CS11_SW4, CS10_SW4}, + {0, CS12_SW5, CS11_SW5, CS10_SW5}, + {0, CS12_SW6, CS11_SW6, CS10_SW6}, + {0, CS12_SW7, CS11_SW7, CS10_SW7}, + {0, CS12_SW8, CS11_SW8, CS10_SW8}, + {0, CS12_SW9, CS11_SW9, CS10_SW9}, + {0, CS27_SW1, CS26_SW1, CS25_SW1}, + {0, CS27_SW2, CS26_SW2, CS25_SW2}, + {0, CS27_SW3, CS26_SW3, CS25_SW3}, + {0, CS27_SW4, CS26_SW4, CS25_SW4}, + {0, CS27_SW5, CS26_SW5, CS25_SW5}, + {0, CS27_SW6, CS26_SW6, CS25_SW6}, + {0, CS27_SW7, CS26_SW7, CS25_SW7}, + {0, CS27_SW8, CS26_SW8, CS25_SW8}, + + {0, CS15_SW1, CS14_SW1, CS13_SW1}, + {0, CS15_SW2, CS14_SW2, CS13_SW2}, + {0, CS15_SW3, CS14_SW3, CS13_SW3}, + {0, CS15_SW4, CS14_SW4, CS13_SW4}, + {0, CS15_SW5, CS14_SW5, CS13_SW5}, + {0, CS15_SW6, CS14_SW6, CS13_SW6}, + {0, CS15_SW7, CS14_SW7, CS13_SW7}, + {0, CS15_SW8, CS14_SW8, CS13_SW8}, + {0, CS15_SW9, CS14_SW9, CS13_SW9}, + {0, CS30_SW1, CS29_SW1, CS28_SW1}, + {0, CS30_SW2, CS29_SW2, CS28_SW2}, + {0, CS30_SW3, CS29_SW3, CS28_SW3}, + {0, CS30_SW4, CS29_SW4, CS28_SW4}, + + {0, CS18_SW1, CS17_SW1, CS16_SW1}, + {0, CS18_SW2, CS17_SW2, CS16_SW2}, + {0, CS18_SW3, CS17_SW3, CS16_SW3}, + {0, CS18_SW4, CS17_SW4, CS16_SW4}, + {0, CS18_SW5, CS17_SW5, CS16_SW5}, + {0, CS18_SW6, CS17_SW6, CS16_SW6}, + {0, CS18_SW7, CS17_SW7, CS16_SW7}, + {0, CS18_SW8, CS17_SW8, CS16_SW8}, + {0, CS18_SW9, CS17_SW9, CS16_SW9}, + {0, CS33_SW1, CS32_SW1, CS31_SW1}, + {0, CS33_SW2, CS32_SW2, CS31_SW2}, + {0, CS33_SW3, CS32_SW3, CS31_SW3}, + {0, CS33_SW4, CS32_SW4, CS31_SW4}, + {0, CS33_SW7, CS32_SW7, CS31_SW7}, + + {0, CS3_SW1, CS2_SW1, CS1_SW1}, + {0, CS3_SW2, CS2_SW2, CS1_SW2}, + {0, CS3_SW3, CS2_SW3, CS1_SW3}, + {0, CS3_SW6, CS2_SW6, CS1_SW6}, + {0, CS36_SW2, CS35_SW2, CS34_SW2}, + {0, CS36_SW3, CS35_SW3, CS34_SW3}, + {0, CS36_SW4, CS35_SW4, CS34_SW4}, + {0, CS36_SW5, CS35_SW5, CS34_SW5}, + {0, CS36_SW6, CS35_SW6, CS34_SW6}, + {0, CS36_SW7, CS35_SW7, CS34_SW7}, + {0, CS36_SW8, CS35_SW8, CS34_SW8} + +}; +led_config_t g_led_config = { { + { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, + { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 }, + { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, + { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED }, + { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED }, + { 77, 78, 79, NO_LED,NO_LED, 80, NO_LED, NO_LED, NO_LED, NO_LED, 81, 82, 83, 84, 85, 86, 87 } +}, +{ + { 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 }, + { 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 }, + { 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 }, { 175, 35 }, { 193, 30 }, { 205, 30 }, { 217, 30 }, + { 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 }, + { 8, 49 }, { 22, 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 }, + { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 } +}, +{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 +} }; + + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) +{ + if (host_keyboard_led_state().caps_lock) + { + rgb_matrix_set_color(50, 0xFF, 0xFF, 0xFF); + } +} +#endif + diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h new file mode 100644 index 0000000000..eeb1df7372 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h @@ -0,0 +1,34 @@ +/* Copyright 2022 bdtc123 * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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_tkl_iso( \ + K0_0, K0_2, K0_3, K0_4, K0_5, K0_6,K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10, \ + K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10, \ + K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10, \ + K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, \ + K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_B, K4_C, K4_F, \ + K5_0, K5_1, K5_2, K5_5, K5_A, K5_B, K5_C, K5_D, K5_E, K5_F, K5_10 \ +) { \ + { K0_0, KC_NO, K0_2, K0_3, K0_4, K0_5, K0_6, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10 }, \ + { K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10 }, \ + { K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10 }, \ + { K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_B, K4_C, KC_NO, KC_NO, K4_F, KC_NO }, \ + { K5_0, K5_1, K5_2, KC_NO, KC_NO, K5_5, KC_NO, KC_NO, KC_NO, KC_NO, K5_A, K5_B, K5_C, K5_D, K5_E, K5_F, K5_10 } \ +} + diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h new file mode 100644 index 0000000000..25c12ee169 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -0,0 +1,48 @@ +/* Copyright 2022 bdtc123 * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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 0x4B50 +#define PRODUCT_ID 0x1142 +#define DEVICE_VER 0x0002 +#define MANUFACTURER KP republic +#define PRODUCT bm80v2_iso + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 +#define MATRIX_ROW_PINS { C7, C6, B6, F5, F7, F6 } +#define MATRIX_COL_PINS { E6, F0, F1, F4, D7, D6, B7, B1, B0, B2, B3, D3, D5, D4, D2, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL +#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons. +#define DRIVER_COUNT 1 +#define DRIVER_1_LED_TOTAL 88 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 diff --git a/keyboards/kprepublic/bm80v2_iso/info.json b/keyboards/kprepublic/bm80v2_iso/info.json new file mode 100644 index 0000000000..fa1f74899f --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/info.json @@ -0,0 +1,104 @@ +{ + "keyboard_name": "bm80v2_iso", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_iso": { + "layout": [ + { "x":0, "y":0}, + { "x":2, "y":0}, + { "x":3, "y":0}, + { "x":4, "y":0}, + { "x":5, "y":0}, + { "x":6.5, "y":0}, + { "x":7.5, "y":0}, + { "x":8.5, "y":0}, + { "x":9.5, "y":0}, + { "x":11, "y":0}, + { "x":12, "y":0}, + { "x":13, "y":0}, + { "x":14, "y":0}, + { "x":15.25, "y":0}, + { "x":16.25, "y":0}, + { "x":17.25, "y":0}, + + { "x":0, "y":1.5}, + { "x":1, "y":1.5}, + { "x":2, "y":1.5}, + { "x":3, "y":1.5}, + { "x":4, "y":1.5}, + { "x":5, "y":1.5}, + { "x":6, "y":1.5}, + { "x":7, "y":1.5}, + { "x":8, "y":1.5}, + { "x":9, "y":1.5}, + { "x":10, "y":1.5}, + { "x":11, "y":1.5}, + { "x":12, "y":1.5}, + { "x":13, "y":1.5, "w":2}, + { "x":15.25, "y":1.5}, + { "x":16.25, "y":1.5}, + { "x":17.25, "y":1.5}, + + { "x":0, "y":2.5, "w":1.5}, + { "x":1.5, "y":2.5}, + { "x":2.5, "y":2.5}, + { "x":3.5, "y":2.5}, + { "x":4.5, "y":2.5}, + { "x":5.5, "y":2.5}, + { "x":6.5, "y":2.5}, + { "x":7.5, "y":2.5}, + { "x":8.5, "y":2.5}, + { "x":9.5, "y":2.5}, + { "x":10.5, "y":2.5}, + { "x":11.5, "y":2.5}, + { "x":12.5, "y":2.5}, + { "x":13.75,"y":2.5}, + { "x":15.25, "y":2.5}, + { "x":16.25, "y":2.5}, + { "x":17.25, "y":2.5}, + + { "x":0, "y":3.5, "w":1.75}, + { "x":1.75, "y":3.5}, + { "x":2.75, "y":3.5}, + { "x":3.75, "y":3.5}, + { "x":4.75, "y":3.5}, + { "x":5.75, "y":3.5}, + { "x":6.75, "y":3.5}, + { "x":7.75, "y":3.5}, + { "x":8.75, "y":3.5}, + { "x":9.75, "y":3.5}, + { "x":10.75, "y":3.5}, + { "x":11.75, "y":3.5}, + { "x":13.75, "y":3.5, "w":1.25, "h":2}, + + { "x":0, "y":4.5, "w":1.25}, + { "x":1.25, "y":4.5}, + { "x":2.25, "y":4.5}, + { "x":3.25, "y":4.5}, + { "x":4.25, "y":4.5}, + { "x":5.25, "y":4.5}, + { "x":6.25, "y":4.5}, + { "x":7.25, "y":4.5}, + { "x":8.25, "y":4.5}, + { "x":9.25, "y":4.5}, + { "x":10.25, "y":4.5}, + { "x":11.25, "y":4.5}, + { "x":12.25, "y":4.5, "w":2.75}, + { "x":16.25, "y":4.5}, + + { "x":0, "y":5.5, "w":1.25}, + { "x":1.25, "y":5.5, "w":1.25}, + { "x":2.5, "y":5.5, "w":1.25}, + { "x":3.75, "y":5.5, "w":6.25}, + { "x":10, "y":5.5, "w":1.25}, + { "x":11.25, "y":5.5, "w":1.25}, + { "x":12.5, "y":5.5, "w":1.25}, + { "x":13.75, "y":5.5, "w":1.25}, + { "x":15.25, "y":5.5}, + { "x":16.25, "y":5.5}, + { "x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c new file mode 100644 index 0000000000..9d5a3ba6a0 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2021 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_tkl_iso( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, + KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_tkl_iso( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c b/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c new file mode 100644 index 0000000000..a8a28ac677 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2021 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_tkl_iso( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, + KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_tkl_iso( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/via/rules.mk b/keyboards/kprepublic/bm80v2_iso/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kprepublic/bm80v2_iso/readme.md b/keyboards/kprepublic/bm80v2_iso/readme.md new file mode 100644 index 0000000000..6e353137ba --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/readme.md @@ -0,0 +1,20 @@ +# %bm80v2_iso% + +A 80% ISO hotswap inswitch RGB keyboard. + +* Keyboard Maintainer: [%bdtc123%](https://github.com/bdtc123) +* Hardware Supported: BM80V2_ISO +* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm80-iso-bm80rgb-80-rgb-hot-swappable-custom-mechanical-keyboard-pcb-programmed-rgb-switch-underglow-type-c-qmk-via?_pos=9&_sid=b43edd6ac&_ss=r) + +Make example for this keyboard (after setting up your build environment): + + make kprepublic bm80v2_iso:default + +Flashing example for this keyboard: + + make kprepublic bm80v2_iso: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 +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead diff --git a/keyboards/kprepublic/bm80v2_iso/rules.mk b/keyboards/kprepublic/bm80v2_iso/rules.mk new file mode 100644 index 0000000000..75ddddf946 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +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_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3741 +LTO_ENABLE = yes +LAYOUTS = tkl_iso From 5bc81d3a636e1fedd451f5a7912a391e0d572665 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Wed, 13 Jul 2022 06:31:17 +0200 Subject: [PATCH 20/69] [Keyboard] Add Kallos keyboard (#17461) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/cipulot/kallos/config.h | 63 +++ keyboards/cipulot/kallos/info.json | 422 ++++++++++++++++++ keyboards/cipulot/kallos/kallos.c | 17 + keyboards/cipulot/kallos/kallos.h | 35 ++ .../cipulot/kallos/keymaps/default/keymap.c | 52 +++ keyboards/cipulot/kallos/keymaps/via/keymap.c | 52 +++ keyboards/cipulot/kallos/keymaps/via/rules.mk | 1 + keyboards/cipulot/kallos/readme.md | 21 + keyboards/cipulot/kallos/rules.mk | 19 + 9 files changed, 682 insertions(+) create mode 100644 keyboards/cipulot/kallos/config.h create mode 100644 keyboards/cipulot/kallos/info.json create mode 100644 keyboards/cipulot/kallos/kallos.c create mode 100644 keyboards/cipulot/kallos/kallos.h create mode 100644 keyboards/cipulot/kallos/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/kallos/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/kallos/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/kallos/readme.md create mode 100644 keyboards/cipulot/kallos/rules.mk diff --git a/keyboards/cipulot/kallos/config.h b/keyboards/cipulot/kallos/config.h new file mode 100644 index 0000000000..eb3db2210c --- /dev/null +++ b/keyboards/cipulot/kallos/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2022 Cipulot + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for 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 0x6369 +#define PRODUCT_ID 0x6B7A +#define DEVICE_VER 0x0001 +#define MANUFACTURER Cipulot +#define PRODUCT Kallos + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS \ + { B3, B2, F0, C7, F4, F1 } +#define MATRIX_COL_PINS \ + { F5, F6, C6, B6, B5, B4, D7, D6, D4, D5, D3, F7, D2, D1, B7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Lightbar pin and LED count definitions*/ +#define RGB_DI_PIN D0 +#define RGBLED_NUM 13 +#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 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/kallos/info.json b/keyboards/cipulot/kallos/info.json new file mode 100644 index 0000000000..5c2f6c3e81 --- /dev/null +++ b/keyboards/cipulot/kallos/info.json @@ -0,0 +1,422 @@ +{ + "keyboard_name": "Kallos", + "url": "", + "maintainer": "Cipulot", + "layouts": { + "LAYOUT_default": { + "layout": [ + { + "label": "0,0", + "x": 0, + "y": 0 + }, + { + "label": "0,1", + "x": 1.25, + "y": 0 + }, + { + "label": "0,2", + "x": 2.25, + "y": 0 + }, + { + "label": "0,3", + "x": 3.25, + "y": 0 + }, + { + "label": "0,4", + "x": 4.25, + "y": 0 + }, + { + "label": "0,5", + "x": 5.5, + "y": 0 + }, + { + "label": "0,6", + "x": 6.5, + "y": 0 + }, + { + "label": "0,7", + "x": 7.5, + "y": 0 + }, + { + "label": "0,8", + "x": 8.5, + "y": 0 + }, + { + "label": "0,9", + "x": 9.75, + "y": 0 + }, + { + "label": "0,10", + "x": 10.75, + "y": 0 + }, + { + "label": "0,11", + "x": 11.75, + "y": 0 + }, + { + "label": "0,12", + "x": 12.75, + "y": 0 + }, + { + "label": "0,13", + "x": 14, + "y": 0 + }, + { + "label": "0,14", + "x": 15.25, + "y": 0 + }, + { + "label": "1,0", + "x": 0, + "y": 1.25 + }, + { + "label": "1,1", + "x": 1, + "y": 1.25 + }, + { + "label": "1,2", + "x": 2, + "y": 1.25 + }, + { + "label": "1,3", + "x": 3, + "y": 1.25 + }, + { + "label": "1,4", + "x": 4, + "y": 1.25 + }, + { + "label": "1,5", + "x": 5, + "y": 1.25 + }, + { + "label": "1,6", + "x": 6, + "y": 1.25 + }, + { + "label": "1,7", + "x": 7, + "y": 1.25 + }, + { + "label": "1,8", + "x": 8, + "y": 1.25 + }, + { + "label": "1,9", + "x": 9, + "y": 1.25 + }, + { + "label": "1,10", + "x": 10, + "y": 1.25 + }, + { + "label": "1,11", + "x": 11, + "y": 1.25 + }, + { + "label": "1,12", + "x": 12, + "y": 1.25 + }, + { + "label": "1,13", + "x": 13, + "y": 1.25 + }, + { + "label": "1,14", + "x": 14, + "y": 1.25 + }, + { + "label": "2,14", + "x": 15.25, + "y": 1.25 + }, + { + "label": "2,0", + "x": 0, + "y": 2.25, + "w": 1.5 + }, + { + "label": "2,1", + "x": 1.5, + "y": 2.25 + }, + { + "label": "2,2", + "x": 2.5, + "y": 2.25 + }, + { + "label": "2,3", + "x": 3.5, + "y": 2.25 + }, + { + "label": "2,4", + "x": 4.5, + "y": 2.25 + }, + { + "label": "2,5", + "x": 5.5, + "y": 2.25 + }, + { + "label": "2,6", + "x": 6.5, + "y": 2.25 + }, + { + "label": "2,7", + "x": 7.5, + "y": 2.25 + }, + { + "label": "2,8", + "x": 8.5, + "y": 2.25 + }, + { + "label": "2,9", + "x": 9.5, + "y": 2.25 + }, + { + "label": "2,10", + "x": 10.5, + "y": 2.25 + }, + { + "label": "2,11", + "x": 11.5, + "y": 2.25 + }, + { + "label": "2,12", + "x": 12.5, + "y": 2.25 + }, + { + "label": "2,13", + "x": 13.5, + "y": 2.25, + "w": 1.5 + }, + { + "label": "3,14", + "x": 15.25, + "y": 2.25 + }, + { + "label": "3,0", + "x": 0, + "y": 3.25, + "w": 1.75 + }, + { + "label": "3,1", + "x": 1.75, + "y": 3.25 + }, + { + "label": "3,2", + "x": 2.75, + "y": 3.25 + }, + { + "label": "3,3", + "x": 3.75, + "y": 3.25 + }, + { + "label": "3,4", + "x": 4.75, + "y": 3.25 + }, + { + "label": "3,5", + "x": 5.75, + "y": 3.25 + }, + { + "label": "3,6", + "x": 6.75, + "y": 3.25 + }, + { + "label": "3,7", + "x": 7.75, + "y": 3.25 + }, + { + "label": "3,8", + "x": 8.75, + "y": 3.25 + }, + { + "label": "3,9", + "x": 9.75, + "y": 3.25 + }, + { + "label": "3,10", + "x": 10.75, + "y": 3.25 + }, + { + "label": "3,11", + "x": 11.75, + "y": 3.25 + }, + { + "label": "3,13", + "x": 12.75, + "y": 3.25, + "w": 2.25 + }, + { + "label": "4,0", + "x": 0, + "y": 4.25, + "w": 2.25 + }, + { + "label": "4,1", + "x": 2.25, + "y": 4.25 + }, + { + "label": "4,2", + "x": 3.25, + "y": 4.25 + }, + { + "label": "4,3", + "x": 4.25, + "y": 4.25 + }, + { + "label": "4,4", + "x": 5.25, + "y": 4.25 + }, + { + "label": "4,5", + "x": 6.25, + "y": 4.25 + }, + { + "label": "4,6", + "x": 7.25, + "y": 4.25 + }, + { + "label": "4,7", + "x": 8.25, + "y": 4.25 + }, + { + "label": "4,8", + "x": 9.25, + "y": 4.25 + }, + { + "label": "4,9", + "x": 10.25, + "y": 4.25 + }, + { + "label": "4,10", + "x": 11.25, + "y": 4.25 + }, + { + "label": "4,12", + "x": 12.25, + "y": 4.25, + "w": 1.75 + }, + { + "label": "4,13", + "x": 14.25, + "y": 4.5 + }, + { + "label": "5,0", + "x": 0, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,1", + "x": 2.13, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,6", + "x": 3.38, + "y": 5.25, + "w": 6.25 + }, + { + "label": "5,9", + "x": 9.63, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,10", + "x": 11.75, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,12", + "x": 13.25, + "y": 5.5 + }, + { + "label": "5,13", + "x": 14.25, + "y": 5.5 + }, + { + "label": "5,14", + "x": 15.25, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/cipulot/kallos/kallos.c b/keyboards/cipulot/kallos/kallos.c new file mode 100644 index 0000000000..77f41f9075 --- /dev/null +++ b/keyboards/cipulot/kallos/kallos.c @@ -0,0 +1,17 @@ +/* Copyright 2022 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "kallos.h" diff --git a/keyboards/cipulot/kallos/kallos.h b/keyboards/cipulot/kallos/kallos.h new file mode 100644 index 0000000000..bf71b6becf --- /dev/null +++ b/keyboards/cipulot/kallos/kallos.h @@ -0,0 +1,35 @@ +/* Copyright 2022 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_default( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k214, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k314, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \ + k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k412, k413, \ + k500, k501, k506, k509, k510, k512, k513, k514 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, KC_NO, k313, k314 }, \ + { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, KC_NO, k412, k413, KC_NO }, \ + { k500, k501, KC_NO, KC_NO, KC_NO, KC_NO, k506, KC_NO, KC_NO, k509, k510, KC_NO, k512, k513, k514 } \ +} diff --git a/keyboards/cipulot/kallos/keymaps/default/keymap.c b/keyboards/cipulot/kallos/keymaps/default/keymap.c new file mode 100644 index 0000000000..d7daac93e0 --- /dev/null +++ b/keyboards/cipulot/kallos/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 Cipulot + + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_default( + KC_ESC, KC_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_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_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_PGDOWN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_default( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cipulot/kallos/keymaps/via/keymap.c b/keyboards/cipulot/kallos/keymaps/via/keymap.c new file mode 100644 index 0000000000..d7daac93e0 --- /dev/null +++ b/keyboards/cipulot/kallos/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 Cipulot + + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_default( + KC_ESC, KC_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_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_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_PGDOWN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_default( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cipulot/kallos/keymaps/via/rules.mk b/keyboards/cipulot/kallos/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/cipulot/kallos/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/kallos/readme.md b/keyboards/cipulot/kallos/readme.md new file mode 100644 index 0000000000..16921fbb42 --- /dev/null +++ b/keyboards/cipulot/kallos/readme.md @@ -0,0 +1,21 @@ +# Kallos + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: Kallos +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/kallos:default + +Flashing example for this keyboard: + + make cipulot/kallos:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset button**: Briefly short the pads labeled "Reset" on the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/cipulot/kallos/rules.mk b/keyboards/cipulot/kallos/rules.mk new file mode 100644 index 0000000000..1ad33bb514 --- /dev/null +++ b/keyboards/cipulot/kallos/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes From e68de9521401aab8fef73a66fd4ed0195151a92f Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 12 Jul 2022 21:37:23 -0700 Subject: [PATCH 21/69] KBDfans KBD67 rev2 Layout Patch (#17649) --- keyboards/kbdfans/kbd67/rev2/info.json | 160 ++++++++++++++++++ .../kbd67/rev2/keymaps/naphtaline/keymap.c | 4 +- .../kbd67/rev2/keymaps/naphtaline/readme.md | 2 +- keyboards/kbdfans/kbd67/rev2/rev2.h | 19 ++- 4 files changed, 179 insertions(+), 6 deletions(-) diff --git a/keyboards/kbdfans/kbd67/rev2/info.json b/keyboards/kbdfans/kbd67/rev2/info.json index 7e23e70c40..657f688813 100644 --- a/keyboards/kbdfans/kbd67/rev2/info.json +++ b/keyboards/kbdfans/kbd67/rev2/info.json @@ -2,6 +2,9 @@ "keyboard_name": "kbd67v2", "url": "", "maintainer": "qmk", + "layout_aliases": { + "LAYOUT_65_ansi_blocker_splitbs": "LAYOUT_65_ansi_blocker_split_bs" + }, "layouts": { "LAYOUT_all": { "layout": [ @@ -536,6 +539,163 @@ {"x":15, "y":4} ] }, + "LAYOUT_65_iso_split_bs": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_split_space": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, "LAYOUT_65_ansi_split_space": { "layout": [ {"x":0, "y":0}, diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c index 808f6e759d..27fbf0be53 100644 --- a/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Win |Alt | Space |MS3| Space |Alt |MO1|Ctrl|Lef|Dow|Rig| * `----------------------------------------------------------------' */ -[0] = LAYOUT_65_iso_split_bs( +[0] = LAYOUT_65_iso_split_space( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DELETE, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | Space |Space| Space | | | | | | | * `----------------------------------------------------------------' */ -[1] = LAYOUT_65_iso_split_bs( +[1] = LAYOUT_65_iso_split_space( QK_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_MUTE, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md index b550e938d0..d7b9c29e38 100644 --- a/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md @@ -1,4 +1,4 @@ # Not the default keymap for kbd67 - - this is my personnal layout, but is meant to be used as a base for the new layout LAYOUT_65_iso_split_bs + - this is my personnal layout, but is meant to be used as a base for the new layout LAYOUT_65_iso_split_space - 3 splitted space bar. (Space - Mouse click 3 - Space) diff --git a/keyboards/kbdfans/kbd67/rev2/rev2.h b/keyboards/kbdfans/kbd67/rev2/rev2.h index 349a844522..7e6a176ef1 100644 --- a/keyboards/kbdfans/kbd67/rev2/rev2.h +++ b/keyboards/kbdfans/kbd67/rev2/rev2.h @@ -115,6 +115,21 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, KC_NO, K4B, K4D, K4E, K4F }, \ } +#define LAYOUT_65_iso_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + #define LAYOUT_65_iso( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ @@ -130,7 +145,7 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ } -#define LAYOUT_65_iso_split_bs( \ +#define LAYOUT_65_iso_split_space( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D, K2F, \ @@ -160,5 +175,3 @@ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ { K40, K41, KC_NO, K43, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ } - -#define LAYOUT_65_ansi_blocker_splitbs LAYOUT_65_ansi_blocker_split_bs From 019bfc415966e8e4e4a6be2c1f231346002780f0 Mon Sep 17 00:00:00 2001 From: Zach Rice <30870769+RAOEUS@users.noreply.github.com> Date: Wed, 13 Jul 2022 00:52:52 -0400 Subject: [PATCH 22/69] [Keymap] Add RAOEUS keymap for the XD75 (#17456) Co-authored-by: Drashna Jaelre --- keyboards/xiudi/xd75/keymaps/raoeus/keymap.c | 173 ++++++++++++++++++ keyboards/xiudi/xd75/keymaps/raoeus/readme.md | 77 ++++++++ keyboards/xiudi/xd75/keymaps/raoeus/rules.mk | 3 + 3 files changed, 253 insertions(+) create mode 100644 keyboards/xiudi/xd75/keymaps/raoeus/keymap.c create mode 100644 keyboards/xiudi/xd75/keymaps/raoeus/readme.md create mode 100644 keyboards/xiudi/xd75/keymaps/raoeus/rules.mk diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c new file mode 100644 index 0000000000..07ecbcd848 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c @@ -0,0 +1,173 @@ +/* Copyright 2017 WunderaaaaaAa + * Modified by RAOEUS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_steno.h" + +void matrix_init_user(void) { + steno_set_mode(STENO_MODE_GEMINI); +} + +enum layer_names { _QWERTY, _LOWER, _RAISE, _BOTH, _STENO }; + +enum keycodes { QWERTY = SAFE_RANGE, LOWER, RAISE, STENO, EXT_STN }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | NUM | / | * | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | Del | 7 | 8 | 9 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | 4 | 5 | 6 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LShift | Z | X | C | V | B | N | M | , | . | / | Enter | 1 | 2 | 3 | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCtl | LAlt | LGUI | Steno | Lower | Space | Space | Raise | Left | Down | Up | Right | 0 | . | Enter | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_ortho_5x15( + 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_NUM, KC_PSLS, KC_PAST, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_P7, KC_P8, KC_P9, + 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_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_P1, KC_P2, KC_P3, + KC_LCTRL, KC_LALT, KC_LGUI, STENO, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + + /* STENO + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | FN | S | T | P | H | * | * | F | P | L | T | D | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | S | K | W | R | * | * | R | B | G | S | Z | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | EXIT | | | # | A | O | E | U | # | PWR | RES1 | RES2 | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_STENO] = LAYOUT_ortho_5x15( + STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC, XXXXXXX, XXXXXXX, XXXXXXX, + STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + EXT_STN, XXXXXXX, XXXXXXX, STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2, STN_PWR, STN_RE1, STN_RE2, XXXXXXX, XXXXXXX, XXXXXXX), + + /* LOWER + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO ~ | ISO | | Home | End | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_5x15( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, _______, _______, _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, _______, _______, _______, + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, _______, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______), + + /* RAISE + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO # | ISO / | Pg Up | Pg Dn | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_5x15( + 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, _______, _______, + KC_CAPS, KC_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, _______, _______, _______), + + /* BOTH (LOWER + RAISE) + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | Reset | Debug | | | | | TermOf | TermOn | | | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | AGNorm | AGSwap | QWERTY | STENO | | | PLAIN | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RGB+ | | | | | | | RGBTOG | HUE+ | SAT+ | BRITE+ | SPEED+ | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RGB- | | | | | | | | HUE- | SAT- | BRITE- | SPEED- | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_BOTH] = LAYOUT_ortho_5x15( + 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, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, _______, _______, _______, + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, STENO, _______, _______, RGB_M_P, _______, _______, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, + RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + layer_move(_QWERTY); + }; + return false; + break; + case STENO: + if (record->event.pressed) { + layer_move(_STENO); + } + return false; + break; + case EXT_STN: + if (record->event.pressed) { + layer_off(_STENO); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } + return false; + break; + } + return true; +} diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/readme.md b/keyboards/xiudi/xd75/keymaps/raoeus/readme.md new file mode 100644 index 0000000000..40da8596e5 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/raoeus/readme.md @@ -0,0 +1,77 @@ +# RAOEUS Layout for the XD75 + +This layout is based on the Preonic layout, but with an additional numpad on the right. I have also added a stenography layer for use with Plover. + +To compile this XD75 keymapping, please run `make xiudi/xd75:raoeus` + +To compile _and_ flash, please run `make xiudi/xd75:raoeus:flash` + + /* QWERTY + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | NUM | / | * | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | Del | 7 | 8 | 9 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | 4 | 5 | 6 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LShift | Z | X | C | V | B | N | M | , | . | / | Enter | 1 | 2 | 3 | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCtl | LAlt | LGUI | Steno | Lower | Space | Space | Raise | Left | Down | Up | Right | 0 | . | Enter | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + /* STENO + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | FN | S | T | P | H | * | * | F | P | L | T | D | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | S | K | W | R | * | * | R | B | G | S | Z | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | EXIT | | | # | A | O | E | U | # | PWR | RES1 | RES2 | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + /* LOWER + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO ~ | ISO | | Home | End | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + /* RAISE + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO # | ISO / | Pg Up | Pg Dn | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + /* BOTH (LOWER + RAISE) + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | Reset | Debug | | | | | TermOf | TermOn | | | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | AGNorm | AGSwap | QWERTY | STENO | | | PLAIN | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RGB+ | | | | | | | RGBTOG | HUE+ | SAT+ | BRITE+ | SPEED+ | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RGB- | | | | | | | | HUE- | SAT- | BRITE- | SPEED- | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/rules.mk b/keyboards/xiudi/xd75/keymaps/raoeus/rules.mk new file mode 100644 index 0000000000..0694ab5b65 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/raoeus/rules.mk @@ -0,0 +1,3 @@ +MOUSEKEY_ENABLE = no # Mouse keys +STENO_ENABLE = yes # Additional protocols for Stenography requires VIRTSER +AUTO_SHIFT_ENABLE = yes # When you hold down a character in QWERTY, shift is automatically applied From a991d65e875ddc517133e95b2c4d63bbb2093c5b Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Tue, 12 Jul 2022 22:58:04 -0600 Subject: [PATCH 23/69] [Keyboard] boardsource/3x4 data driven (#17628) * initial * change to development board * replaced KC_TRNS & use rules.mk template --- keyboards/boardsource/3x4/3x4.c | 1 - keyboards/boardsource/3x4/3x4.h | 12 ---- keyboards/boardsource/3x4/config.h | 70 ------------------- keyboards/boardsource/3x4/info.json | 61 +++++++++------- .../boardsource/3x4/keymaps/default/keymap.c | 24 ++----- .../boardsource/3x4/keymaps/via/keymap.c | 43 ++++++------ .../boardsource/3x4/keymaps/via/readme.md | 5 -- keyboards/boardsource/3x4/rules.mk | 18 +---- 8 files changed, 67 insertions(+), 167 deletions(-) delete mode 100644 keyboards/boardsource/3x4/3x4.c delete mode 100644 keyboards/boardsource/3x4/3x4.h delete mode 100644 keyboards/boardsource/3x4/config.h delete mode 100644 keyboards/boardsource/3x4/keymaps/via/readme.md diff --git a/keyboards/boardsource/3x4/3x4.c b/keyboards/boardsource/3x4/3x4.c deleted file mode 100644 index 798d5a65c4..0000000000 --- a/keyboards/boardsource/3x4/3x4.c +++ /dev/null @@ -1 +0,0 @@ -#include "3x4.h" diff --git a/keyboards/boardsource/3x4/3x4.h b/keyboards/boardsource/3x4/3x4.h deleted file mode 100644 index a27d32c74f..0000000000 --- a/keyboards/boardsource/3x4/3x4.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include "quantum.h" -#define LAYOUT( \ - K00, K01, K02, K03, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23 \ - ) { \ - {K00, K01, K02, K03}, \ - {K10, K11, K12, K13}, \ - {K20, K21, K22, K23} \ - } diff --git a/keyboards/boardsource/3x4/config.h b/keyboards/boardsource/3x4/config.h deleted file mode 100644 index b7a067bb6f..0000000000 --- a/keyboards/boardsource/3x4/config.h +++ /dev/null @@ -1,70 +0,0 @@ - - -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 // "Bs" - Boardsource -#define PRODUCT_ID 0x0304 // 3x4 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Boardsource -#define PRODUCT 3x4 - -/* key matrix size */ -#define MATRIX_ROWS 3 -#define MATRIX_COLS 4 - -#define MATRIX_ROW_PINS {F7, F6, F5} -#define MATRIX_COL_PINS {B6, B2, B3, B1} - -#define DIODE_DIRECTION COL2ROW - -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). - */ -// #define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/boardsource/3x4/info.json b/keyboards/boardsource/3x4/info.json index 649c35af3f..92ed37a63c 100644 --- a/keyboards/boardsource/3x4/info.json +++ b/keyboards/boardsource/3x4/info.json @@ -1,27 +1,40 @@ { - "keyboard_name": "boardsource 4x3", - "url": "https://boardsource.xyz", - "maintainer": "boardsource", - "layouts": { - - "LAYOUT": { - - "layout": [ - { "label": "K01", "x": 0, "y": 0 }, - { "label": "K02", "x": 1, "y": 0 }, - { "label": "K03", "x": 2, "y": 0 }, - { "label": "K04", "x": 3, "y": 0 }, - - { "label": "K05", "x": 0, "y": 1 }, - { "label": "K06", "x": 1, "y": 1 }, - { "label": "K07", "x": 2, "y": 1 }, - { "label": "K08", "x": 3, "y": 1 }, - - { "label": "K09", "x": 0, "y": 2 }, - { "label": "K10", "x": 1, "y": 2 }, - { "label": "K11", "x": 2, "y": 2 }, - { "label": "K12", "x": 3, "y": 2 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "3x4", + "maintainer": "waffle87", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["B6", "B2", "B3", "B1"], + "rows": ["F7", "F6", "F5"] + }, + "url": "https://boardsource.xyz/store/5ecc2008eee64242946c98c1", + "usb": { + "device_version": "1.0.0", + "pid": "0x0304", + "vid": "0x4273" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 } + ] } + } } diff --git a/keyboards/boardsource/3x4/keymaps/default/keymap.c b/keyboards/boardsource/3x4/keymaps/default/keymap.c index dec66533ef..7601c63506 100644 --- a/keyboards/boardsource/3x4/keymaps/default/keymap.c +++ b/keyboards/boardsource/3x4/keymaps/default/keymap.c @@ -1,26 +1,16 @@ +// Copyright 2022 @waffle87 +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -enum layers { - _MAIN, - _RAISE, - _LOWER, -}; - -// Readability keycodes -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_MAIN] = LAYOUT( - KC_0, KC_1, KC_4, KC_7, - KC_ENT, KC_2, KC_5, KC_8, - RAISE, KC_3, KC_6, KC_9 + [0] = LAYOUT( + KC_0, KC_1, KC_4, KC_7, + KC_ENT, KC_2, KC_5, KC_8, + MO(1), KC_3, KC_6, KC_9 ), - [_RAISE] = LAYOUT( + [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ) - }; diff --git a/keyboards/boardsource/3x4/keymaps/via/keymap.c b/keyboards/boardsource/3x4/keymaps/via/keymap.c index d24d3acbf5..5aeef391a1 100644 --- a/keyboards/boardsource/3x4/keymaps/via/keymap.c +++ b/keyboards/boardsource/3x4/keymaps/via/keymap.c @@ -1,25 +1,26 @@ +// Copyright 2022 @gwillad +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - LAYOUT( - KC_0, KC_1, KC_4, KC_7, - KC_ENT, KC_2, KC_5, KC_8, - MO(1), KC_3, KC_6, KC_9 - ), - LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT - ), - LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) + [0] = LAYOUT( + KC_0, KC_1, KC_4, KC_7, + KC_ENT, KC_2, KC_5, KC_8, + MO(1), KC_3, KC_6, KC_9 + ), + [1] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, QK_BOOT + ), + [2] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) }; diff --git a/keyboards/boardsource/3x4/keymaps/via/readme.md b/keyboards/boardsource/3x4/keymaps/via/readme.md deleted file mode 100644 index c68eb9cf5a..0000000000 --- a/keyboards/boardsource/3x4/keymaps/via/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# The via keymap for boardsource 3x4 macropad - -This folder contains the [VIA](https://caniusevia.com/) configuration for the boardsource 3x4 macropad - -Maintained by: [gwillad](https://github.com/gwillad) diff --git a/keyboards/boardsource/3x4/rules.mk b/keyboards/boardsource/3x4/rules.mk index 3915b035eb..6e7633bfe0 100644 --- a/keyboards/boardsource/3x4/rules.mk +++ b/keyboards/boardsource/3x4/rules.mk @@ -1,17 +1 @@ -# 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 -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output +# This file intentionally left blank From 5a126e1a74746210492dda36b10dabdf34d90836 Mon Sep 17 00:00:00 2001 From: Vicktor Hutama Date: Wed, 13 Jul 2022 11:58:31 +0700 Subject: [PATCH 24/69] [Keyboard] Add Runes Skjoldr (#17305) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/runes/skjoldr/config.h | 101 ++++++++++++++++++ keyboards/runes/skjoldr/info.json | 74 +++++++++++++ .../runes/skjoldr/keymaps/default/keymap.c | 54 ++++++++++ .../runes/skjoldr/keymaps/default/readme.md | 1 + keyboards/runes/skjoldr/keymaps/via/keymap.c | 54 ++++++++++ keyboards/runes/skjoldr/keymaps/via/rules.mk | 2 + keyboards/runes/skjoldr/readme.md | 23 ++++ keyboards/runes/skjoldr/rules.mk | 18 ++++ keyboards/runes/skjoldr/skjoldr.c | 17 +++ keyboards/runes/skjoldr/skjoldr.h | 41 +++++++ 10 files changed, 385 insertions(+) create mode 100644 keyboards/runes/skjoldr/config.h create mode 100644 keyboards/runes/skjoldr/info.json create mode 100644 keyboards/runes/skjoldr/keymaps/default/keymap.c create mode 100644 keyboards/runes/skjoldr/keymaps/default/readme.md create mode 100644 keyboards/runes/skjoldr/keymaps/via/keymap.c create mode 100644 keyboards/runes/skjoldr/keymaps/via/rules.mk create mode 100644 keyboards/runes/skjoldr/readme.md create mode 100644 keyboards/runes/skjoldr/rules.mk create mode 100644 keyboards/runes/skjoldr/skjoldr.c create mode 100644 keyboards/runes/skjoldr/skjoldr.h diff --git a/keyboards/runes/skjoldr/config.h b/keyboards/runes/skjoldr/config.h new file mode 100644 index 0000000000..5e605792c7 --- /dev/null +++ b/keyboards/runes/skjoldr/config.h @@ -0,0 +1,101 @@ +/* +Copyright 2021 Vicktor + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x726E +#define PRODUCT_ID 0x736B +#define DEVICE_VER 0x0001 +#define MANUFACTURER Runes +#define PRODUCT Skjöldr + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D6, D7, B4, B5, B0 } +#define MATRIX_COL_PINS { B7, D0, D1, D2, D3, B3, E6, D5, F7, F6, F5, F4, F1, F0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + +/* 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/runes/skjoldr/info.json b/keyboards/runes/skjoldr/info.json new file mode 100644 index 0000000000..dbf4091fa9 --- /dev/null +++ b/keyboards/runes/skjoldr/info.json @@ -0,0 +1,74 @@ +{ + "keyboard_name": "Runes Skjöldr", + "url": "https://www.runes.id", + "maintainer": "Vicktor", + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "K00", "x": 0, "y": 0}, + {"label": "K10", "x": 1, "y": 0}, + {"label": "K20", "x": 2, "y": 0}, + {"label": "K30", "x": 3, "y": 0}, + {"label": "K40", "x": 4, "y": 0}, + {"label": "K50", "x": 5, "y": 0}, + {"label": "K60", "x": 6, "y": 0}, + {"label": "K70", "x": 7, "y": 0}, + {"label": "K80", "x": 8, "y": 0}, + {"label": "K90", "x": 9, "y": 0}, + {"label": "K100", "x": 10, "y": 0}, + {"label": "K110", "x": 11, "y": 0}, + {"label": "K120", "x": 12, "y": 0}, + {"label": "K130", "x": 13, "y": 0}, + {"label": "K01", "x": 0, "y": 1}, + {"label": "K11", "x": 1, "y": 1}, + {"label": "K21", "x": 2, "y": 1}, + {"label": "K31", "x": 3, "y": 1}, + {"label": "K41", "x": 4, "y": 1}, + {"label": "K51", "x": 5, "y": 1}, + {"label": "K61", "x": 6, "y": 1}, + {"label": "K71", "x": 7, "y": 1}, + {"label": "K81", "x": 8, "y": 1}, + {"label": "K91", "x": 9, "y": 1}, + {"label": "K101", "x": 10, "y": 1}, + {"label": "K111", "x": 11, "y": 1}, + {"label": "K121", "x": 12, "y": 1}, + {"label": "K131", "x": 13, "y": 1}, + {"label": "K02", "x": 0, "y": 2}, + {"label": "K12", "x": 1, "y": 2}, + {"label": "K22", "x": 2, "y": 2}, + {"label": "K32", "x": 3, "y": 2}, + {"label": "K42", "x": 4, "y": 2}, + {"label": "K52", "x": 5, "y": 2}, + {"label": "K62", "x": 6, "y": 2}, + {"label": "K72", "x": 7, "y": 2}, + {"label": "K82", "x": 8, "y": 2}, + {"label": "K92", "x": 9, "y": 2}, + {"label": "K102", "x": 10, "y": 2}, + {"label": "K112", "x": 11, "y": 2}, + {"label": "K122", "x": 12, "y": 2}, + {"label": "K03", "x": 0, "y": 3}, + {"label": "K13", "x": 1, "y": 3}, + {"label": "K23", "x": 2, "y": 3}, + {"label": "K33", "x": 3, "y": 3}, + {"label": "K43", "x": 4, "y": 3}, + {"label": "K53", "x": 5, "y": 3}, + {"label": "K63", "x": 6, "y": 3}, + {"label": "K73", "x": 7, "y": 3}, + {"label": "K83", "x": 8, "y": 3}, + {"label": "K93", "x": 9, "y": 3}, + {"label": "K103", "x": 10, "y": 3}, + {"label": "K113", "x": 12, "y": 3}, + {"label": "K123", "x": 13, "y": 3}, + {"label": "K04", "x": 0, "y": 4}, + {"label": "K14", "x": 1, "y": 4}, + {"label": "K24", "x": 2, "y": 4}, + {"label": "K34", "x": 5, "y": 4}, + {"label": "K44", "x": 9, "y": 4}, + {"label": "K54", "x": 10, "y": 4}, + {"label": "K64", "x": 11, "y": 4}, + {"label": "K74", "x": 12, "y": 4}, + {"label": "K84", "x": 13, "y": 4} + ] + } + } +} diff --git a/keyboards/runes/skjoldr/keymaps/default/keymap.c b/keyboards/runes/skjoldr/keymaps/default/keymap.c new file mode 100644 index 0000000000..72f85fde4b --- /dev/null +++ b/keyboards/runes/skjoldr/keymaps/default/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2021 Vicktor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _DOUBLE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, 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_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [_LOWER] = LAYOUT( + 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, QK_BOOTLOADER, + KC_TRNS, KC_PGUP, KC_HOME, KC_INS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_END, KC_PAUSE, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PSCR, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MSTP, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS), + + [_RAISE] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_DOUBLE] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; \ No newline at end of file diff --git a/keyboards/runes/skjoldr/keymaps/default/readme.md b/keyboards/runes/skjoldr/keymaps/default/readme.md new file mode 100644 index 0000000000..24f28db1e9 --- /dev/null +++ b/keyboards/runes/skjoldr/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Skjoldr \ No newline at end of file diff --git a/keyboards/runes/skjoldr/keymaps/via/keymap.c b/keyboards/runes/skjoldr/keymaps/via/keymap.c new file mode 100644 index 0000000000..72f9fa237b --- /dev/null +++ b/keyboards/runes/skjoldr/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2021 Vicktor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _DOUBLE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, 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_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [_LOWER] = LAYOUT( + 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, QK_BOOTLOADER, + KC_TRNS, KC_PGUP, KC_HOME, KC_INS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_END, KC_PAUSE, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PSCR, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MSTP, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS), + + [_RAISE] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_DOUBLE] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/runes/skjoldr/keymaps/via/rules.mk b/keyboards/runes/skjoldr/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/runes/skjoldr/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/runes/skjoldr/readme.md b/keyboards/runes/skjoldr/readme.md new file mode 100644 index 0000000000..96adf5f4ab --- /dev/null +++ b/keyboards/runes/skjoldr/readme.md @@ -0,0 +1,23 @@ +# Skjöldr + +![Skjöldr](https://i.imgur.com/HtRqhxDh.jpg) + +Skjöldr [/ˈskjɒldr̩/] (Old Norse: Shield) + +60% keyboard with arrow keys based on atmega32u4 mcu. + +* Keyboard Maintainer: [Vicktor](https://github.com/vicktorhu) +* Hardware Supported: atmega32u4 +* Hardware Availability: [Website](https://www.runes.id) -- Currently Indonesia only + +Reset the keyboard with **FN** + **Backspace** or by pressing the reset button on the PCB. + +Make example for this keyboard (after setting up your build environment): + + make runes/skjoldr:default + +Flashing example for this keyboard: + + make runes/skjoldr:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/runes/skjoldr/rules.mk b/keyboards/runes/skjoldr/rules.mk new file mode 100644 index 0000000000..286d30d678 --- /dev/null +++ b/keyboards/runes/skjoldr/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 = 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 diff --git a/keyboards/runes/skjoldr/skjoldr.c b/keyboards/runes/skjoldr/skjoldr.c new file mode 100644 index 0000000000..2a8f003fc4 --- /dev/null +++ b/keyboards/runes/skjoldr/skjoldr.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Vicktor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "skjoldr.h" diff --git a/keyboards/runes/skjoldr/skjoldr.h b/keyboards/runes/skjoldr/skjoldr.h new file mode 100644 index 0000000000..018b58ea7e --- /dev/null +++ b/keyboards/runes/skjoldr/skjoldr.h @@ -0,0 +1,41 @@ +/* Copyright 2021 Vicktor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K10, K20, K30, K40, K50, K60, K70, K80, K90, KA0, KB0, KC0, KD0, \ + K01, K11, K21, K31, K41, K51, K61, K71, K81, K91, KA1, KB1, KC1, KD1, \ + K02, K12, K22, K32, K42, K52, K62, K72, K82, K92, KA2, KB2, KC2, \ + K03, K13, K23, K33, K43, K53, K63, K73, K83, K93, KA3, KC3, KD3, \ + K04, K14, K24, K54, K94, KA4, KB4, KC4, KD4 \ +) { \ + {K00, K10, K20, K30, K40, K50, K60, K70, K80, K90, KA0, KB0, KC0, KD0 }, \ + {K01, K11, K21, K31, K41, K51, K61, K71, K81, K91, KA1, KB1, KC1, KD1 }, \ + {K02, K12, K22, K32, K42, K52, K62, K72, K82, K92, KA2, KB2, KC2, KC_NO }, \ + {K03, K13, K23, K33, K43, K53, K63, K73, K83, K93, KA3, KC_NO, KC3, KD3 }, \ + {K04, K14, K24, KC_NO, KC_NO, K54, KC_NO, KC_NO, KC_NO, K94, KA4, KB4, KC4, KD4 } \ +} \ No newline at end of file From b99ccd4f064e15c7ea94184986e396603bfa1dc2 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Tue, 12 Jul 2022 23:18:53 -0600 Subject: [PATCH 25/69] [Keyboard] boardsource/beiwagon data driven (#17631) --- keyboards/boardsource/beiwagon/beiwagon.c | 38 ------ keyboards/boardsource/beiwagon/beiwagon.h | 32 ----- keyboards/boardsource/beiwagon/config.h | 117 +----------------- keyboards/boardsource/beiwagon/info.json | 84 +++++++++---- .../beiwagon/keymaps/default/keymap.c | 13 +- .../beiwagon/keymaps/default/readme.md | 1 - .../boardsource/beiwagon/keymaps/via/keymap.c | 25 ++-- .../beiwagon/keymaps/via/readme.md | 1 - keyboards/boardsource/beiwagon/rules.mk | 19 --- 9 files changed, 81 insertions(+), 249 deletions(-) delete mode 100644 keyboards/boardsource/beiwagon/beiwagon.c delete mode 100644 keyboards/boardsource/beiwagon/beiwagon.h delete mode 100644 keyboards/boardsource/beiwagon/keymaps/default/readme.md delete mode 100644 keyboards/boardsource/beiwagon/keymaps/via/readme.md diff --git a/keyboards/boardsource/beiwagon/beiwagon.c b/keyboards/boardsource/beiwagon/beiwagon.c deleted file mode 100644 index f4ba170e6e..0000000000 --- a/keyboards/boardsource/beiwagon/beiwagon.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "beiwagon.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - {7,8,9}, - {10,11,12}, - {13,14,15}, - {16,17,18} -}, { - {2, 0}, {1, 0}, {0, 0}, - {2, 1}, {1, 1}, {0, 1}, - {2, 2}, {1, 2}, {0, 2}, - {2, 3}, {1, 3}, {0, 3}, -}, { - 2, 2, 2, 2, 2, 2, - 1, 1, 1, - 1, 4, 1, - 1, 4, 1, - 1, 1, 1 - -} }; -#endif - diff --git a/keyboards/boardsource/beiwagon/beiwagon.h b/keyboards/boardsource/beiwagon/beiwagon.h deleted file mode 100644 index ed5d516529..0000000000 --- a/keyboards/boardsource/beiwagon/beiwagon.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -#define LAYOUT( \ - K00, K01, K02, \ - K10, K11, K12, \ - K20, K21, K22, \ - K30, K31, K32\ - ) { \ - {K00, K01, K02 }, \ - {K10, K11, K12 }, \ - {K20, K21, K22 }, \ - {K30, K31, K32 } \ - } - diff --git a/keyboards/boardsource/beiwagon/config.h b/keyboards/boardsource/beiwagon/config.h index 72386c4236..6ce8d2d420 100644 --- a/keyboards/boardsource/beiwagon/config.h +++ b/keyboards/boardsource/beiwagon/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Boardsource +Copyright 2022 Boardsource This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,62 +16,18 @@ along with this program. If not, see . */ #pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 -#define PRODUCT_ID 0x0066 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Boardsource -#define PRODUCT Beiwagon - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 3 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS {B0, B1, B2, B3} -#define MATRIX_COL_PINS {B5,B6,B7} -#define UNUSED_PINS - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -#define BACKLIGHT_BREATHING -#define RGBLIGHT_ANIMATIONS #define RGB_DI_PIN C6 -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 -// 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 DRIVER_LED_TOTAL 18 #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 @@ -85,81 +41,12 @@ along with this program. If not, see . #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 -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 6 // Number of LEDs -#endif - -#define DRIVER_LED_TOTAL 22 - -/* 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/boardsource/beiwagon/info.json b/keyboards/boardsource/beiwagon/info.json index 6f7518b858..acd262f14c 100644 --- a/keyboards/boardsource/beiwagon/info.json +++ b/keyboards/boardsource/beiwagon/info.json @@ -1,26 +1,64 @@ { - "keyboard_name": "Beiwagon", - "url": "", - "maintainer": "Boardsource", - "layouts": { - "LAYOUT": { - "layout": [ - { "label": "k00", "x": 0, "y": 0 }, - { "label": "k01", "x": 1, "y": 0 }, - { "label": "k02", "x": 2, "y": 0 }, - - { "label": "k10", "x": 0, "y": 1 }, - { "label": "k11", "x": 1, "y": 1 }, - { "label": "k12", "x": 2, "y": 1 }, - - { "label": "k20", "x": 0, "y": 2 }, - { "label": "k21", "x": 1, "y": 2 }, - { "label": "k22", "x": 2, "y": 2 }, - - { "label": "k30", "x": 0, "y": 3 }, - { "label": "k31", "x": 1, "y": 3 }, - { "label": "k32", "x": 2, "y": 3 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "Beiwagon", + "maintainer": "waffle87", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": false, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B5", "B6", "B7"], + "rows": ["B0", "B1", "B2", "B3"] + }, + "processor": "atmega32u4", + "url": "https://boardsource.xyz/store/5ffbfe2ab855550844cab109", + "usb": { + "device_version": "1.0.0", + "pid": "0x0066", + "vid": "0x4273" + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 16, "y": 38 }, + { "flags": 2, "x": 16, "y": 113 }, + { "flags": 2, "x": 16, "y": 188 }, + { "flags": 2, "x": 48, "y": 38 }, + { "flags": 2, "x": 48, "y": 113 }, + { "flags": 2, "x": 48, "y": 188 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 32, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 64, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 75 }, + { "flags": 4, "matrix": [1, 1], "x": 32, "y": 75 }, + { "flags": 4, "matrix": [1, 2], "x": 64, "y": 75 }, + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 150 }, + { "flags": 4, "matrix": [2, 1], "x": 32, "y": 150 }, + { "flags": 4, "matrix": [2, 2], "x": 64, "y": 150 }, + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 224 }, + { "flags": 4, "matrix": [3, 1], "x": 32, "y": 224 }, + { "flags": 4, "matrix": [3, 2], "x": 64, "y": 224 } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 2 }, + { "matrix": [3, 1], "x": 1, "y": 2 }, + { "matrix": [3, 2], "x": 2, "y": 2 } + ] } + } } diff --git a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c index 396a0c7207..584ada4830 100644 --- a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c +++ b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,30 +18,23 @@ enum layers { _MAIN, - _RAISE, - _LOWER, + _RAISE }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT( KC_7, KC_8, KC_9, KC_4, KC_5, KC_6, KC_1, KC_2, KC_3, KC_0, KC_PENT,RAISE ), - [_RAISE] = LAYOUT( KC_7, KC_8, RGB_TOG, KC_4, KC_5, RGB_MOD, KC_1, KC_2, KC_3, - KC_0, KC_PENT,KC_TRNS - + KC_0, KC_PENT,_______ ) - }; - diff --git a/keyboards/boardsource/beiwagon/keymaps/default/readme.md b/keyboards/boardsource/beiwagon/keymaps/default/readme.md deleted file mode 100644 index 95f466aa83..0000000000 --- a/keyboards/boardsource/beiwagon/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for Beiwagon diff --git a/keyboards/boardsource/beiwagon/keymaps/via/keymap.c b/keyboards/boardsource/beiwagon/keymaps/via/keymap.c index 396a0c7207..ca068adab4 100644 --- a/keyboards/boardsource/beiwagon/keymaps/via/keymap.c +++ b/keyboards/boardsource/beiwagon/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,30 +18,35 @@ enum layers { _MAIN, - _RAISE, - _LOWER, + _RAISE }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT( KC_7, KC_8, KC_9, KC_4, KC_5, KC_6, KC_1, KC_2, KC_3, KC_0, KC_PENT,RAISE ), - [_RAISE] = LAYOUT( KC_7, KC_8, RGB_TOG, KC_4, KC_5, RGB_MOD, KC_1, KC_2, KC_3, - KC_0, KC_PENT,KC_TRNS - + KC_0, KC_PENT,_______ + ), + [2] = LAYOUT( + _______, _______, _______, + _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, + _______, _______, _______, + _______, _______, _______, + _______, _______, _______ ) - }; - diff --git a/keyboards/boardsource/beiwagon/keymaps/via/readme.md b/keyboards/boardsource/beiwagon/keymaps/via/readme.md deleted file mode 100644 index f1b294c22a..0000000000 --- a/keyboards/boardsource/beiwagon/keymaps/via/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The via keymap for Beiwagon diff --git a/keyboards/boardsource/beiwagon/rules.mk b/keyboards/boardsource/beiwagon/rules.mk index 612dcfcfb6..32afd21635 100644 --- a/keyboards/boardsource/beiwagon/rules.mk +++ b/keyboards/boardsource/beiwagon/rules.mk @@ -1,20 +1 @@ -# 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 = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 From f80bb4a517c437ec554ba7ce68c1c0c0b7250c11 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Tue, 12 Jul 2022 23:19:17 -0600 Subject: [PATCH 26/69] [Keyboard] boardsource/technik_s data driven (#17636) --- keyboards/boardsource/technik_s/config.h | 116 +---------- keyboards/boardsource/technik_s/info.json | 185 +++++++++++++----- .../technik_s/keymaps/default/keymap.c | 26 +-- .../technik_s/keymaps/default/readme.md | 1 - .../technik_s/keymaps/via/keymap.c | 32 +-- .../technik_s/keymaps/via/readme.md | 1 - keyboards/boardsource/technik_s/rules.mk | 20 -- keyboards/boardsource/technik_s/technik_s.c | 38 ---- keyboards/boardsource/technik_s/technik_s.h | 31 --- 9 files changed, 160 insertions(+), 290 deletions(-) delete mode 100644 keyboards/boardsource/technik_s/keymaps/default/readme.md delete mode 100644 keyboards/boardsource/technik_s/keymaps/via/readme.md delete mode 100644 keyboards/boardsource/technik_s/technik_s.c delete mode 100644 keyboards/boardsource/technik_s/technik_s.h diff --git a/keyboards/boardsource/technik_s/config.h b/keyboards/boardsource/technik_s/config.h index a34ab1577a..2141a2a0a9 100644 --- a/keyboards/boardsource/technik_s/config.h +++ b/keyboards/boardsource/technik_s/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Boardsource +Copyright 2022 Boardsource This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,62 +16,19 @@ along with this program. If not, see . */ #pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 -#define PRODUCT_ID 0x0083 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Boardsource -#define PRODUCT Technik-S - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS {B0, B1, B2, B3} -#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6} -#define UNUSED_PINS - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -#define BACKLIGHT_BREATHING -#define RGBLIGHT_ANIMATIONS #define RGB_DI_PIN C6 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 -// 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 DRIVER_LED_TOTAL 55 #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 @@ -85,81 +42,12 @@ along with this program. If not, see . #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 -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 10 // Number of LEDs -#endif - -#define DRIVER_LED_TOTAL 55 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/technik_s/info.json b/keyboards/boardsource/technik_s/info.json index 938501b613..6593845e83 100644 --- a/keyboards/boardsource/technik_s/info.json +++ b/keyboards/boardsource/technik_s/info.json @@ -1,56 +1,135 @@ { - "keyboard_name": "Technik-S", - "url": "", - "maintainer": "Boardsource", - "layouts": { - "LAYOUT": { - "layout": [ - { "label": "1", "x": 0, "y": 0 }, - { "label": "2", "x": 1, "y": 0 }, - { "label": "3", "x": 2, "y": 0 }, - { "label": "4", "x": 3, "y": 0 }, - { "label": "5", "x": 4, "y": 0 }, - { "label": "6", "x": 5, "y": 0 }, - { "label": "7", "x": 6, "y": 0 }, - { "label": "8", "x": 7, "y": 0 }, - { "label": "9", "x": 8, "y": 0 }, - { "label": "10", "x": 9, "y": 0 }, - { "label": "11", "x": 10, "y": 0 }, - { "label": "12", "x": 11, "y": 0 }, - { "label": "13", "x": 0, "y": 1, "w": 1.5 }, - { "label": "14", "x": 1.5, "y": 1 }, - { "label": "15", "x": 2.5, "y": 1 }, - { "label": "16", "x": 3.5, "y": 1 }, - { "label": "17", "x": 4.5, "y": 1 }, - { "label": "18", "x": 5.5, "y": 1 }, - { "label": "19", "x": 6.5, "y": 1 }, - { "label": "20", "x": 7.5, "y": 1 }, - { "label": "21", "x": 8.5, "y": 1 }, - { "label": "22", "x": 9.5, "y": 1 }, - { "label": "23", "x": 10.5, "y": 1, "w": 1.5 }, - { "label": "24", "x": 0, "y": 2 }, - { "label": "25", "x": 1, "y": 2 }, - { "label": "26", "x": 2, "y": 2 }, - { "label": "27", "x": 3, "y": 2 }, - { "label": "28", "x": 4, "y": 2 }, - { "label": "29", "x": 5, "y": 2 }, - { "label": "30", "x": 6, "y": 2 }, - { "label": "31", "x": 7, "y": 2 }, - { "label": "32", "x": 8, "y": 2 }, - { "label": "33", "x": 9, "y": 2 }, - { "label": "34", "x": 10, "y": 2 }, - { "label": "35", "x": 11, "y": 2 }, - { "label": "36", "x": 0, "y": 3 }, - { "label": "37", "x": 1, "y": 3 }, - { "label": "38", "x": 2, "y": 3 }, - { "label": "39", "x": 3, "y": 3, "w": 1.5 }, - { "label": "40", "x": 4.5, "y": 3, "w": 1.5 }, - { "label": "41", "x": 6, "y": 3, "w": 1.5 }, - { "label": "42", "x": 7.5, "y": 3, "w": 1.5 }, - { "label": "43", "x": 9, "y": 3 }, - { "label": "44", "x": 10, "y": 3 }, - { "label": "45", "x": 11, "y": 3 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "Technik-S", + "maintainer": "waffle87", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B5", "B6", "B7", "F5", "C7", "D0", "D1", "D2", "D3", "D4", "D5", "D6"], + "rows": ["B0", "B1", "B2", "B3"] + }, + "processor": "atmega32u4", + "url": "https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2", + "usb": { + "device_version": "1.0.0", + "pid": "0x0083", + "vid": "0x4273" + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 220, "y": 17 }, + { "flags": 2, "x": 172, "y": 17 }, + { "flags": 2, "x": 112, "y": 17 }, + { "flags": 2, "x": 50, "y": 17 }, + { "flags": 2, "x": 4, "y": 17 }, + { "flags": 2, "x": 4, "y": 56 }, + { "flags": 2, "x": 50, "y": 56 }, + { "flags": 2, "x": 112, "y": 56 }, + { "flags": 2, "x": 172, "y": 56 }, + { "flags": 2, "x": 220, "y": 56 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 61, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 81, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 101, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 }, + { "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 }, + { "flags": 1, "matrix": [1, 0], "x": 10, "y": 21 }, + { "flags": 4, "matrix": [1, 2], "x": 30, "y": 21 }, + { "flags": 4, "matrix": [1, 3], "x": 51, "y": 21 }, + { "flags": 4, "matrix": [1, 4], "x": 71, "y": 21 }, + { "flags": 4, "matrix": [1, 5], "x": 91, "y": 21 }, + { "flags": 4, "matrix": [1, 6], "x": 112, "y": 21 }, + { "flags": 4, "matrix": [1, 7], "x": 132, "y": 21 }, + { "flags": 4, "matrix": [1, 8], "x": 152, "y": 21 }, + { "flags": 4, "matrix": [1, 9], "x": 173, "y": 21 }, + { "flags": 4, "matrix": [1, 10], "x": 193, "y": 21 }, + { "flags": 1, "matrix": [1, 11], "x": 214, "y": 21 }, + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "y": 42 }, + { "flags": 4, "matrix": [2, 3], "x": 61, "y": 42 }, + { "flags": 4, "matrix": [2, 4], "x": 81, "y": 42 }, + { "flags": 4, "matrix": [2, 5], "x": 101, "y": 42 }, + { "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 }, + { "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 }, + { "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 }, + { "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 }, + { "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 }, + { "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 }, + { "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [3, 1], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [3, 2], "x": 40, "y": 64 }, + { "flags": 4, "matrix": [3, 3], "x": 68, "y": 64 }, + { "flags": 4, "matrix": [3, 5], "x": 97, "y": 64 }, + { "flags": 4, "matrix": [3, 6], "x": 126, "y": 64 }, + { "flags": 4, "matrix": [3, 8], "x": 154, "y": 64 }, + { "flags": 4, "matrix": [3, 9], "x": 183, "y": 64 }, + { "flags": 4, "matrix": [3, 10], "x": 203, "y": 64 }, + { "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "matrix": [1, 11], "w": 1.5, "x": 10.5, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "w": 1.5, "x": 3, "y": 3 }, + { "matrix": [3, 5], "w": 1.5, "x": 4.5, "y": 3 }, + { "matrix": [3, 6], "w": 1.5, "x": 6, "y": 3 }, + { "matrix": [3, 8], "w": 1.5, "x": 7.5, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] } + } } diff --git a/keyboards/boardsource/technik_s/keymaps/default/keymap.c b/keyboards/boardsource/technik_s/keymaps/default/keymap.c index 1b26f6387d..00e17b15f0 100644 --- a/keyboards/boardsource/technik_s/keymaps/default/keymap.c +++ b/keyboards/boardsource/technik_s/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,32 +22,26 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT ), - [_RAISE] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, - RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, + RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD ), - [_LOWER] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD - ) - + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ) }; - diff --git a/keyboards/boardsource/technik_s/keymaps/default/readme.md b/keyboards/boardsource/technik_s/keymaps/default/readme.md deleted file mode 100644 index 0e6753504b..0000000000 --- a/keyboards/boardsource/technik_s/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for Technik-S diff --git a/keyboards/boardsource/technik_s/keymaps/via/keymap.c b/keyboards/boardsource/technik_s/keymaps/via/keymap.c index 1b26f6387d..f85b1ff186 100644 --- a/keyboards/boardsource/technik_s/keymaps/via/keymap.c +++ b/keyboards/boardsource/technik_s/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,32 +22,32 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT ), - [_RAISE] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, - RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, + RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD ), - [_LOWER] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD - ) - + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; - diff --git a/keyboards/boardsource/technik_s/keymaps/via/readme.md b/keyboards/boardsource/technik_s/keymaps/via/readme.md deleted file mode 100644 index 54e975a5aa..0000000000 --- a/keyboards/boardsource/technik_s/keymaps/via/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The via keymap for Technik-S diff --git a/keyboards/boardsource/technik_s/rules.mk b/keyboards/boardsource/technik_s/rules.mk index 33488b9d3a..32afd21635 100644 --- a/keyboards/boardsource/technik_s/rules.mk +++ b/keyboards/boardsource/technik_s/rules.mk @@ -1,21 +1 @@ -# 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 = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -LTO_ENABLE = yes diff --git a/keyboards/boardsource/technik_s/technik_s.c b/keyboards/boardsource/technik_s/technik_s.c deleted file mode 100644 index bb7245c73d..0000000000 --- a/keyboards/boardsource/technik_s/technik_s.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "technik_s.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}, - {22, NO_LED, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44}, - {45, 46, 47, 48, NO_LED, 49, 50, NO_LED, 51, 52, 53, 54} -}, { - {220, 17}, {172, 17}, {112, 17}, { 50, 17}, { 4, 17}, { 4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56}, - { 0, 0}, { 20, 0}, { 40, 0}, { 61, 0}, { 81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, - { 10, 21}, { 30, 21}, { 51, 21}, { 71, 21}, { 91, 21}, {112, 21}, {132, 21}, {152, 21}, {173, 21}, {193, 21}, {214, 21}, - { 0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, - { 0, 64}, { 20, 64}, { 40, 64}, { 68, 64}, { 97, 64}, {126, 64}, {154, 64}, {183, 64}, {203, 64}, {224, 64} -}, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 4, 4, 1, 1, 1, 1 -} }; -#endif - diff --git a/keyboards/boardsource/technik_s/technik_s.h b/keyboards/boardsource/technik_s/technik_s.h deleted file mode 100644 index 97ee9a7f5f..0000000000 --- a/keyboards/boardsource/technik_s/technik_s.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" -#define LAYOUT( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ - K12, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ - K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ - K36, K37, K38, K39, K40, K41, K42, K43, K44, K45 \ - ) { \ - {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ - {K12, KC_NO, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ - {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ - {K36, K37, K38, K39,KC_NO,K40, K41,KC_NO,K42, K43, K44, K45} \ - } - From 2271b283863a2201fb5915a6f6aa4970578588d9 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Tue, 12 Jul 2022 23:19:36 -0600 Subject: [PATCH 27/69] [Keyboard] boardsource/the_mark data driven (#17637) --- keyboards/boardsource/the_mark/config.h | 171 +--- keyboards/boardsource/the_mark/info.json | 819 +++++++++--------- .../the_mark/keymaps/default/keymap.c | 2 +- .../the_mark/keymaps/default_ansi/keymap.c | 2 +- .../default_ansi_split_bs_space/keymap.c | 2 +- .../the_mark/keymaps/default_iso/keymap.c | 2 +- .../default_iso_split_bs_space/keymap.c | 2 +- .../boardsource/the_mark/keymaps/via/keymap.c | 2 +- .../the_mark/keymaps/via/readme.md | 3 - keyboards/boardsource/the_mark/rules.mk | 21 +- keyboards/boardsource/the_mark/the_mark.c | 49 -- keyboards/boardsource/the_mark/the_mark.h | 109 --- 12 files changed, 470 insertions(+), 714 deletions(-) delete mode 100644 keyboards/boardsource/the_mark/keymaps/via/readme.md delete mode 100644 keyboards/boardsource/the_mark/the_mark.c delete mode 100644 keyboards/boardsource/the_mark/the_mark.h diff --git a/keyboards/boardsource/the_mark/config.h b/keyboards/boardsource/the_mark/config.h index 99696e5d28..61628e1821 100644 --- a/keyboards/boardsource/the_mark/config.h +++ b/keyboards/boardsource/the_mark/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Boardsource +Copyright 2022 Boardsource This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,141 +16,40 @@ along with this program. If not, see . */ #pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 // "Bs" - Boardsource -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Boardsource -#define PRODUCT The Mark65 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 16 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ - -#define MATRIX_ROW_PINS {B0, B1, B2, B3, B4} -#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6, D7,F0, F1, F4} -#define UNUSED_PINS - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW -#define RGBLIGHT_ANIMATIONS -#define RGB_DI_PIN C6 -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 24 // Number of LEDs -#define RGBLIGHT_LIMIT_VAL 200 -#endif - -/* RGB matrix support */ #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL 24 // Number of LEDs +# define DRIVER_LED_TOTAL 24 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 -# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# 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_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# 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_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 +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH #endif - -/* - * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. - */ -//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -//#define BACKLIGHT_BREATHING - -//#define RGB_DI_PIN E2 -//#ifdef RGB_DI_PIN -//# define RGBLED_NUM 16 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations enable ==*/ -//# define RGBLIGHT_ANIMATIONS -/*== or choose animations ==*/ -//# define RGBLIGHT_EFFECT_BREATHING -//# define RGBLIGHT_EFFECT_RAINBOW_MOOD -//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -//# define RGBLIGHT_EFFECT_SNAKE -//# define RGBLIGHT_EFFECT_KNIGHT -//# define RGBLIGHT_EFFECT_CHRISTMAS -//# define RGBLIGHT_EFFECT_STATIC_GRADIENT -//# define RGBLIGHT_EFFECT_RGB_TEST -//# define RGBLIGHT_EFFECT_ALTERNATING -/*== customize breathing effect ==*/ -/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ -//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 -/*==== use exp() and sin() ====*/ -//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 -//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 -//#endif - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/the_mark/info.json b/keyboards/boardsource/the_mark/info.json index 792585d12a..a0fb3de1c9 100644 --- a/keyboards/boardsource/the_mark/info.json +++ b/keyboards/boardsource/the_mark/info.json @@ -1,394 +1,431 @@ { - "keyboard_name": "The Mark: 65", - "url": "", - "maintainer": "daysgobye, Boardsource", - "layouts": { - "LAYOUT_all": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2@", "x":2, "y":0}, - {"label":"3#", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0}, - {"label":"Backspace", "x":14, "y":0}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"\\|", "x":13.5, "y":1, "w":1.5}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "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":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":1.25}, - {"label":"\\|", "x":1.25, "y":3}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":2.25}, - {"label":"Space", "x":6, "y":4, "w":1.25}, - {"label":"Space", "x":7.25, "y":4, "w":2.75}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`~", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - }, - "LAYOUT_ansi": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2@", "x":2, "y":0}, - {"label":"3#", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0, "w":2}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"\\|", "x":13.5, "y":1, "w":1.5}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "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":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":2.25}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":6.25}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`~", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - }, - "LAYOUT_ansi_split_bs_space": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2@", "x":2, "y":0}, - {"label":"3#", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0}, - {"label":"Backspace", "x":14, "y":0}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"\\|", "x":13.5, "y":1, "w":1.5}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "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":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":2.25}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":2.25}, - {"label":"Space", "x":6, "y":4, "w":1.25}, - {"label":"Space", "x":7.25, "y":4, "w":2.75}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`~", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - }, - "LAYOUT_iso": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2\"", "x":2, "y":0}, - {"label":"3\u00a3", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0, "w":2}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "x":0, "y":2, "w":1.75}, - {"label":"A", "x":1.75, "y":2}, - {"label":"S", "x":2.75, "y":2}, - {"label":"D", "x":3.75, "y":2}, - {"label":"F", "x":4.75, "y":2}, - {"label":"G", "x":5.75, "y":2}, - {"label":"H", "x":6.75, "y":2}, - {"label":"J", "x":7.75, "y":2}, - {"label":"K", "x":8.75, "y":2}, - {"label":"L", "x":9.75, "y":2}, - {"label":";:", "x":10.75, "y":2}, - {"label":"'\"", "x":11.75, "y":2}, - {"label":"#~", "x":12.75, "y":2}, - {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, - {"label":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":1.25}, - {"label":"\\|", "x":1.25, "y":3}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":6.25}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`\u00ac", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - }, - "LAYOUT_iso_split_bs_space": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2\"", "x":2, "y":0}, - {"label":"3\u00a3", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0}, - {"label":"Backspace", "x":14, "y":0}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "x":0, "y":2, "w":1.75}, - {"label":"A", "x":1.75, "y":2}, - {"label":"S", "x":2.75, "y":2}, - {"label":"D", "x":3.75, "y":2}, - {"label":"F", "x":4.75, "y":2}, - {"label":"G", "x":5.75, "y":2}, - {"label":"H", "x":6.75, "y":2}, - {"label":"J", "x":7.75, "y":2}, - {"label":"K", "x":8.75, "y":2}, - {"label":"L", "x":9.75, "y":2}, - {"label":";:", "x":10.75, "y":2}, - {"label":"'\"", "x":11.75, "y":2}, - {"label":"#~", "x":12.75, "y":2}, - {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, - {"label":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":1.25}, - {"label":"\\|", "x":1.25, "y":3}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":2.25}, - {"label":"Space", "x":6, "y":4, "w":1.25}, - {"label":"Space", "x":7.25, "y":4, "w":2.75}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`\u00ac", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "The Mark65", + "maintainer": "waffle87", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgblight": true, + "rgb_matrix": false + }, + "matrix_pins": { + "cols": ["B5", "B6", "B7", "F5", "C7", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "F0", "F1", "F4"], + "rows": ["B0", "B1", "B2", "B3", "B4"] + }, + "processor": "atmega32u4", + "url": "https://boardsource.xyz/projects/5f46409bdce98063626dcb08", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4273" + }, + "rgblight": { + "led_count": 24, + "pin": "C6", + "sleep": true, + "max_brightness": 200, + "animations": { + "all": true } + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 224, "y": 42}, + { "flags": 2, "x": 224, "y": 21}, + { "flags": 2, "x": 209, "y": 21}, + { "flags": 2, "x": 179, "y": 21}, + { "flags": 2, "x": 164, "y": 21}, + { "flags": 2, "x": 134, "y": 21}, + { "flags": 2, "x": 119, "y": 21}, + { "flags": 2, "x": 89, "y": 21}, + { "flags": 2, "x": 74, "y": 21}, + { "flags": 2, "x": 45, "y": 21}, + { "flags": 2, "x": 30, "y": 21}, + { "flags": 2, "x": 30, "y": 42}, + { "flags": 2, "x": 30, "y": 64}, + { "flags": 2, "x": 30, "y": 85}, + { "flags": 2, "x": 45, "y": 85}, + { "flags": 2, "x": 74, "y": 85}, + { "flags": 2, "x": 89, "y": 85}, + { "flags": 2, "x": 119, "y": 85}, + { "flags": 2, "x": 134, "y": 85}, + { "flags": 2, "x": 164, "y": 85}, + { "flags": 2, "x": 179, "y": 85}, + { "flags": 2, "x": 209, "y": 85}, + { "flags": 2, "x": 224, "y": 85}, + { "flags": 2, "x": 224, "y": 64} + ] + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + { "matrix": [0, 15], "x": 15, "y": 0 }, + { "matrix": [1, 0], "x": 16, "y": 0 }, + { "matrix": [1, 2], "x": 17, "y": 0 }, + { "matrix": [1, 3], "x": 18, "y": 0 }, + { "matrix": [1, 4], "x": 19, "y": 0 }, + { "matrix": [1, 5], "x": 20, "y": 0 }, + { "matrix": [1, 6], "x": 21, "y": 0 }, + { "matrix": [1, 7], "x": 22, "y": 0 }, + { "matrix": [1, 8], "x": 23, "y": 0 }, + { "matrix": [1, 9], "x": 24, "y": 0 }, + { "matrix": [1, 10], "x": 25, "y": 0 }, + { "matrix": [1, 11], "x": 26, "y": 0 }, + { "matrix": [1, 12], "x": 27, "y": 0 }, + { "matrix": [1, 13], "x": 28, "y": 0 }, + { "matrix": [1, 14], "x": 29, "y": 0 }, + { "matrix": [1, 15], "x": 30, "y": 0 }, + { "matrix": [2, 0], "x": 31, "y": 0 }, + { "matrix": [2, 2], "x": 32, "y": 0 }, + { "matrix": [2, 3], "x": 33, "y": 0 }, + { "matrix": [2, 4], "x": 34, "y": 0 }, + { "matrix": [2, 5], "x": 35, "y": 0 }, + { "matrix": [2, 6], "x": 36, "y": 0 }, + { "matrix": [2, 7], "x": 37, "y": 0 }, + { "matrix": [2, 8], "x": 38, "y": 0 }, + { "matrix": [2, 9], "x": 39, "y": 0 }, + { "matrix": [2, 10], "x": 40, "y": 0 }, + { "matrix": [2, 11], "x": 41, "y": 0 }, + { "matrix": [2, 12], "x": 42, "y": 0 }, + { "matrix": [2, 13], "x": 43, "y": 0 }, + { "matrix": [2, 15], "x": 44, "y": 0 }, + { "matrix": [3, 1], "x": 45, "y": 0 }, + { "matrix": [3, 0], "x": 46, "y": 0 }, + { "matrix": [3, 2], "x": 47, "y": 0 }, + { "matrix": [3, 3], "x": 48, "y": 0 }, + { "matrix": [3, 4], "x": 49, "y": 0 }, + { "matrix": [3, 5], "x": 50, "y": 0 }, + { "matrix": [3, 6], "x": 51, "y": 0 }, + { "matrix": [3, 7], "x": 52, "y": 0 }, + { "matrix": [3, 8], "x": 53, "y": 0 }, + { "matrix": [3, 9], "x": 54, "y": 0 }, + { "matrix": [3, 10], "x": 55, "y": 0 }, + { "matrix": [3, 11], "x": 56, "y": 0 }, + { "matrix": [3, 13], "x": 57, "y": 0 }, + { "matrix": [3, 14], "x": 58, "y": 0 }, + { "matrix": [4, 0], "x": 59, "y": 0 }, + { "matrix": [4, 1], "x": 60, "y": 0 }, + { "matrix": [4, 3], "x": 61, "y": 0 }, + { "matrix": [4, 4], "x": 62, "y": 0 }, + { "matrix": [4, 6], "x": 63, "y": 0 }, + { "matrix": [4, 8], "x": 64, "y": 0 }, + { "matrix": [4, 10], "x": 65, "y": 0 }, + { "matrix": [4, 11], "x": 66, "y": 0 }, + { "matrix": [4, 12], "x": 67, "y": 0 }, + { "matrix": [4, 13], "x": 68, "y": 0 }, + { "matrix": [4, 14], "x": 69, "y": 0 }, + { "matrix": [4, 15], "x": 70, "y": 0 } + ] + }, + "LAYOUT_ansi": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 15], "x": 14, "y": 0 }, + { "matrix": [1, 0], "x": 15, "y": 0 }, + { "matrix": [1, 2], "x": 16, "y": 0 }, + { "matrix": [1, 3], "x": 17, "y": 0 }, + { "matrix": [1, 4], "x": 18, "y": 0 }, + { "matrix": [1, 5], "x": 19, "y": 0 }, + { "matrix": [1, 6], "x": 20, "y": 0 }, + { "matrix": [1, 7], "x": 21, "y": 0 }, + { "matrix": [1, 8], "x": 22, "y": 0 }, + { "matrix": [1, 9], "x": 23, "y": 0 }, + { "matrix": [1, 10], "x": 24, "y": 0 }, + { "matrix": [1, 11], "x": 25, "y": 0 }, + { "matrix": [1, 12], "x": 26, "y": 0 }, + { "matrix": [1, 13], "x": 27, "y": 0 }, + { "matrix": [1, 14], "x": 28, "y": 0 }, + { "matrix": [1, 15], "x": 29, "y": 0 }, + { "matrix": [2, 0], "x": 30, "y": 0 }, + { "matrix": [2, 2], "x": 31, "y": 0 }, + { "matrix": [2, 3], "x": 32, "y": 0 }, + { "matrix": [2, 4], "x": 33, "y": 0 }, + { "matrix": [2, 5], "x": 34, "y": 0 }, + { "matrix": [2, 6], "x": 35, "y": 0 }, + { "matrix": [2, 7], "x": 36, "y": 0 }, + { "matrix": [2, 8], "x": 37, "y": 0 }, + { "matrix": [2, 9], "x": 38, "y": 0 }, + { "matrix": [2, 10], "x": 39, "y": 0 }, + { "matrix": [2, 11], "x": 40, "y": 0 }, + { "matrix": [2, 12], "x": 41, "y": 0 }, + { "matrix": [2, 13], "x": 42, "y": 0 }, + { "matrix": [2, 15], "x": 43, "y": 0 }, + { "matrix": [3, 1], "x": 44, "y": 0 }, + { "matrix": [3, 2], "x": 45, "y": 0 }, + { "matrix": [3, 3], "x": 46, "y": 0 }, + { "matrix": [3, 4], "x": 47, "y": 0 }, + { "matrix": [3, 5], "x": 48, "y": 0 }, + { "matrix": [3, 6], "x": 49, "y": 0 }, + { "matrix": [3, 7], "x": 50, "y": 0 }, + { "matrix": [3, 8], "x": 51, "y": 0 }, + { "matrix": [3, 9], "x": 52, "y": 0 }, + { "matrix": [3, 10], "x": 53, "y": 0 }, + { "matrix": [3, 11], "x": 54, "y": 0 }, + { "matrix": [3, 13], "x": 55, "y": 0 }, + { "matrix": [3, 14], "x": 56, "y": 0 }, + { "matrix": [4, 0], "x": 57, "y": 0 }, + { "matrix": [4, 1], "x": 58, "y": 0 }, + { "matrix": [4, 3], "x": 59, "y": 0 }, + { "matrix": [4, 6], "x": 60, "y": 0 }, + { "matrix": [4, 10], "x": 61, "y": 0 }, + { "matrix": [4, 11], "x": 62, "y": 0 }, + { "matrix": [4, 12], "x": 63, "y": 0 }, + { "matrix": [4, 13], "x": 64, "y": 0 }, + { "matrix": [4, 14], "x": 65, "y": 0 }, + { "matrix": [4, 15], "x": 66, "y": 0 } + ] + }, + "LAYOUT_ansi_split_bs_space": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + { "matrix": [0, 15], "x": 15, "y": 0 }, + { "matrix": [1, 0], "x": 16, "y": 0 }, + { "matrix": [1, 2], "x": 17, "y": 0 }, + { "matrix": [1, 3], "x": 18, "y": 0 }, + { "matrix": [1, 4], "x": 19, "y": 0 }, + { "matrix": [1, 5], "x": 20, "y": 0 }, + { "matrix": [1, 6], "x": 21, "y": 0 }, + { "matrix": [1, 7], "x": 22, "y": 0 }, + { "matrix": [1, 8], "x": 23, "y": 0 }, + { "matrix": [1, 9], "x": 24, "y": 0 }, + { "matrix": [1, 10], "x": 25, "y": 0 }, + { "matrix": [1, 11], "x": 26, "y": 0 }, + { "matrix": [1, 12], "x": 27, "y": 0 }, + { "matrix": [1, 13], "x": 28, "y": 0 }, + { "matrix": [1, 14], "x": 29, "y": 0 }, + { "matrix": [1, 15], "x": 30, "y": 0 }, + { "matrix": [2, 0], "x": 31, "y": 0 }, + { "matrix": [2, 2], "x": 32, "y": 0 }, + { "matrix": [2, 3], "x": 33, "y": 0 }, + { "matrix": [2, 4], "x": 34, "y": 0 }, + { "matrix": [2, 5], "x": 35, "y": 0 }, + { "matrix": [2, 6], "x": 36, "y": 0 }, + { "matrix": [2, 7], "x": 37, "y": 0 }, + { "matrix": [2, 8], "x": 38, "y": 0 }, + { "matrix": [2, 9], "x": 39, "y": 0 }, + { "matrix": [2, 10], "x": 40, "y": 0 }, + { "matrix": [2, 11], "x": 41, "y": 0 }, + { "matrix": [2, 12], "x": 42, "y": 0 }, + { "matrix": [2, 13], "x": 43, "y": 0 }, + { "matrix": [2, 15], "x": 44, "y": 0 }, + { "matrix": [3, 1], "x": 45, "y": 0 }, + { "matrix": [3, 2], "x": 46, "y": 0 }, + { "matrix": [3, 3], "x": 47, "y": 0 }, + { "matrix": [3, 4], "x": 48, "y": 0 }, + { "matrix": [3, 5], "x": 49, "y": 0 }, + { "matrix": [3, 6], "x": 50, "y": 0 }, + { "matrix": [3, 7], "x": 51, "y": 0 }, + { "matrix": [3, 8], "x": 52, "y": 0 }, + { "matrix": [3, 9], "x": 53, "y": 0 }, + { "matrix": [3, 10], "x": 54, "y": 0 }, + { "matrix": [3, 11], "x": 55, "y": 0 }, + { "matrix": [3, 13], "x": 56, "y": 0 }, + { "matrix": [3, 14], "x": 57, "y": 0 }, + { "matrix": [4, 0], "x": 58, "y": 0 }, + { "matrix": [4, 1], "x": 59, "y": 0 }, + { "matrix": [4, 3], "x": 60, "y": 0 }, + { "matrix": [4, 4], "x": 61, "y": 0 }, + { "matrix": [4, 6], "x": 62, "y": 0 }, + { "matrix": [4, 8], "x": 63, "y": 0 }, + { "matrix": [4, 10], "x": 64, "y": 0 }, + { "matrix": [4, 11], "x": 65, "y": 0 }, + { "matrix": [4, 12], "x": 66, "y": 0 }, + { "matrix": [4, 13], "x": 67, "y": 0 }, + { "matrix": [4, 14], "x": 68, "y": 0 }, + { "matrix": [4, 15], "x": 69, "y": 0 } + ] + }, + "LAYOUT_iso": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 15], "x": 14, "y": 0 }, + { "matrix": [1, 0], "x": 15, "y": 0 }, + { "matrix": [1, 2], "x": 16, "y": 0 }, + { "matrix": [1, 3], "x": 17, "y": 0 }, + { "matrix": [1, 4], "x": 18, "y": 0 }, + { "matrix": [1, 5], "x": 19, "y": 0 }, + { "matrix": [1, 6], "x": 20, "y": 0 }, + { "matrix": [1, 7], "x": 21, "y": 0 }, + { "matrix": [1, 8], "x": 22, "y": 0 }, + { "matrix": [1, 9], "x": 23, "y": 0 }, + { "matrix": [1, 10], "x": 24, "y": 0 }, + { "matrix": [1, 11], "x": 25, "y": 0 }, + { "matrix": [1, 12], "x": 26, "y": 0 }, + { "matrix": [1, 13], "x": 27, "y": 0 }, + { "matrix": [1, 15], "x": 28, "y": 0 }, + { "matrix": [2, 0], "x": 29, "y": 0 }, + { "matrix": [2, 2], "x": 30, "y": 0 }, + { "matrix": [2, 3], "x": 31, "y": 0 }, + { "matrix": [2, 4], "x": 32, "y": 0 }, + { "matrix": [2, 5], "x": 33, "y": 0 }, + { "matrix": [2, 6], "x": 34, "y": 0 }, + { "matrix": [2, 7], "x": 35, "y": 0 }, + { "matrix": [2, 8], "x": 36, "y": 0 }, + { "matrix": [2, 9], "x": 37, "y": 0 }, + { "matrix": [2, 10], "x": 38, "y": 0 }, + { "matrix": [2, 11], "x": 39, "y": 0 }, + { "matrix": [2, 12], "x": 40, "y": 0 }, + { "matrix": [1, 14], "x": 41, "y": 0 }, + { "matrix": [2, 13], "x": 42, "y": 0 }, + { "matrix": [2, 15], "x": 43, "y": 0 }, + { "matrix": [3, 1], "x": 44, "y": 0 }, + { "matrix": [3, 0], "x": 45, "y": 0 }, + { "matrix": [3, 2], "x": 46, "y": 0 }, + { "matrix": [3, 3], "x": 47, "y": 0 }, + { "matrix": [3, 4], "x": 48, "y": 0 }, + { "matrix": [3, 5], "x": 49, "y": 0 }, + { "matrix": [3, 6], "x": 50, "y": 0 }, + { "matrix": [3, 7], "x": 51, "y": 0 }, + { "matrix": [3, 8], "x": 52, "y": 0 }, + { "matrix": [3, 9], "x": 53, "y": 0 }, + { "matrix": [3, 10], "x": 54, "y": 0 }, + { "matrix": [3, 11], "x": 55, "y": 0 }, + { "matrix": [3, 13], "x": 56, "y": 0 }, + { "matrix": [3, 14], "x": 57, "y": 0 }, + { "matrix": [4, 0], "x": 58, "y": 0 }, + { "matrix": [4, 1], "x": 59, "y": 0 }, + { "matrix": [4, 3], "x": 60, "y": 0 }, + { "matrix": [4, 6], "x": 61, "y": 0 }, + { "matrix": [4, 10], "x": 62, "y": 0 }, + { "matrix": [4, 11], "x": 63, "y": 0 }, + { "matrix": [4, 12], "x": 64, "y": 0 }, + { "matrix": [4, 13], "x": 65, "y": 0 }, + { "matrix": [4, 14], "x": 66, "y": 0 }, + { "matrix": [4, 15], "x": 67, "y": 0 } + ] + }, + "LAYOUT_iso_split_bs_space": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + { "matrix": [0, 15], "x": 15, "y": 0 }, + { "matrix": [1, 0], "x": 16, "y": 0 }, + { "matrix": [1, 2], "x": 17, "y": 0 }, + { "matrix": [1, 3], "x": 18, "y": 0 }, + { "matrix": [1, 4], "x": 19, "y": 0 }, + { "matrix": [1, 5], "x": 20, "y": 0 }, + { "matrix": [1, 6], "x": 21, "y": 0 }, + { "matrix": [1, 7], "x": 22, "y": 0 }, + { "matrix": [1, 8], "x": 23, "y": 0 }, + { "matrix": [1, 9], "x": 24, "y": 0 }, + { "matrix": [1, 10], "x": 25, "y": 0 }, + { "matrix": [1, 11], "x": 26, "y": 0 }, + { "matrix": [1, 12], "x": 27, "y": 0 }, + { "matrix": [1, 13], "x": 28, "y": 0 }, + { "matrix": [1, 15], "x": 29, "y": 0 }, + { "matrix": [2, 0], "x": 30, "y": 0 }, + { "matrix": [2, 2], "x": 31, "y": 0 }, + { "matrix": [2, 3], "x": 32, "y": 0 }, + { "matrix": [2, 4], "x": 33, "y": 0 }, + { "matrix": [2, 5], "x": 34, "y": 0 }, + { "matrix": [2, 6], "x": 35, "y": 0 }, + { "matrix": [2, 7], "x": 36, "y": 0 }, + { "matrix": [2, 8], "x": 37, "y": 0 }, + { "matrix": [2, 9], "x": 38, "y": 0 }, + { "matrix": [2, 10], "x": 39, "y": 0 }, + { "matrix": [2, 11], "x": 40, "y": 0 }, + { "matrix": [2, 12], "x": 41, "y": 0 }, + { "matrix": [1, 14], "x": 42, "y": 0 }, + { "matrix": [2, 13], "x": 43, "y": 0 }, + { "matrix": [2, 15], "x": 44, "y": 0 }, + { "matrix": [3, 1], "x": 45, "y": 0 }, + { "matrix": [3, 0], "x": 46, "y": 0 }, + { "matrix": [3, 2], "x": 47, "y": 0 }, + { "matrix": [3, 3], "x": 48, "y": 0 }, + { "matrix": [3, 4], "x": 49, "y": 0 }, + { "matrix": [3, 5], "x": 50, "y": 0 }, + { "matrix": [3, 6], "x": 51, "y": 0 }, + { "matrix": [3, 7], "x": 52, "y": 0 }, + { "matrix": [3, 8], "x": 53, "y": 0 }, + { "matrix": [3, 9], "x": 54, "y": 0 }, + { "matrix": [3, 10], "x": 55, "y": 0 }, + { "matrix": [3, 11], "x": 56, "y": 0 }, + { "matrix": [3, 13], "x": 57, "y": 0 }, + { "matrix": [3, 14], "x": 58, "y": 0 }, + { "matrix": [4, 0], "x": 59, "y": 0 }, + { "matrix": [4, 1], "x": 60, "y": 0 }, + { "matrix": [4, 3], "x": 61, "y": 0 }, + { "matrix": [4, 4], "x": 62, "y": 0 }, + { "matrix": [4, 6], "x": 63, "y": 0 }, + { "matrix": [4, 8], "x": 64, "y": 0 }, + { "matrix": [4, 10], "x": 65, "y": 0 }, + { "matrix": [4, 11], "x": 66, "y": 0 }, + { "matrix": [4, 12], "x": 67, "y": 0 }, + { "matrix": [4, 13], "x": 68, "y": 0 }, + { "matrix": [4, 14], "x": 69, "y": 0 }, + { "matrix": [4, 15], "x": 70, "y": 0 } + ] + } + } } diff --git a/keyboards/boardsource/the_mark/keymaps/default/keymap.c b/keyboards/boardsource/the_mark/keymaps/default/keymap.c index dc689f9bb1..8e4b5caed7 100644 --- a/keyboards/boardsource/the_mark/keymaps/default/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c index 6e1bcd2894..75db90f23f 100644 --- a/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c index 477685c771..6bef05a7c1 100644 --- a/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * 2022 QMK / James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c index 3e29975d37..68c664aa96 100644 --- a/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c index 1f61d83225..676b9b4575 100644 --- a/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * 2022 QMK / James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/boardsource/the_mark/keymaps/via/keymap.c b/keyboards/boardsource/the_mark/keymaps/via/keymap.c index dbc3b5b464..3cf3b45d56 100644 --- a/keyboards/boardsource/the_mark/keymaps/via/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/the_mark/keymaps/via/readme.md b/keyboards/boardsource/the_mark/keymaps/via/readme.md deleted file mode 100644 index 5fda80e18b..0000000000 --- a/keyboards/boardsource/the_mark/keymaps/via/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# The via keymap for The Mark: 65 - -This folder contains the VIA configuration for the boardsource's The Mark: 65 diff --git a/keyboards/boardsource/the_mark/rules.mk b/keyboards/boardsource/the_mark/rules.mk index e9cb6a2894..32afd21635 100644 --- a/keyboards/boardsource/the_mark/rules.mk +++ b/keyboards/boardsource/the_mark/rules.mk @@ -1,20 +1 @@ -# 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 -RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) -RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/boardsource/the_mark/the_mark.c b/keyboards/boardsource/the_mark/the_mark.c deleted file mode 100644 index 59aff7f9ac..0000000000 --- a/keyboards/boardsource/the_mark/the_mark.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "the_mark.h" - -/* Map physical under glow LEDs for RGB matrix support */ -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 10 , NO_LED, 9 , NO_LED, 8 , 7 , NO_LED, 6 , 5 , NO_LED, 4 , 3 , NO_LED, 2 , NO_LED, 1 }, - { 11 , NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { 12 , NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 23 }, - { 13 , NO_LED, 14 , NO_LED, 15 , 16 , NO_LED, 17 , 18 , NO_LED, 19 , 20 , NO_LED, 21 , NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 22 }, -}, { - // LED Index to Physical Position - {224, 42}, {224, 21}, {209, 21}, {179, 21}, {164, 21}, {134, 21}, {119, 21}, {89, 21}, {74, 21}, {45, 21}, {30, 21}, {30, 42}, - {30, 64}, {30, 85}, {45, 85}, {74, 85}, {89, 85}, {119, 85}, {134, 85}, {164, 85}, {179, 85}, {209, 85}, {224, 85}, {224, 64} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - - -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} -#endif diff --git a/keyboards/boardsource/the_mark/the_mark.h b/keyboards/boardsource/the_mark/the_mark.h deleted file mode 100644 index 163d5c256c..0000000000 --- a/keyboards/boardsource/the_mark/the_mark.h +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -#define ___ KC_NO - -/* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┐ ┌───────┐ - * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E ││0F │ │0D │ 2u Backspace - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┤ └─┬─────┤ - * │10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E ││1F │ │ │ - * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ ┌──┴┐2D │ ISO Enter - * LShift │20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D ││2F │ │1E │ │ - * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ └───┴────┘ - * │31 │ │31 │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │┌───┐ - * └────────┘ ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┘│3E │ - * │40 │41 │43 │44 │46 │48 │4A │4B │4C │┌───┼───┼───┐ - * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┘│4D │4E │4F │ - * └───┴───┴───┘ - * ┌────────────────────────┬─────┬─────┐ - * 6.25u Space │46 │4A │4B │ RWKL - * └────────────────────────┴─────┴─────┘ - */ - -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ - K31, K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} - -#define LAYOUT_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ - K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { ___, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, ___, ___, K46, ___, ___, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} - -#define LAYOUT_ansi_split_bs_space( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ - K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { ___, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} - -#define LAYOUT_iso( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D, K2F, \ - K31, K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, ___, ___, K46, ___, ___, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} - -#define LAYOUT_iso_split_bs_space( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D, K2F, \ - K31, K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} From 4f4e72e44c03e884e3cf02b02907e1e6cc3d5a12 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 12 Jul 2022 22:25:04 -0700 Subject: [PATCH 28/69] ID75 v2: update info.json (#17653) --- keyboards/idobao/id75/v2/info.json | 96 +++++++++++++++++++++++++++--- 1 file changed, 88 insertions(+), 8 deletions(-) diff --git a/keyboards/idobao/id75/v2/info.json b/keyboards/idobao/id75/v2/info.json index fe24920f81..7babe0de1a 100644 --- a/keyboards/idobao/id75/v2/info.json +++ b/keyboards/idobao/id75/v2/info.json @@ -1,10 +1,90 @@ { - "keyboard_name": "idobao/id75/v2", - "url": "", - "maintainer": "qmk", - "layouts": { - "LAYOUT_ortho_5x15": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] - } - } + "keyboard_name": "ID75 v2", + "url": "", + "maintainer": "peepeetee", + "layouts": { + "LAYOUT_ortho_5x15": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + } + } } From 63154631ab6d695d646d714e9daf0a18eb389d09 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Tue, 12 Jul 2022 23:31:43 -0600 Subject: [PATCH 29/69] boardsource/4x12 data driven (#17629) --- keyboards/boardsource/4x12/4x12.c | 1 - keyboards/boardsource/4x12/4x12.h | 14 -- keyboards/boardsource/4x12/config.h | 68 --------- keyboards/boardsource/4x12/info.json | 135 ++++++++++-------- .../boardsource/4x12/keymaps/default/keymap.c | 23 ++- .../boardsource/4x12/keymaps/via/keymap.c | 29 ++-- .../boardsource/4x12/keymaps/via/readme.md | 5 - keyboards/boardsource/4x12/rules.mk | 25 +--- 8 files changed, 103 insertions(+), 197 deletions(-) delete mode 100644 keyboards/boardsource/4x12/4x12.c delete mode 100644 keyboards/boardsource/4x12/4x12.h delete mode 100644 keyboards/boardsource/4x12/config.h delete mode 100644 keyboards/boardsource/4x12/keymaps/via/readme.md diff --git a/keyboards/boardsource/4x12/4x12.c b/keyboards/boardsource/4x12/4x12.c deleted file mode 100644 index 2aec6900ad..0000000000 --- a/keyboards/boardsource/4x12/4x12.c +++ /dev/null @@ -1 +0,0 @@ -#include "4x12.h" diff --git a/keyboards/boardsource/4x12/4x12.h b/keyboards/boardsource/4x12/4x12.h deleted file mode 100644 index 52c23708fa..0000000000 --- a/keyboards/boardsource/4x12/4x12.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once -#include "quantum.h" - -#define LAYOUT_ortho_4x12( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ - K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ - K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ - K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ - ) { \ - {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ - {K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ - {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ - {K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47} \ - } diff --git a/keyboards/boardsource/4x12/config.h b/keyboards/boardsource/4x12/config.h deleted file mode 100644 index 4df24944f8..0000000000 --- a/keyboards/boardsource/4x12/config.h +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 // "Bs" - Boardsource -#define PRODUCT_ID 0x0412 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Boardsource -#define PRODUCT 4x12 - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 -#define MATRIX_ROW_PINS { D2, D3, D1, D0} -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7 } - -#define DIODE_DIRECTION COL2ROW - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). - */ -// #define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/boardsource/4x12/info.json b/keyboards/boardsource/4x12/info.json index bb4acbbfe8..ec956ea6d7 100644 --- a/keyboards/boardsource/4x12/info.json +++ b/keyboards/boardsource/4x12/info.json @@ -1,62 +1,79 @@ { - "keyboard_name": "Boardsource 4x12", - "url": "https://boardsource.xyz", - "maintainer": "Boardsource", - "layouts": { - "LAYOUT_ortho_4x12": { - "layout": [ - { "label": "K01", "x": 0, "y": 0 }, - { "label": "K02", "x": 1, "y": 0 }, - { "label": "K03", "x": 2, "y": 0 }, - { "label": "K04", "x": 3, "y": 0 }, - { "label": "K05", "x": 4, "y": 0 }, - { "label": "K06", "x": 5, "y": 0 }, - { "label": "K07", "x": 6, "y": 0 }, - { "label": "K08", "x": 7, "y": 0 }, - { "label": "K09", "x": 8, "y": 0 }, - { "label": "K010", "x": 9, "y": 0 }, - { "label": "K011", "x": 10, "y": 0 }, - { "label": "K012", "x": 11, "y": 0 }, - - { "label": "K11", "x": 0, "y": 1 }, - { "label": "K12", "x": 1, "y": 1 }, - { "label": "K13", "x": 2, "y": 1 }, - { "label": "K14", "x": 3, "y": 1 }, - { "label": "K15", "x": 4, "y": 1 }, - { "label": "K16", "x": 5, "y": 1 }, - { "label": "K17", "x": 6, "y": 1 }, - { "label": "K18", "x": 7, "y": 1 }, - { "label": "K19", "x": 8, "y": 1 }, - { "label": "K110", "x": 9, "y": 1 }, - { "label": "K111", "x": 10, "y": 1 }, - { "label": "K112", "x": 11, "y": 1 }, - - { "label": "K21", "x": 0, "y": 2 }, - { "label": "K22", "x": 1, "y": 2 }, - { "label": "K23", "x": 2, "y": 2 }, - { "label": "K24", "x": 3, "y": 2 }, - { "label": "K25", "x": 4, "y": 2 }, - { "label": "K26", "x": 5, "y": 2 }, - { "label": "K27", "x": 6, "y": 2 }, - { "label": "K28", "x": 7, "y": 2 }, - { "label": "K29", "x": 8, "y": 2 }, - { "label": "K210", "x": 9, "y": 2 }, - { "label": "K211", "x": 10, "y": 2 }, - { "label": "K212", "x": 11, "y": 2 }, - - { "label": "K31", "x": 0, "y": 3 }, - { "label": "K32", "x": 1, "y": 3 }, - { "label": "K33", "x": 2, "y": 3 }, - { "label": "K34", "x": 3, "y": 3 }, - { "label": "K35", "x": 4, "y": 3 }, - { "label": "K36", "x": 5, "y": 3 }, - { "label": "K37", "x": 6, "y": 3 }, - { "label": "K38", "x": 7, "y": 3 }, - { "label": "K39", "x": 8, "y": 3 }, - { "label": "K310", "x": 9, "y": 3 }, - { "label": "K311", "x": 10, "y": 3 }, - { "label": "K312", "x": 11, "y": 3 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "4x12", + "maintainer": "waffle87", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7"], + "rows": ["D2", "D3", "D1", "D0"] + }, + "url": "https://boardsource.xyz/store/5ecb78d286879c9a0c22dafd", + "usb": { + "device_version": "1.0.0", + "pid": "0x0412", + "vid": "0x4273" + }, + "community_layouts": [ + "ortho_4x12" + ], + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "x": 11, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] } + } } diff --git a/keyboards/boardsource/4x12/keymaps/default/keymap.c b/keyboards/boardsource/4x12/keymaps/default/keymap.c index 17823f36c9..bb192c613d 100644 --- a/keyboards/boardsource/4x12/keymaps/default/keymap.c +++ b/keyboards/boardsource/4x12/keymaps/default/keymap.c @@ -1,3 +1,5 @@ +// Copyright 2022 @waffle87 +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H enum layers { @@ -6,31 +8,26 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_4x12( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_4x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_4x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ) - }; diff --git a/keyboards/boardsource/4x12/keymaps/via/keymap.c b/keyboards/boardsource/4x12/keymaps/via/keymap.c index 17823f36c9..b6e26fbeca 100644 --- a/keyboards/boardsource/4x12/keymaps/via/keymap.c +++ b/keyboards/boardsource/4x12/keymaps/via/keymap.c @@ -1,3 +1,5 @@ +// Copyright 2022 @gwillad +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H enum layers { @@ -6,31 +8,32 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_4x12( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_4x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_4x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [4] = LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) - }; diff --git a/keyboards/boardsource/4x12/keymaps/via/readme.md b/keyboards/boardsource/4x12/keymaps/via/readme.md deleted file mode 100644 index 534633d45e..0000000000 --- a/keyboards/boardsource/4x12/keymaps/via/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# The via keymap for boardsource 4x12 ortholinear keybaoard - -This folder contains the [VIA](https://caniusevia.com/) configuration for the boardsource 4x12 ortholinear keybaoard - -Maintained by: [gwillad](https://github.com/gwillad) diff --git a/keyboards/boardsource/4x12/rules.mk b/keyboards/boardsource/4x12/rules.mk index 061f93abf6..6e7633bfe0 100644 --- a/keyboards/boardsource/4x12/rules.mk +++ b/keyboards/boardsource/4x12/rules.mk @@ -1,24 +1 @@ -# 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 -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output - -LAYOUTS = ortho_4x12 - -# Disable unsupported hardware -RGBLIGHT_SUPPORTED = no -AUDIO_SUPPORTED = no -BACKLIGHT_SUPPORTED = no +# This file intentionally left blank From 320219d5d8b562f6e865ecdf76a7abd836e6fcfc Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Tue, 12 Jul 2022 23:32:22 -0600 Subject: [PATCH 30/69] boardsource/5x12 data driven (#17630) --- keyboards/boardsource/5x12/5x12.c | 1 - keyboards/boardsource/5x12/5x12.h | 17 -- keyboards/boardsource/5x12/config.h | 69 -------- keyboards/boardsource/5x12/info.json | 160 ++++++++++-------- .../boardsource/5x12/keymaps/default/keymap.c | 37 ++-- .../boardsource/5x12/keymaps/via/keymap.c | 48 +++--- .../boardsource/5x12/keymaps/via/readme.md | 5 - keyboards/boardsource/5x12/rules.mk | 25 +-- 8 files changed, 128 insertions(+), 234 deletions(-) delete mode 100644 keyboards/boardsource/5x12/5x12.c delete mode 100644 keyboards/boardsource/5x12/5x12.h delete mode 100644 keyboards/boardsource/5x12/config.h delete mode 100644 keyboards/boardsource/5x12/keymaps/via/readme.md diff --git a/keyboards/boardsource/5x12/5x12.c b/keyboards/boardsource/5x12/5x12.c deleted file mode 100644 index 579cd5effc..0000000000 --- a/keyboards/boardsource/5x12/5x12.c +++ /dev/null @@ -1 +0,0 @@ -#include "5x12.h" \ No newline at end of file diff --git a/keyboards/boardsource/5x12/5x12.h b/keyboards/boardsource/5x12/5x12.h deleted file mode 100644 index bbc0689b44..0000000000 --- a/keyboards/boardsource/5x12/5x12.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once -#include "quantum.h" - -#define LAYOUT_ortho_5x12( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ - K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ - K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ - K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47, \ - K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59 \ - ) { \ - {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ - {K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ - {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ - {K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47}, \ - {K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59} \ - } - diff --git a/keyboards/boardsource/5x12/config.h b/keyboards/boardsource/5x12/config.h deleted file mode 100644 index f70dec9efb..0000000000 --- a/keyboards/boardsource/5x12/config.h +++ /dev/null @@ -1,69 +0,0 @@ -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 // "Bs" - Boardsource -#define PRODUCT_ID 0x0512 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Boardsource -#define PRODUCT 5x12 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 12 -#define MATRIX_ROW_PINS { D2, D3, D1, D0, D4 } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7 } - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). - */ -// #define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/boardsource/5x12/info.json b/keyboards/boardsource/5x12/info.json index 92debddd92..b251dd9319 100644 --- a/keyboards/boardsource/5x12/info.json +++ b/keyboards/boardsource/5x12/info.json @@ -1,75 +1,91 @@ { - "keyboard_name": "boardsource 5x12", - "url": "https://boardsource.xyz", - "maintainer": "boardsource", - "layouts": { - "LAYOUT_ortho_5x12": { - "layout": [ - { "label": "K01", "x": 0, "y": 0 }, - { "label": "K02", "x": 1, "y": 0 }, - { "label": "K03", "x": 2, "y": 0 }, - { "label": "K04", "x": 3, "y": 0 }, - { "label": "K05", "x": 4, "y": 0 }, - { "label": "K06", "x": 5, "y": 0 }, - { "label": "K07", "x": 6, "y": 0 }, - { "label": "K08", "x": 7, "y": 0 }, - { "label": "K09", "x": 8, "y": 0 }, - { "label": "K010", "x": 9, "y": 0 }, - { "label": "K011", "x": 10, "y": 0 }, - { "label": "K012", "x": 11, "y": 0 }, - - { "label": "K11", "x": 0, "y": 1 }, - { "label": "K12", "x": 1, "y": 1 }, - { "label": "K13", "x": 2, "y": 1 }, - { "label": "K14", "x": 3, "y": 1 }, - { "label": "K15", "x": 4, "y": 1 }, - { "label": "K16", "x": 5, "y": 1 }, - { "label": "K17", "x": 6, "y": 1 }, - { "label": "K18", "x": 7, "y": 1 }, - { "label": "K19", "x": 8, "y": 1 }, - { "label": "K110", "x": 9, "y": 1 }, - { "label": "K111", "x": 10, "y": 1 }, - { "label": "K112", "x": 11, "y": 1 }, - - { "label": "K21", "x": 0, "y": 2 }, - { "label": "K22", "x": 1, "y": 2 }, - { "label": "K23", "x": 2, "y": 2 }, - { "label": "K24", "x": 3, "y": 2 }, - { "label": "K25", "x": 4, "y": 2 }, - { "label": "K26", "x": 5, "y": 2 }, - { "label": "K27", "x": 6, "y": 2 }, - { "label": "K28", "x": 7, "y": 2 }, - { "label": "K29", "x": 8, "y": 2 }, - { "label": "K210", "x": 9, "y": 2 }, - { "label": "K211", "x": 10, "y": 2 }, - { "label": "K212", "x": 11, "y": 2 }, - - { "label": "K31", "x": 0, "y": 3 }, - { "label": "K32", "x": 1, "y": 3 }, - { "label": "K33", "x": 2, "y": 3 }, - { "label": "K34", "x": 3, "y": 3 }, - { "label": "K35", "x": 4, "y": 3 }, - { "label": "K36", "x": 5, "y": 3 }, - { "label": "K37", "x": 6, "y": 3 }, - { "label": "K38", "x": 7, "y": 3 }, - { "label": "K39", "x": 8, "y": 3 }, - { "label": "K310", "x": 9, "y": 3 }, - { "label": "K311", "x": 10, "y": 3 }, - { "label": "K312", "x": 11, "y": 3 }, - - { "label": "K41", "x": 0, "y": 4 }, - { "label": "K42", "x": 1, "y": 4 }, - { "label": "K43", "x": 2, "y": 4 }, - { "label": "K44", "x": 3, "y": 4 }, - { "label": "K45", "x": 4, "y": 4 }, - { "label": "K46", "x": 5, "y": 4 }, - { "label": "K47", "x": 6, "y": 4 }, - { "label": "K48", "x": 7, "y": 4 }, - { "label": "K49", "x": 8, "y": 4 }, - { "label": "K410", "x": 9, "y": 4 }, - { "label": "K411", "x": 10, "y": 4 }, - { "label": "K412", "x": 11, "y": 4 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "5x12", + "maintainer": "waffle87", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7"], + "rows": ["D2", "D3", "D1", "D0", "D4"] + }, + "url": "https://boardsource.xyz/store/5ecb802c86879c9a0c22db61", + "usb": { + "device_version": "1.0.0", + "pid": "0x0512", + "vid": "0x4273" + }, + "community_layouts": [ + "ortho_5x12" + ], + "layouts": { + "LAYOUT_ortho_5x12": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "x": 11, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 2], "x": 2, "y": 4 }, + { "matrix": [4, 3], "x": 3, "y": 4 }, + { "matrix": [4, 4], "x": 4, "y": 4 }, + { "matrix": [4, 5], "x": 5, "y": 4 }, + { "matrix": [4, 6], "x": 6, "y": 4 }, + { "matrix": [4, 7], "x": 7, "y": 4 }, + { "matrix": [4, 8], "x": 8, "y": 4 }, + { "matrix": [4, 9], "x": 9, "y": 4 }, + { "matrix": [4, 10], "x": 10, "y": 4 }, + { "matrix": [4, 11], "x": 11, "y": 4 } + ] } + } } diff --git a/keyboards/boardsource/5x12/keymaps/default/keymap.c b/keyboards/boardsource/5x12/keymaps/default/keymap.c index 0f2534bbe8..829da5be7f 100644 --- a/keyboards/boardsource/5x12/keymaps/default/keymap.c +++ b/keyboards/boardsource/5x12/keymaps/default/keymap.c @@ -1,3 +1,5 @@ +// Copyright 2022 @waffle87 +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H enum layers { @@ -6,34 +8,29 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_5x12( - 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, - KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + 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, + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_5x12( - 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, + KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_5x12( - 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_UP, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + 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_UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ) - }; diff --git a/keyboards/boardsource/5x12/keymaps/via/keymap.c b/keyboards/boardsource/5x12/keymaps/via/keymap.c index 0a7eb43631..d820b61427 100644 --- a/keyboards/boardsource/5x12/keymaps/via/keymap.c +++ b/keyboards/boardsource/5x12/keymaps/via/keymap.c @@ -1,3 +1,5 @@ +// Copyright 2022 @gwillad +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H enum layers { @@ -6,42 +8,36 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_5x12( - 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, - KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + 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, + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_5x12( - 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, + KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_5x12( - 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_UP, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + 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_UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [3] = LAYOUT_ortho_5x12( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) - }; diff --git a/keyboards/boardsource/5x12/keymaps/via/readme.md b/keyboards/boardsource/5x12/keymaps/via/readme.md deleted file mode 100644 index d088e0a64c..0000000000 --- a/keyboards/boardsource/5x12/keymaps/via/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# The via keymap for boardsource 5x12 ortholinear keyboard - -This folder contains the [VIA](https://caniusevia.com/) configuration for the boardsource 5x12 ortholinear keyboard - -Maintained by: [gwillad](https://github.com/gwillad) diff --git a/keyboards/boardsource/5x12/rules.mk b/keyboards/boardsource/5x12/rules.mk index 0727732ac6..6e7633bfe0 100644 --- a/keyboards/boardsource/5x12/rules.mk +++ b/keyboards/boardsource/5x12/rules.mk @@ -1,24 +1 @@ -# 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 -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output - -LAYOUTS = ortho_5x12 - -# Disable unsupported hardware -RGBLIGHT_SUPPORTED = no -AUDIO_SUPPORTED = no -BACKLIGHT_SUPPORTED = no +# This file intentionally left blank From 2a3cd98fc6b362db82f0426229dfacf7c508e3f1 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Tue, 12 Jul 2022 23:35:06 -0600 Subject: [PATCH 31/69] boardsource/technik_o data driven (#17635) --- keyboards/boardsource/technik_o/config.h | 116 +--------- keyboards/boardsource/technik_o/info.json | 200 ++++++++++++------ .../technik_o/keymaps/default/keymap.c | 23 +- .../technik_o/keymaps/default/readme.md | 1 - .../technik_o/keymaps/via/keymap.c | 30 +-- .../technik_o/keymaps/via/readme.md | 1 - keyboards/boardsource/technik_o/rules.mk | 20 -- keyboards/boardsource/technik_o/technik_o.c | 26 +-- keyboards/boardsource/technik_o/technik_o.h | 31 --- 9 files changed, 168 insertions(+), 280 deletions(-) delete mode 100644 keyboards/boardsource/technik_o/keymaps/default/readme.md delete mode 100644 keyboards/boardsource/technik_o/keymaps/via/readme.md delete mode 100644 keyboards/boardsource/technik_o/technik_o.h diff --git a/keyboards/boardsource/technik_o/config.h b/keyboards/boardsource/technik_o/config.h index 146141a911..bbaacd33c4 100644 --- a/keyboards/boardsource/technik_o/config.h +++ b/keyboards/boardsource/technik_o/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Boardsource +Copyright 2022 Boardsource This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,62 +16,19 @@ along with this program. If not, see . */ #pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 -#define PRODUCT_ID 0x0079 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Boardsource -#define PRODUCT Technik-O - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS {B0, B1, B2, B3} -#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6} -#define UNUSED_PINS - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -#define BACKLIGHT_BREATHING -#define RGBLIGHT_ANIMATIONS #define RGB_DI_PIN C6 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 -// 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 DRIVER_LED_TOTAL 58 #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 @@ -85,81 +42,12 @@ along with this program. If not, see . #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 -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 10 // Number of LEDs -#endif - -#define DRIVER_LED_TOTAL 58 - -/* 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/boardsource/technik_o/info.json b/keyboards/boardsource/technik_o/info.json index 0aa780ca7b..d84a976e13 100644 --- a/keyboards/boardsource/technik_o/info.json +++ b/keyboards/boardsource/technik_o/info.json @@ -1,62 +1,144 @@ { - "keyboard_name": "Technik-O", - "url": "https://boardsource.xyz", - "maintainer": "Boardsource", - "layouts": { - "LAYOUT_ortho_4x12": { - "layout": [ - { "label": "K01", "x": 0, "y": 0 }, - { "label": "K02", "x": 1, "y": 0 }, - { "label": "K03", "x": 2, "y": 0 }, - { "label": "K04", "x": 3, "y": 0 }, - { "label": "K05", "x": 4, "y": 0 }, - { "label": "K06", "x": 5, "y": 0 }, - { "label": "K07", "x": 6, "y": 0 }, - { "label": "K08", "x": 7, "y": 0 }, - { "label": "K09", "x": 8, "y": 0 }, - { "label": "K010", "x": 9, "y": 0 }, - { "label": "K011", "x": 10, "y": 0 }, - { "label": "K012", "x": 11, "y": 0 }, - - { "label": "K11", "x": 0, "y": 1 }, - { "label": "K12", "x": 1, "y": 1 }, - { "label": "K13", "x": 2, "y": 1 }, - { "label": "K14", "x": 3, "y": 1 }, - { "label": "K15", "x": 4, "y": 1 }, - { "label": "K16", "x": 5, "y": 1 }, - { "label": "K17", "x": 6, "y": 1 }, - { "label": "K18", "x": 7, "y": 1 }, - { "label": "K19", "x": 8, "y": 1 }, - { "label": "K110", "x": 9, "y": 1 }, - { "label": "K111", "x": 10, "y": 1 }, - { "label": "K112", "x": 11, "y": 1 }, - - { "label": "K21", "x": 0, "y": 2 }, - { "label": "K22", "x": 1, "y": 2 }, - { "label": "K23", "x": 2, "y": 2 }, - { "label": "K24", "x": 3, "y": 2 }, - { "label": "K25", "x": 4, "y": 2 }, - { "label": "K26", "x": 5, "y": 2 }, - { "label": "K27", "x": 6, "y": 2 }, - { "label": "K28", "x": 7, "y": 2 }, - { "label": "K29", "x": 8, "y": 2 }, - { "label": "K210", "x": 9, "y": 2 }, - { "label": "K211", "x": 10, "y": 2 }, - { "label": "K212", "x": 11, "y": 2 }, - - { "label": "K31", "x": 0, "y": 3 }, - { "label": "K32", "x": 1, "y": 3 }, - { "label": "K33", "x": 2, "y": 3 }, - { "label": "K34", "x": 3, "y": 3 }, - { "label": "K35", "x": 4, "y": 3 }, - { "label": "K36", "x": 5, "y": 3 }, - { "label": "K37", "x": 6, "y": 3 }, - { "label": "K38", "x": 7, "y": 3 }, - { "label": "K39", "x": 8, "y": 3 }, - { "label": "K310", "x": 9, "y": 3 }, - { "label": "K311", "x": 10, "y": 3 }, - { "label": "K312", "x": 11, "y": 3 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "Technik-O", + "maintainer": "waffle87", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B5", "B6", "B7", "F5", "C7", "D0", "D1", "D2", "D3", "D4", "D5", "D6"], + "rows": ["B0", "B1", "B2", "B3"] + }, + "processor": "atmega32u4", + "url": "https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2", + "usb": { + "device_version": "1.0.0", + "pid": "0x0079", + "vid": "0x4273" + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 220, "y": 17 }, + { "flags": 2, "x": 172, "y": 17 }, + { "flags": 2, "x": 112, "y": 17 }, + { "flags": 2, "x": 50, "y": 17 }, + { "flags": 2, "x": 4, "y": 17 }, + { "flags": 2, "x": 4, "y": 56 }, + { "flags": 2, "x": 50, "y": 56 }, + { "flags": 2, "x": 112, "y": 56 }, + { "flags": 2, "x": 172, "y": 56 }, + { "flags": 2, "x": 220, "y": 56 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 61, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 81, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 101, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 }, + { "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 }, + { "flags": 1, "matrix": [1, 0], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 20, "y": 21 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "y": 21 }, + { "flags": 4, "matrix": [1, 3], "x": 61, "y": 21 }, + { "flags": 4, "matrix": [1, 4], "x": 81, "y": 21 }, + { "flags": 4, "matrix": [1, 5], "x": 101, "y": 21 }, + { "flags": 4, "matrix": [1, 6], "x": 122, "y": 21 }, + { "flags": 4, "matrix": [1, 7], "x": 142, "y": 21 }, + { "flags": 4, "matrix": [1, 8], "x": 162, "y": 21 }, + { "flags": 4, "matrix": [1, 9], "x": 183, "y": 21 }, + { "flags": 4, "matrix": [1, 10], "x": 203, "y": 21 }, + { "flags": 1, "matrix": [1, 11], "x": 224, "y": 21 }, + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "y": 42 }, + { "flags": 4, "matrix": [2, 3], "x": 61, "y": 42 }, + { "flags": 4, "matrix": [2, 4], "x": 81, "y": 42 }, + { "flags": 4, "matrix": [2, 5], "x": 101, "y": 42 }, + { "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 }, + { "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 }, + { "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 }, + { "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 }, + { "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 }, + { "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 }, + { "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 }, + { "flags": 1, "matrix": [3, 1], "x": 20, "y": 64 }, + { "flags": 1, "matrix": [3, 2], "x": 40, "y": 64 }, + { "flags": 1, "matrix": [3, 3], "x": 61, "y": 64 }, + { "flags": 1, "matrix": [3, 4], "x": 81, "y": 64 }, + { "flags": 4, "matrix": [3, 5], "x": 101, "y": 64 }, + { "flags": 4, "matrix": [3, 6], "x": 122, "y": 64 }, + { "flags": 1, "matrix": [3, 7], "x": 142, "y": 64 }, + { "flags": 1, "matrix": [3, 8], "x": 162, "y": 64 }, + { "flags": 1, "matrix": [3, 9], "x": 183, "y": 64 }, + { "flags": 1, "matrix": [3, 10], "x": 203, "y": 64 }, + { "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 } + ] + }, + "community_layouts": [ + "ortho_4x12" + ], + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "x": 11, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] } + } } diff --git a/keyboards/boardsource/technik_o/keymaps/default/keymap.c b/keyboards/boardsource/technik_o/keymaps/default/keymap.c index 028e3eae41..9df43c88db 100644 --- a/keyboards/boardsource/technik_o/keymaps/default/keymap.c +++ b/keyboards/boardsource/technik_o/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,32 +22,27 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_4x12( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_4x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_4x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ) - }; diff --git a/keyboards/boardsource/technik_o/keymaps/default/readme.md b/keyboards/boardsource/technik_o/keymaps/default/readme.md deleted file mode 100644 index e9427401d0..0000000000 --- a/keyboards/boardsource/technik_o/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for Technik-O diff --git a/keyboards/boardsource/technik_o/keymaps/via/keymap.c b/keyboards/boardsource/technik_o/keymaps/via/keymap.c index 028e3eae41..c04898f0aa 100644 --- a/keyboards/boardsource/technik_o/keymaps/via/keymap.c +++ b/keyboards/boardsource/technik_o/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,32 +22,32 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_4x12( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_4x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_4x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [3] = LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) - }; - diff --git a/keyboards/boardsource/technik_o/keymaps/via/readme.md b/keyboards/boardsource/technik_o/keymaps/via/readme.md deleted file mode 100644 index 6ae03a917f..0000000000 --- a/keyboards/boardsource/technik_o/keymaps/via/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The via keymap for Technik-O diff --git a/keyboards/boardsource/technik_o/rules.mk b/keyboards/boardsource/technik_o/rules.mk index c1a93c1f38..32afd21635 100644 --- a/keyboards/boardsource/technik_o/rules.mk +++ b/keyboards/boardsource/technik_o/rules.mk @@ -1,21 +1 @@ -# 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 = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -LAYOUTS = ortho_4x12 diff --git a/keyboards/boardsource/technik_o/technik_o.c b/keyboards/boardsource/technik_o/technik_o.c index 1488d55f59..0fd213e42a 100644 --- a/keyboards/boardsource/technik_o/technik_o.c +++ b/keyboards/boardsource/technik_o/technik_o.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * Copyright 2021 @filterpaper * * This program is free software: you can redistribute it and/or modify @@ -15,29 +15,6 @@ * along with this program. If not, see . */ -#include "technik_o.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}, - { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}, - { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45}, - { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57} -}, { - {220, 17}, {172, 17}, {112, 17}, { 50, 17}, { 4, 17}, { 4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56}, - { 0, 0}, { 20, 0}, { 40, 0}, { 61, 0}, { 81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, - { 0, 21}, { 20, 21}, { 40, 21}, { 61, 21}, { 81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21}, - { 0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, - { 0, 64}, { 20, 64}, { 40, 64}, { 61, 64}, { 81, 64}, {101, 64}, {122, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64} -}, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1 -} }; -#endif - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -47,4 +24,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}} }; #endif - diff --git a/keyboards/boardsource/technik_o/technik_o.h b/keyboards/boardsource/technik_o/technik_o.h deleted file mode 100644 index e2af9f834a..0000000000 --- a/keyboards/boardsource/technik_o/technik_o.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" -#define LAYOUT_ortho_4x12( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ - K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ - K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ - K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ - ) { \ - {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ - {K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ - {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ - {K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47} \ - } - From acf114315efb716ff6a45b63a7300cab16fad69d Mon Sep 17 00:00:00 2001 From: Yizhen Liu <62583086+edwardslau@users.noreply.github.com> Date: Wed, 13 Jul 2022 02:04:42 -0600 Subject: [PATCH 32/69] [Keyboard] Kprepublic bm80v2 iso issue resolved (#17657) Co-authored-by: Drashna Jaelre --- keyboards/kprepublic/bm80v2_iso/config.h | 44 +++++++++++++++++++++--- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h index 25c12ee169..62db871a0d 100644 --- a/keyboards/kprepublic/bm80v2_iso/config.h +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -35,12 +35,48 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 - -#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -#define RGB_MATRIX_KEYPRESSES +/* disable these deprecated features by default */ +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL +#define RGB_MATRIX_KEYPRESSES +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#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_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +// 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_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 #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons. #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 88 #define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL From d98f309429c9cf2c75dbebc72b821019310a8c10 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 13 Jul 2022 01:11:24 -0700 Subject: [PATCH 33/69] [Keyboard] Fix compilation issue for runes/skoldjr (#17659) --- keyboards/runes/skjoldr/skjoldr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/runes/skjoldr/skjoldr.h b/keyboards/runes/skjoldr/skjoldr.h index 018b58ea7e..28135423eb 100644 --- a/keyboards/runes/skjoldr/skjoldr.h +++ b/keyboards/runes/skjoldr/skjoldr.h @@ -38,4 +38,4 @@ {K02, K12, K22, K32, K42, K52, K62, K72, K82, K92, KA2, KB2, KC2, KC_NO }, \ {K03, K13, K23, K33, K43, K53, K63, K73, K83, K93, KA3, KC_NO, KC3, KD3 }, \ {K04, K14, K24, KC_NO, KC_NO, K54, KC_NO, KC_NO, KC_NO, K94, KA4, KB4, KC4, KD4 } \ -} \ No newline at end of file +} From 6eac98286aaf6952ef9ebd91de3698ca2746f679 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 13 Jul 2022 12:39:39 -0700 Subject: [PATCH 34/69] Swift65 Hotswap: correct key sizes (#17666) Corrects the key sizes on the bottom row (1.5-1-1.5-7 instead of 1.25-1.25-1.25-7.25). --- keyboards/alfredslab/swift65/hotswap/info.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/alfredslab/swift65/hotswap/info.json b/keyboards/alfredslab/swift65/hotswap/info.json index 37bc480d4b..25b261d330 100644 --- a/keyboards/alfredslab/swift65/hotswap/info.json +++ b/keyboards/alfredslab/swift65/hotswap/info.json @@ -66,10 +66,10 @@ { "label": "K3B (D6,D7)", "x": 11.25, "y": 3 }, { "label": "K3C (D6,D5)", "x": 12.25, "y": 3, "w": 1.75 }, { "label": "K3D (D6,D3)", "x": 14, "y": 3 }, - { "label": "K40 (D4,F7)", "x": 0, "y": 4, "w": 1.25 }, - { "label": "K41 (D4,F6)", "x": 1.25, "y": 4, "w": 1.25 }, - { "label": "K42 (D4,F5)", "x": 2.5, "y": 4, "w": 1.25 }, - { "label": "K46 (D4,C7)", "x": 3.75, "y": 4, "w": 7.25 }, + { "label": "K40 (D4,F7)", "x": 0, "y": 4, "w": 1.5 }, + { "label": "K41 (D4,F6)", "x": 1.5, "y": 4}, + { "label": "K42 (D4,F5)", "x": 2.5, "y": 4, "w": 1.5 }, + { "label": "K46 (D4,C7)", "x": 4, "y": 4, "w": 7}, { "label": "K4B (D4,D7)", "x": 11, "y": 4, "w": 1.5 }, { "label": "K4C (D4,D5)", "x": 13, "y": 4 }, { "label": "K4D (D4,D3)", "x": 14, "y": 4 }, From f7510ca2027351555d6ef4785c28f9f3363d0580 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 13 Jul 2022 12:40:03 -0700 Subject: [PATCH 35/69] Gentoo & Gentoo Hotswap: correct Configurator key sequence errors (#17668) * Gentoo info.json: apply friendly formatting * Gentoo info.json: correct key sequence error * Gentoo Hotswap info.json: apply friendly formatting * Gentoo Hotswap info.json: correct key sequence error --- keyboards/cannonkeys/gentoo/info.json | 78 +++++++++++++++++++++++- keyboards/cannonkeys/gentoo_hs/info.json | 74 +++++++++++++++++++++- 2 files changed, 149 insertions(+), 3 deletions(-) diff --git a/keyboards/cannonkeys/gentoo/info.json b/keyboards/cannonkeys/gentoo/info.json index 4bb9cd9555..dd9d59bb1f 100644 --- a/keyboards/cannonkeys/gentoo/info.json +++ b/keyboards/cannonkeys/gentoo/info.json @@ -4,8 +4,82 @@ "maintainer": "awkannan", "layouts": { "LAYOUT_all": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Bkspc", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Del", "x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":15.5, "y":3}, {"label":"Up", "x":14.25, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"Left", "x":13.25, "y":4.25}, {"label":"Down", "x":14.25, "y":4.25}, {"label":"Right", "x":15.25, "y":4.25}] + "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":"Bkspc", "x":13, "y":0}, + {"label":"Del", "x":14, "y":0}, + {"label":"Del", "x":15.5, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgDn", "x":15.5, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Up", "x":14.25, "y":3.25}, + {"label":"Fn", "x":15.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4}, + {"label":"Win", "x":11, "y":4}, + {"label":"Ctrl", "x":12, "y":4}, + {"label":"Left", "x":13.25, "y":4.25}, + {"label":"Down", "x":14.25, "y":4.25}, + {"label":"Right", "x":15.25, "y":4.25} + ] } } - } diff --git a/keyboards/cannonkeys/gentoo_hs/info.json b/keyboards/cannonkeys/gentoo_hs/info.json index 9573d24376..bb4db2b83a 100644 --- a/keyboards/cannonkeys/gentoo_hs/info.json +++ b/keyboards/cannonkeys/gentoo_hs/info.json @@ -4,7 +4,79 @@ "maintainer": "awkannan", "layouts": { "LAYOUT_default": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Del", "x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":15.5, "y":3}, {"label":"Up", "x":14.25, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":4, "w":1.5}, {"label":"Left", "x":13.25, "y":4.25}, {"label":"Down", "x":14.25, "y":4.25}, {"label":"Right", "x":15.25, "y":4.25}] + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Del", "x":15.5, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgDn", "x":15.5, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Up", "x":14.25, "y":3.25}, + {"label":"Fn", "x":15.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":4, "w":1.5}, + {"label":"Left", "x":13.25, "y":4.25}, + {"label":"Down", "x":14.25, "y":4.25}, + {"label":"Right", "x":15.25, "y":4.25} + ] } } } From 4ef0c8230cfb9b4768b50dbf4104d83d2ab21880 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 13 Jul 2022 13:57:55 -0700 Subject: [PATCH 36/69] Ducky One 2 SF touch-up (#17672) * info.json: correct JSON syntax error * info.json: correct key sizes * update readme files Moves nearly all of the information about this keyboard to the 1967st version's readme, because this readme is exposed in QMK Configurator. Also updates the readme to align more closely with QMK's keyboard readme template. * info.json: update metadata Updates the keyboard name and maintainer fields. --- keyboards/ducky/one2sf/1967st/info.json | 15 +++++------ keyboards/ducky/one2sf/1967st/readme.md | 33 ++++++++++++++++++++++++- keyboards/ducky/one2sf/readme.md | 27 ++++---------------- 3 files changed, 45 insertions(+), 30 deletions(-) diff --git a/keyboards/ducky/one2sf/1967st/info.json b/keyboards/ducky/one2sf/1967st/info.json index 468222a6e2..1ba894e65b 100644 --- a/keyboards/ducky/one2sf/1967st/info.json +++ b/keyboards/ducky/one2sf/1967st/info.json @@ -1,5 +1,6 @@ { - "keyboard_name": "Ducky One 2 SF", + "keyboard_name": "Ducky One 2 SF (DKON1967ST)", + "maintainer": "f7urry", "layouts": { "LAYOUT_all": { "layout": [ @@ -17,7 +18,7 @@ { "x": 11, "y": 0, "w": 1, "label": "DASH" }, { "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" }, { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" }, - { "x": 15.25, "y": 0, "w": 2, "label": "DEL" }, + { "x": 15.25, "y": 0, "w": 1, "label": "DEL" }, { "x": 0, "y": 1, "w": 1.5, "label": "TAB" }, { "x": 1.5, "y": 1, "w": 1, "label": "Q" }, @@ -33,7 +34,7 @@ { "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" }, { "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" }, { "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" }, - { "x": 15.25, "y": 1, "w": 1.5, "label": "PAGEUP" }, + { "x": 15.25, "y": 1, "w": 1, "label": "PAGEUP" }, { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" }, { "x": 1.75, "y": 2, "w": 1, "label": "A" }, @@ -49,7 +50,7 @@ { "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" }, { "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" }, { "x": 13.75, "y": 2, "w": 1.25, "label": "ENTER" }, - { "x": 15.25, "y": 2, "w": 1.25, "label": "PAGEDOWN" }, + { "x": 15.25, "y": 2, "w": 1, "label": "PAGEDOWN" }, { "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" }, { "x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH" }, @@ -63,8 +64,8 @@ { "x": 9.25, "y": 3, "w": 1, "label": "COMMA" }, { "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" }, { "x": 11.25, "y": 3, "w": 1, "label": "SLASH" }, - { "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" }, - { "x": 14.25, "y": 3, "w": 2.75, "label": "UP" }, + { "x": 12.25, "y": 3, "w": 2, "label": "RSHIFT" }, + { "x": 14.25, "y": 3, "w": 1, "label": "UP" }, { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" }, { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" }, @@ -74,7 +75,7 @@ { "x": 11, "y": 4, "w": 1, "label": "FN" }, { "x": 12, "y": 4, "w": 1.25, "label": "RCTRL" }, { "x": 13.25, "y": 4, "w": 1, "label": "LEFT" }, - { "x": 14.25, "y": 4, "w": 1, "label": "DOWN" } + { "x": 14.25, "y": 4, "w": 1, "label": "DOWN" }, { "x": 15.25, "y": 4, "w": 1, "label": "RIGHT" } ] } diff --git a/keyboards/ducky/one2sf/1967st/readme.md b/keyboards/ducky/one2sf/1967st/readme.md index 16a932812e..be96a8db71 100644 --- a/keyboards/ducky/one2sf/1967st/readme.md +++ b/keyboards/ducky/one2sf/1967st/readme.md @@ -1 +1,32 @@ -# One2SF \ No newline at end of file +# One 2 SF (DKON1967ST) + +A 65% keyboard by Ducky. + +This firmware was tested on the Ducky One 2 SF 1967ST version. + +* Keyboard Maintainer: [f7urry](https://github.com/f7urry) +* Hardware Supported: Ducky One 2 SF RGB (DKON1967ST), NUC123SD4AN0 + MBI5043GP + * Only ANSI layout is supported at this time (ISO & VIA still WIP). + * RGB LEDs are currently disabled until the driver is merged. + +## Compiling the Firmware: + + make ducky/one2sf/1967st:default + +## Accessing Bootloader Mode + +To enter the 1967ST bootloader to flash, boot the keyboard while holding D+L. + +## Flashing the Firmware: + +There are then two ways to flash the keyboard: + + pip install --user nuvoton-isp + nuvoisp -f ducky_one2sf_ansi.bin + +Alternatively you can use elfmimi's [nu-isp-cli](https://lib.rs/crates/nu-isp-cli) which is more complete than nuvoisp and allows flashing .hex files as well. + + cargo install nu-isp-cli + nu-isp-cli flash ducky_one2sf_ansi.bin + +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/ducky/one2sf/readme.md b/keyboards/ducky/one2sf/readme.md index 7f6abd81fe..fb37adb7e9 100644 --- a/keyboards/ducky/one2sf/readme.md +++ b/keyboards/ducky/one2sf/readme.md @@ -1,25 +1,8 @@ -# One2SF +# One 2 SF -A 65% keyboard by Ducky +A 65% keyboard by Ducky. -* Hardware Supported: Ducky One 2 SF RGB / NUC123SD4AN0 / MBI5043GP -* Layout only support for ANSI (ISO & VIA still WIP) -Make example for this keyboard (after setting up your build environment): +The only supported keyboard version at this time is the DKON1967ST. - make ducky/one2sf:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -RGB LEDs are currently disabled until the driver is merged. - -This firmware was tested on the duckyon2sf 1967ST version. To enter the 1967ST bootloader to flash you can boot the keyboard while holding D+L. - -There are then two ways to flash the keyboard: - - pip install --user nuvoton-isp - nuvoisp -f ducky_one2sf_ansi.bin - -Alternatively you can use elfmimi's [nu-isp-cli](https://lib.rs/crates/nu-isp-cli) which is more complete than nuvoisp and allows flashing .hex files as well. - - cargo install nu-isp-cli - nu-isp-cli flash ducky_one2sf_ansi.bin +* Hardware Supported: + * [DKON1967ST](1967st/), NUC123SD4AN0 + MBI5043GP From 99e9e1b8e70b7b6a0cc03a6672f2512b472fb650 Mon Sep 17 00:00:00 2001 From: wangfuco <46733695+wangfuco@users.noreply.github.com> Date: Wed, 13 Jul 2022 15:24:42 -0700 Subject: [PATCH 37/69] [Keyboard] Modelm101 teensy2 (#16805) * Add modelm101_teensy2 files from modelm101 * Change info.json * Update README.md * Update pin def * Fix file name * Update readme.md * Delete config.h * Apply suggestions from code review * Update keyboards/converter/modelm101_teensy2/config.h * Delete keyboards/converter/modelm101_teensy2/keymaps/iw0rm3r directory * Delete .noci --- .../converter/modelm101_teensy2/config.h | 74 +++++++++++++++++++ .../converter/modelm101_teensy2/info.json | 10 +++ .../keymaps/default/keymap.c | 27 +++++++ .../keymaps/default/readme.md | 1 + .../modelm101_teensy2/modelm101_teensy2.c | 16 ++++ .../modelm101_teensy2/modelm101_teensy2.h | 45 +++++++++++ .../converter/modelm101_teensy2/readme.md | 29 ++++++++ .../converter/modelm101_teensy2/rules.mk | 18 +++++ 8 files changed, 220 insertions(+) create mode 100644 keyboards/converter/modelm101_teensy2/config.h create mode 100644 keyboards/converter/modelm101_teensy2/info.json create mode 100644 keyboards/converter/modelm101_teensy2/keymaps/default/keymap.c create mode 100644 keyboards/converter/modelm101_teensy2/keymaps/default/readme.md create mode 100644 keyboards/converter/modelm101_teensy2/modelm101_teensy2.c create mode 100644 keyboards/converter/modelm101_teensy2/modelm101_teensy2.h create mode 100644 keyboards/converter/modelm101_teensy2/readme.md create mode 100644 keyboards/converter/modelm101_teensy2/rules.mk diff --git a/keyboards/converter/modelm101_teensy2/config.h b/keyboards/converter/modelm101_teensy2/config.h new file mode 100644 index 0000000000..eb443856cd --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/config.h @@ -0,0 +1,74 @@ +/* +Copyright 2019 iw0rm3r + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wangfuco +#define PRODUCT IBM Model M 101/102 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, C6, C7, D5, D4 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D6, B0, B1, B2, B3, B7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed (5 is default) */ +#define DEBOUNCE 5 + +/* The Model M has no diodes */ +#define MATRIX_HAS_GHOST + +/* Indicator LEDs */ +#define LED_CAPS_LOCK_PIN E6 +#define LED_PIN_ON_STATE 0 + +/* + * 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/converter/modelm101_teensy2/info.json b/keyboards/converter/modelm101_teensy2/info.json new file mode 100644 index 0000000000..1da0a88738 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "IBM Model M 101 ANSI/102 ISO", + "url": "https://github.com/wangfuco/qmk_firmware/tree/modelm101_teensy2/keyboards/converter/modelm101_teensy2", + "maintainer": "wangfuco", + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.5}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}] + } + } +} diff --git a/keyboards/converter/modelm101_teensy2/keymaps/default/keymap.c b/keyboards/converter/modelm101_teensy2/keymaps/default/keymap.c new file mode 100644 index 0000000000..3f01f2c65c --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2019 iw0rm3r + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), +}; diff --git a/keyboards/converter/modelm101_teensy2/keymaps/default/readme.md b/keyboards/converter/modelm101_teensy2/keymaps/default/readme.md new file mode 100644 index 0000000000..fb91a8ebe5 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for modelm101 \ No newline at end of file diff --git a/keyboards/converter/modelm101_teensy2/modelm101_teensy2.c b/keyboards/converter/modelm101_teensy2/modelm101_teensy2.c new file mode 100644 index 0000000000..8283d91eda --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/modelm101_teensy2.c @@ -0,0 +1,16 @@ +/* Copyright 2019 iw0rm3r + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "modelm101_teensy2.h" diff --git a/keyboards/converter/modelm101_teensy2/modelm101_teensy2.h b/keyboards/converter/modelm101_teensy2/modelm101_teensy2.h new file mode 100644 index 0000000000..1a2cdc8b68 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/modelm101_teensy2.h @@ -0,0 +1,45 @@ +/* Copyright 2019 iw0rm3r + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * The first section contains "names" for physical keys of the keyboard + * and defines their position on the board. + * The second section defines position of the keys on the switch matrix + * (where COLUMNS and ROWS crosses). */ + +#define LAYOUT( \ + K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5P, \ + \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, K4P, K4Q, K4R, K4S, K4T, K4U, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K3O, K3P, K3Q, K3R, K3S, K3T, K3U, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K2O, K2P, K2Q, \ + K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1M, K1N, K1O, K1P, K1Q, K1R, \ + K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J \ +) \ +{ \ +/* 00 */ { KC_NO, KC_NO, K5A, K1B, K5E, K2F, K5F, K2G, K5G, KC_NO, K2L, KC_NO, K0I, K0J, K1N, K0B }, \ +/* 01 */ { KC_NO, K1A, K3A, K2A, K5D, K3F, K4N, K3G, K3M, K5H, K3L, K2O, K2P, K2Q, KC_NO, KC_NO }, \ +/* 02 */ { K0A, KC_NO, K4A, K5B, K5C, K4F, K5J, K4G, K4M, K5I, K4L, K3O, K4O, K4Q, K4P, KC_NO }, \ +/* 03 */ { KC_NO, KC_NO, K4B, K4C, K4D, K4E, K5K, K4H, K4I, K4J, K4K, K5L, K5M, K3Q, K3P, K5N }, \ +/* 04 */ { KC_NO, KC_NO, K3B, K3C, K3D, K3E, KC_NO, K3H, K3I, K3J, K3K, K3R, K3S, K3T, K3U, K5O }, \ +/* 05 */ { KC_NO, KC_NO, K2B, K2C, K2D, K2E, K3N, K2H, K2I, K2J, K2K, K1O, K1P, K1Q, K1R, KC_NO }, \ +/* 06 */ { K0E, K1M, K1C, K1D, K1E, K1F, K2N, K1I, K1J, K1K, K2M, K4R, K4S, K4T, K5P, KC_NO }, \ +/* 07 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K1G, K0C, K1H, KC_NO, KC_NO, K1L, K0G, K0H, K4U, K0F, K0D }, \ +} +/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \ No newline at end of file diff --git a/keyboards/converter/modelm101_teensy2/readme.md b/keyboards/converter/modelm101_teensy2/readme.md new file mode 100644 index 0000000000..d65df72580 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/readme.md @@ -0,0 +1,29 @@ +# modelm101_teensy2 + +![IBM Model M 101 ANSI/102 ISO](https://user-images.githubusercontent.com/46733695/161862805-c891735b-e2e8-418a-ad82-d71c00570eab.jpg) + +This is based on the modelm101 keyboard by iw0rm3r. The difference is that Teensy 2.0 board (produced by PJRC) is used instead of the Teensy 2.0++ due to the availability issues. Only CapsLock LED is supported since Teensy 2.0 only has 25 digital I/0 pins. + +Configuration is build for the Atmel ATmega32U4 controller, which you can easily use on the Teensy 2.0 board (produced by PJRC). + +Pins of the Teensy board you should use by default: +``` +Columns: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +Pins: F0 F1 F4 F5 F6 F7 B6 B5 B4 D7 D6 B0 B1 B2 B3 B7 +-------------------------------------------------------- +Rows: 1 2 3 4 5 6 7 8 +Pins: D0 D1 D2 D3 C6 C7 D5 D4 +-------------------------------------------------------- +Status LEDs: CapsLock +5V ScrollLock NumLock +Pins: E6 5V - - +``` + +Keyboard Maintainer: [wangfuco](https://github.com/wangfuco) +Hardware Supported: Teensy 2.0 board by PJRC +Hardware Availability: https://www.pjrc.com/store/teensy.html + +Make example for this keyboard (after setting up your build environment): + + make converter/modelm101_teensy2:default:teensy + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/converter/modelm101_teensy2/rules.mk b/keyboards/converter/modelm101_teensy2/rules.mk new file mode 100644 index 0000000000..c1c611e577 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = halfkay + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output From acc11f4941649a92fad4588e0598ee808e493cb1 Mon Sep 17 00:00:00 2001 From: Kyle McCreery Date: Thu, 14 Jul 2022 02:26:13 -0400 Subject: [PATCH 38/69] [Keyboard] MechWild BB Steno (#17163) * allowing the kt60 file to be modified so I can do things while waiting for it to be fixed upstream * Initial commit * testing modes * working on puckbuddy firmware. This is all working for now but need to clean it up and personalize it. * needs to be updated from vial build * prepping for PR * added rgb mode cycling to fn1 since it isn't on the encoder for these maps * shipping firmware built. Need to clean up readme and info.json layout * removing puckbuddy files from this branch * readme done, prepping for PR * info.json updated prepping for PR * Restore cirque driver that was modified from puckbuddy testing on this branch * applying changes from review * Update keyboards/mechwild/bbs/bbs.c * Fixed info.json * Apply suggestions from code review --- keyboards/mechwild/bbs/bbs.c | 22 +++++ keyboards/mechwild/bbs/bbs.h | 26 +++++ keyboards/mechwild/bbs/config.h | 96 +++++++++++++++++++ keyboards/mechwild/bbs/info.json | 43 +++++++++ .../mechwild/bbs/keymaps/default/keymap.c | 31 ++++++ keyboards/mechwild/bbs/readme.md | 27 ++++++ keyboards/mechwild/bbs/rules.mk | 23 +++++ 7 files changed, 268 insertions(+) create mode 100644 keyboards/mechwild/bbs/bbs.c create mode 100644 keyboards/mechwild/bbs/bbs.h create mode 100644 keyboards/mechwild/bbs/config.h create mode 100644 keyboards/mechwild/bbs/info.json create mode 100644 keyboards/mechwild/bbs/keymaps/default/keymap.c create mode 100644 keyboards/mechwild/bbs/readme.md create mode 100644 keyboards/mechwild/bbs/rules.mk diff --git a/keyboards/mechwild/bbs/bbs.c b/keyboards/mechwild/bbs/bbs.c new file mode 100644 index 0000000000..cbfaa5ce59 --- /dev/null +++ b/keyboards/mechwild/bbs/bbs.c @@ -0,0 +1,22 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "bbs.h" + +#ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { return false; } + switch (index) { + case 0: + if(active) { tap_code(KC_CLCK); } + break; + break; + } + return true; +} +#endif + +void eeconfig_init_kb() { + steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT + eeconfig_init_user(); +} \ No newline at end of file diff --git a/keyboards/mechwild/bbs/bbs.h b/keyboards/mechwild/bbs/bbs.h new file mode 100644 index 0000000000..2088b68646 --- /dev/null +++ b/keyboards/mechwild/bbs/bbs.h @@ -0,0 +1,26 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B,\ + k23, k24, k25, k26, k27, k28 \ +) { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k16, k17, k18, k19, k1A, k1B }, \ + { k26, k27, k28, k23, k24, k25 } \ +} diff --git a/keyboards/mechwild/bbs/config.h b/keyboards/mechwild/bbs/config.h new file mode 100644 index 0000000000..6fafe637e3 --- /dev/null +++ b/keyboards/mechwild/bbs/config.h @@ -0,0 +1,96 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6D77 // mw = "MechWild" +#define PRODUCT_ID 0x170E +#define DEVICE_VER 0x0001 +#define MANUFACTURER MechWild +#define PRODUCT BB Steno + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 6 + +/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */ +#define DIP_SWITCH_PINS { A0 } + +/* status light pins using the on board LED for the blackpill */ +#define LED_CAPS_LOCK_PIN C13 +#define LED_PIN_ON_STATE 0 + +/* + * 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 { B12, B10, B13, B1, B14 } +#define MATRIX_COL_PINS { B0, A7, A6, A5, A4, A3 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/mechwild/bbs/info.json b/keyboards/mechwild/bbs/info.json new file mode 100644 index 0000000000..b452c67f6f --- /dev/null +++ b/keyboards/mechwild/bbs/info.json @@ -0,0 +1,43 @@ +{ + "keyboard_name": "BBS", + "maintainer": "kylemccreery", + "url": "https://mechwild.com/product/bb-steno/", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"k00", "x":0, "y":0.5}, + {"label":"k01", "x":1, "y":0.5}, + {"label":"k02", "x":2, "y":0.25}, + {"label":"k03", "x":3, "y":0.125}, + {"label":"k04", "x":4, "y":0.25}, + {"label":"k05", "x":5, "y":0.25}, + {"label":"k06", "x":6.75, "y":0.25}, + {"label":"k07", "x":7.75, "y":0.25}, + {"label":"k08", "x":8.75, "y":0.125}, + {"label":"k09", "x":9.75, "y":0.25}, + {"label":"k0A", "x":10.75, "y":0.5}, + {"label":"k0B", "x":11.75, "y":0.5}, + + {"label":"k10", "x":0, "y":1.5}, + {"label":"k11", "x":1, "y":1.5}, + {"label":"k12", "x":2, "y":1.25}, + {"label":"k13", "x":3, "y":1.125}, + {"label":"k14", "x":4, "y":1.25}, + {"label":"k15", "x":5, "y":1.25}, + {"label":"k16", "x":6.75, "y":1.25}, + {"label":"k17", "x":7.75, "y":1.25}, + {"label":"k18", "x":8.75, "y":1.125}, + {"label":"k19", "x":9.75, "y":1.25}, + {"label":"k1A", "x":10.75, "y":1.5}, + {"label":"k1B", "x":11.75, "y":1.5}, + + {"label":"k23", "x":2.75, "y":3.25, "h":1.5}, + {"label":"k24", "x":3.75, "y":3.25, "h":1.5}, + {"label":"k25", "x":4.75, "y":3, "h":1.5}, + {"label":"k26", "x":7, "y":3, "h":1.5}, + {"label":"k27", "x":8, "y":3.25, "h":1.5}, + {"label":"k28", "x":9, "y":3.25, "h":1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/mechwild/bbs/keymaps/default/keymap.c b/keyboards/mechwild/bbs/keymaps/default/keymap.c new file mode 100644 index 0000000000..a37401eca4 --- /dev/null +++ b/keyboards/mechwild/bbs/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "keymap_steno.h" + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1 +}; + +/* + * k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B,\ + * k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B,\ + * k23, k24, k25, k26, k27, k28 \ + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + STN_RES1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, + STN_RES2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, + STN_A, STN_O, STN_N1, STN_N2, STN_E, STN_U + ), + [_FN1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/mechwild/bbs/readme.md b/keyboards/mechwild/bbs/readme.md new file mode 100644 index 0000000000..b13e8fb54e --- /dev/null +++ b/keyboards/mechwild/bbs/readme.md @@ -0,0 +1,27 @@ +# BB Steno (BBS) + +![BBS](https://i.imgur.com/XIjlzKOh.png) + +A bare-bones stenography keyboard. No bells or whistles. Simple, cheap, effective, steno. + +* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery) +* Hardware Supported: BBS v0.1 +* Hardware Availability: [BBS on MechWild](https://mechwild.com/product/bb-steno/) + +Make example for this keyboard (after setting up your build environment): + + make mechwild/bbs:default + +Flashing example for this keyboard: + + make mechwild/bbs: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 (assigned to the top left key) and plug in the keyboard while holding it. +* **Physical reset button**: Press and hold the boot0 button on the blackpill, tap and release the nrst button on the blackpill, then release the boot0 button. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available. diff --git a/keyboards/mechwild/bbs/rules.mk b/keyboards/mechwild/bbs/rules.mk new file mode 100644 index 0000000000..0e59cba428 --- /dev/null +++ b/keyboards/mechwild/bbs/rules.mk @@ -0,0 +1,23 @@ +# 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 = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = yes # Dip Switch Enabled + +# Necessary for stenography functionality +STENO_ENABLE = yes # Enable stenography endpoint +NKRO_ENABLE = yes # Enable N-Key Rollover +KEYBOARD_SHARED_EP = yes # Needed to free up an endpoint in blackpill \ No newline at end of file From 928be32c83033c3cf024d609d69338eccaff9cc3 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 13 Jul 2022 23:34:51 -0700 Subject: [PATCH 39/69] KPrepublic BM80v2 ISO Refactor (#17660) * bm80v2_iso.h: convert tabs to spaces * bm80v2_iso.h: use ___ for KC_NO * bm80v2_iso.h: use QMK 3-character notation * refactor macro for tkl_iso Community Layout compatibility - move the matrix position identifier for Enter to the home row * info.json: correct layout data * rules.mk: tidy-up formatting * readme.md: tidy-up formatting * update maintainer; re-assign copyright * assign ISO-appropriate keycodes in keymaps --- keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c | 2 +- keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h | 28 +-- keyboards/kprepublic/bm80v2_iso/config.h | 2 +- keyboards/kprepublic/bm80v2_iso/info.json | 178 +++++++++--------- .../bm80v2_iso/keymaps/default/keymap.c | 24 +-- .../bm80v2_iso/keymaps/via/keymap.c | 24 +-- keyboards/kprepublic/bm80v2_iso/readme.md | 13 +- keyboards/kprepublic/bm80v2_iso/rules.mk | 23 ++- 8 files changed, 150 insertions(+), 144 deletions(-) diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c index 89a20922c1..90d476aa2c 100644 --- a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c @@ -1,4 +1,4 @@ -/* Copyright 2022 bdtc123 * +/* Copyright 2022 edwardslau * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h index eeb1df7372..cee54e83e8 100644 --- a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h @@ -1,4 +1,4 @@ -/* Copyright 2022 bdtc123 * +/* Copyright 2022 edwardslau * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or @@ -16,19 +16,21 @@ #include "quantum.h" +#define ___ KC_NO + #define LAYOUT_tkl_iso( \ - K0_0, K0_2, K0_3, K0_4, K0_5, K0_6,K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10, \ - K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10, \ - K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10, \ - K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, \ - K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_B, K4_C, K4_F, \ - K5_0, K5_1, K5_2, K5_5, K5_A, K5_B, K5_C, K5_D, K5_E, K5_F, K5_10 \ + K00, K02, K03, K04, K05, K06,K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K2D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ ) { \ - { K0_0, KC_NO, K0_2, K0_3, K0_4, K0_5, K0_6, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10 }, \ - { K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10 }, \ - { K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10 }, \ - { K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_B, K4_C, KC_NO, KC_NO, K4_F, KC_NO }, \ - { K5_0, K5_1, K5_2, KC_NO, KC_NO, K5_5, KC_NO, KC_NO, KC_NO, KC_NO, K5_A, K5_B, K5_C, K5_D, K5_E, K5_F, K5_10 } \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, ___, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h index 62db871a0d..4c5d9f0a67 100644 --- a/keyboards/kprepublic/bm80v2_iso/config.h +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -1,4 +1,4 @@ -/* Copyright 2022 bdtc123 * +/* Copyright 2022 edwardslau * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or diff --git a/keyboards/kprepublic/bm80v2_iso/info.json b/keyboards/kprepublic/bm80v2_iso/info.json index fa1f74899f..3b440f048a 100644 --- a/keyboards/kprepublic/bm80v2_iso/info.json +++ b/keyboards/kprepublic/bm80v2_iso/info.json @@ -1,103 +1,103 @@ { "keyboard_name": "bm80v2_iso", "url": "", - "maintainer": "qmk", + "maintainer": "edwardslau", "layouts": { "LAYOUT_tkl_iso": { "layout": [ - { "x":0, "y":0}, - { "x":2, "y":0}, - { "x":3, "y":0}, - { "x":4, "y":0}, - { "x":5, "y":0}, - { "x":6.5, "y":0}, - { "x":7.5, "y":0}, - { "x":8.5, "y":0}, - { "x":9.5, "y":0}, - { "x":11, "y":0}, - { "x":12, "y":0}, - { "x":13, "y":0}, - { "x":14, "y":0}, - { "x":15.25, "y":0}, - { "x":16.25, "y":0}, - { "x":17.25, "y":0}, + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, - { "x":0, "y":1.5}, - { "x":1, "y":1.5}, - { "x":2, "y":1.5}, - { "x":3, "y":1.5}, - { "x":4, "y":1.5}, - { "x":5, "y":1.5}, - { "x":6, "y":1.5}, - { "x":7, "y":1.5}, - { "x":8, "y":1.5}, - { "x":9, "y":1.5}, - { "x":10, "y":1.5}, - { "x":11, "y":1.5}, - { "x":12, "y":1.5}, - { "x":13, "y":1.5, "w":2}, - { "x":15.25, "y":1.5}, - { "x":16.25, "y":1.5}, - { "x":17.25, "y":1.5}, + {"x":0, "y":1.5}, + {"x":1, "y":1.5}, + {"x":2, "y":1.5}, + {"x":3, "y":1.5}, + {"x":4, "y":1.5}, + {"x":5, "y":1.5}, + {"x":6, "y":1.5}, + {"x":7, "y":1.5}, + {"x":8, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.5}, + {"x":11, "y":1.5}, + {"x":12, "y":1.5}, + {"x":13, "y":1.5, "w":2}, + {"x":15.25, "y":1.5}, + {"x":16.25, "y":1.5}, + {"x":17.25, "y":1.5}, - { "x":0, "y":2.5, "w":1.5}, - { "x":1.5, "y":2.5}, - { "x":2.5, "y":2.5}, - { "x":3.5, "y":2.5}, - { "x":4.5, "y":2.5}, - { "x":5.5, "y":2.5}, - { "x":6.5, "y":2.5}, - { "x":7.5, "y":2.5}, - { "x":8.5, "y":2.5}, - { "x":9.5, "y":2.5}, - { "x":10.5, "y":2.5}, - { "x":11.5, "y":2.5}, - { "x":12.5, "y":2.5}, - { "x":13.75,"y":2.5}, - { "x":15.25, "y":2.5}, - { "x":16.25, "y":2.5}, - { "x":17.25, "y":2.5}, + {"x":0, "y":2.5, "w":1.5}, + {"x":1.5, "y":2.5}, + {"x":2.5, "y":2.5}, + {"x":3.5, "y":2.5}, + {"x":4.5, "y":2.5}, + {"x":5.5, "y":2.5}, + {"x":6.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":8.5, "y":2.5}, + {"x":9.5, "y":2.5}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.5}, + {"x":12.5, "y":2.5}, + {"x":15.25, "y":2.5}, + {"x":16.25, "y":2.5}, + {"x":17.25, "y":2.5}, - { "x":0, "y":3.5, "w":1.75}, - { "x":1.75, "y":3.5}, - { "x":2.75, "y":3.5}, - { "x":3.75, "y":3.5}, - { "x":4.75, "y":3.5}, - { "x":5.75, "y":3.5}, - { "x":6.75, "y":3.5}, - { "x":7.75, "y":3.5}, - { "x":8.75, "y":3.5}, - { "x":9.75, "y":3.5}, - { "x":10.75, "y":3.5}, - { "x":11.75, "y":3.5}, - { "x":13.75, "y":3.5, "w":1.25, "h":2}, + {"x":0, "y":3.5, "w":1.75}, + {"x":1.75, "y":3.5}, + {"x":2.75, "y":3.5}, + {"x":3.75, "y":3.5}, + {"x":4.75, "y":3.5}, + {"x":5.75, "y":3.5}, + {"x":6.75, "y":3.5}, + {"x":7.75, "y":3.5}, + {"x":8.75, "y":3.5}, + {"x":9.75, "y":3.5}, + {"x":10.75, "y":3.5}, + {"x":11.75, "y":3.5}, + {"x":12.75, "y":3.5}, + {"x":13.75, "y":2.5, "w":1.25, "h":2}, - { "x":0, "y":4.5, "w":1.25}, - { "x":1.25, "y":4.5}, - { "x":2.25, "y":4.5}, - { "x":3.25, "y":4.5}, - { "x":4.25, "y":4.5}, - { "x":5.25, "y":4.5}, - { "x":6.25, "y":4.5}, - { "x":7.25, "y":4.5}, - { "x":8.25, "y":4.5}, - { "x":9.25, "y":4.5}, - { "x":10.25, "y":4.5}, - { "x":11.25, "y":4.5}, - { "x":12.25, "y":4.5, "w":2.75}, - { "x":16.25, "y":4.5}, + {"x":0, "y":4.5, "w":1.25}, + {"x":1.25, "y":4.5}, + {"x":2.25, "y":4.5}, + {"x":3.25, "y":4.5}, + {"x":4.25, "y":4.5}, + {"x":5.25, "y":4.5}, + {"x":6.25, "y":4.5}, + {"x":7.25, "y":4.5}, + {"x":8.25, "y":4.5}, + {"x":9.25, "y":4.5}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.5}, + {"x":12.25, "y":4.5, "w":2.75}, + {"x":16.25, "y":4.5}, - { "x":0, "y":5.5, "w":1.25}, - { "x":1.25, "y":5.5, "w":1.25}, - { "x":2.5, "y":5.5, "w":1.25}, - { "x":3.75, "y":5.5, "w":6.25}, - { "x":10, "y":5.5, "w":1.25}, - { "x":11.25, "y":5.5, "w":1.25}, - { "x":12.5, "y":5.5, "w":1.25}, - { "x":13.75, "y":5.5, "w":1.25}, - { "x":15.25, "y":5.5}, - { "x":16.25, "y":5.5}, - { "x":17.25, "y":5.5} + {"x":0, "y":5.5, "w":1.25}, + {"x":1.25, "y":5.5, "w":1.25}, + {"x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"x":10, "y":5.5, "w":1.25}, + {"x":11.25, "y":5.5, "w":1.25}, + {"x":12.5, "y":5.5, "w":1.25}, + {"x":13.75, "y":5.5, "w":1.25}, + {"x":15.25, "y":5.5}, + {"x":16.25, "y":5.5}, + {"x":17.25, "y":5.5} ] } } diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c index 9d5a3ba6a0..731899439d 100644 --- a/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c @@ -7,36 +7,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_iso( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, - KC_LSFT, KC_SPC, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_tkl_iso( RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_tkl_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_tkl_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c b/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c index a8a28ac677..731899439d 100644 --- a/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c @@ -7,36 +7,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_iso( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, - KC_LSFT, KC_SPC, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_tkl_iso( RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_tkl_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_tkl_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/kprepublic/bm80v2_iso/readme.md b/keyboards/kprepublic/bm80v2_iso/readme.md index 6e353137ba..bb5d8e3728 100644 --- a/keyboards/kprepublic/bm80v2_iso/readme.md +++ b/keyboards/kprepublic/bm80v2_iso/readme.md @@ -1,20 +1,21 @@ -# %bm80v2_iso% +# bm80v2_iso A 80% ISO hotswap inswitch RGB keyboard. -* Keyboard Maintainer: [%bdtc123%](https://github.com/bdtc123) +* Keyboard Maintainer: [edwardslau](https://github.com/edwardslau) * Hardware Supported: BM80V2_ISO * Hardware Availability: [KP Republic](https://kprepublic.com/products/bm80-iso-bm80rgb-80-rgb-hot-swappable-custom-mechanical-keyboard-pcb-programmed-rgb-switch-underglow-type-c-qmk-via?_pos=9&_sid=b43edd6ac&_ss=r) Make example for this keyboard (after setting up your build environment): - make kprepublic bm80v2_iso:default + make kprepublic/bm80v2_iso:default Flashing example for this keyboard: - make kprepublic bm80v2_iso: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). + make kprepublic/bm80v2_iso:default:flash ## Bootloader + * **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead + +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/kprepublic/bm80v2_iso/rules.mk b/keyboards/kprepublic/bm80v2_iso/rules.mk index 75ddddf946..e726773958 100644 --- a/keyboards/kprepublic/bm80v2_iso/rules.mk +++ b/keyboards/kprepublic/bm80v2_iso/rules.mk @@ -7,16 +7,19 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -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_ENABLE = yes # Use RGB matrix +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_ENABLE = yes # Use RGB matrix RGB_MATRIX_DRIVER = IS31FL3741 + LTO_ENABLE = yes + LAYOUTS = tkl_iso From 2efad277eedc1ef3c2c1e7ae5214a4216143432a Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Thu, 14 Jul 2022 19:22:31 +0800 Subject: [PATCH 40/69] [Keyboard] Readme file correction (#17674) --- keyboards/mode/m75h/readme.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/keyboards/mode/m75h/readme.md b/keyboards/mode/m75h/readme.md index a663847278..7b9a6a8710 100644 --- a/keyboards/mode/m75h/readme.md +++ b/keyboards/mode/m75h/readme.md @@ -1,8 +1,6 @@ -# Mode SixtyFive M65S +# Mode SixtyFive M75H -![MODE75](https://raw.githubusercontent.com/Gondolindrim/file_hosting/main/mode_sixtyfive/Group_95_1024x1024.jpg) - -The M65S is the solderable PCB for the Mode SixtyFive keyboard, a sixty-five-percent high-end keyboard sold by [Mode Designs](https://shop.modedesigns.com/). +The M75H is the hot-swappable PCB for the Mode SeventyFive keyboard, a seventy-five-percent high-end keyboard sold by [Mode Designs](https://shop.modedesigns.com/). - Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) - Hardware Supported: proprietary PCB using STM32F401 controller @@ -10,10 +8,10 @@ The M65S is the solderable PCB for the Mode SixtyFive keyboard, a sixty-five-per Make example for this keyboard (after setting up your build environment): - make mode/m65s:default + make mode/m75h:default Flashing example for this keyboard: - make mode/m65s:default:flash + make mode/m75h: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). From 67f9777b8fb62146655d63c690d549348399e175 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 14 Jul 2022 06:08:54 -0700 Subject: [PATCH 41/69] [Keyboard] Fix Tractyl Manuform 4x6 json (#17681) --- .../tractyl_manuform/4x6_right/info.json | 34 ++++++------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/info.json b/keyboards/handwired/tractyl_manuform/4x6_right/info.json index e3da8b444c..0681db1f3e 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/info.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/info.json @@ -3,7 +3,7 @@ "url": "", "maintainer": "drashna", "layouts": { - "LAYOUT_5x6_right": { + "LAYOUT_4x6_right": { "layout": [ {"label":"L00", "x":0, "y":0}, {"label":"L01", "x":1, "y":0}, @@ -41,32 +41,20 @@ {"label":"R23", "x":14, "y":2}, {"label":"R24", "x":15, "y":2}, {"label":"R25", "x":16, "y":2}, - {"label":"L30", "x":0, "y":3}, - {"label":"L31", "x":1, "y":3}, {"label":"L32", "x":2, "y":3}, {"label":"L33", "x":3, "y":3}, - {"label":"L34", "x":4, "y":3}, - {"label":"L35", "x":5, "y":3}, - {"label":"R30", "x":11, "y":3}, - {"label":"R31", "x":12, "y":3}, {"label":"R32", "x":13, "y":3}, {"label":"R33", "x":14, "y":3}, - {"label":"R34", "x":15, "y":3}, - {"label":"R35", "x":16, "y":3}, - {"label":"L42", "x":2, "y":4}, - {"label":"L43", "x":3, "y":4}, - {"label":"R42", "x":13, "y":4}, - {"label":"R43", "x":14, "y":4}, - {"label":"L44", "x":4, "y":5}, - {"label":"L45", "x":5, "y":5}, - {"label":"R41", "x":12, "y":5}, - {"label":"L54", "x":6, "y":6}, - {"label":"L55", "x":7, "y":6}, - {"label":"R51", "x":10, "y":6}, - {"label":"L52", "x":6, "y":7}, - {"label":"L53", "x":7, "y":7}, - {"label":"R52", "x":9, "y":7}, - {"label":"R53", "x":10, "y":7} + {"label":"L34", "x":4, "y":4}, + {"label":"L35", "x":5, "y":4}, + {"label":"R31", "x":12, "y":4}, + {"label":"L44", "x":6, "y":5}, + {"label":"L45", "x":7, "y":5}, + {"label":"R41", "x":10, "y":5}, + {"label":"L42", "x":6, "y":6}, + {"label":"L43", "x":7, "y":6}, + {"label":"R42", "x":9, "y":6}, + {"label":"R43", "x":10, "y":6} ] } } From 2d7de91888cf16c488a3e2b329e6e043a5b2da72 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Jul 2022 14:31:37 -0700 Subject: [PATCH 42/69] Nayeon Community Layout support (#17665) * Nayeon Community Layout support - macro `LAYOUT_ansi` renamed to `LAYOUT_tkl_f13_ansi_tsangan` - macro `LAYOUT_iso` renamed to `LAYOUT_tkl_f13_iso_tsangan` - Community Layout support enabled in `rules.mk` * add LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift * add LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift * info.json: update maintainer field Field is meant to reference the GitHub username of the maintainer. --- keyboards/abatskeyboardclub/nayeon/info.json | 207 +++++++++++++++++- .../nayeon/keymaps/default/keymap.c | 2 +- .../nayeon/keymaps/iso/keymap.c | 2 +- keyboards/abatskeyboardclub/nayeon/nayeon.h | 44 +++- keyboards/abatskeyboardclub/nayeon/rules.mk | 2 + 5 files changed, 250 insertions(+), 7 deletions(-) diff --git a/keyboards/abatskeyboardclub/nayeon/info.json b/keyboards/abatskeyboardclub/nayeon/info.json index 3df680f62b..d5281a3031 100644 --- a/keyboards/abatskeyboardclub/nayeon/info.json +++ b/keyboards/abatskeyboardclub/nayeon/info.json @@ -1,9 +1,13 @@ { "keyboard_name": "Nayeon", "url": "", - "maintainer": "Ramon Imbao", + "maintainer": "ramonimbao", + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi_tsangan", + "LAYOUT_iso": "LAYOUT_tkl_f13_iso_tsangan" + }, "layouts": { - "LAYOUT_ansi": { + "LAYOUT_tkl_f13_ansi_tsangan": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, @@ -99,7 +103,105 @@ {"x":17.25, "y":5.25} ] }, - "LAYOUT_iso": { + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, @@ -196,6 +298,105 @@ {"x":17.25, "y":5.25} ] }, + "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, "LAYOUT_all": { "layout": [ {"x":0, "y":0}, diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c b/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c index f8d8d35058..3ea63b5b24 100644 --- a/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c +++ b/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( + [0] = LAYOUT_tkl_f13_ansi_tsangan( 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, diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c b/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c index eeef21b19e..ae81182acc 100644 --- a/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c +++ b/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( + [0] = LAYOUT_tkl_f13_iso_tsangan( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, diff --git a/keyboards/abatskeyboardclub/nayeon/nayeon.h b/keyboards/abatskeyboardclub/nayeon/nayeon.h index ba0b1498f7..fb1806f32d 100644 --- a/keyboards/abatskeyboardclub/nayeon/nayeon.h +++ b/keyboards/abatskeyboardclub/nayeon/nayeon.h @@ -24,7 +24,7 @@ // Full backspace // Full right shift // Full left shift -#define LAYOUT_ansi( \ +#define LAYOUT_tkl_f13_ansi_tsangan( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ @@ -40,11 +40,31 @@ { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, ___, k5b, k5c, k5d, k5e, k5f, k5g }, \ } +// ANSI layout +// Split backspace +// Split right shift +// Full left shift +#define LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k3d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, ___, ___, ___ }, \ + { k40, ___, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, ___, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + // ISO layout // Full backspace // Full right shift // Split left shift -#define LAYOUT_iso( \ +#define LAYOUT_tkl_f13_iso_tsangan( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ @@ -60,6 +80,26 @@ { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, ___, k5b, k5c, k5d, k5e, k5f, k5g }, \ } +// ISO layout +// Split backspace +// Split right shift +// Split left shift +#define LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k3d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k2d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, ___, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + // Layout for VIA // Split backspace // Split left shift diff --git a/keyboards/abatskeyboardclub/nayeon/rules.mk b/keyboards/abatskeyboardclub/nayeon/rules.mk index 1f52c37154..e94c1ace18 100644 --- a/keyboards/abatskeyboardclub/nayeon/rules.mk +++ b/keyboards/abatskeyboardclub/nayeon/rules.mk @@ -16,3 +16,5 @@ 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 + +LAYOUTS = tkl_f13_ansi_tsangan tkl_f13_ansi_tsangan_split_bs_rshift tkl_f13_iso_tsangan tkl_f13_iso_tsangan_split_bs_rshift From be568177435c94a7c18217c5486e2df1062c3d73 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Jul 2022 14:51:25 -0700 Subject: [PATCH 43/69] KB16-01: correct QMK Configurator key sequence (#17670) --- keyboards/doio/kb16/info.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/keyboards/doio/kb16/info.json b/keyboards/doio/kb16/info.json index 08ef309f19..c3dd515ea8 100644 --- a/keyboards/doio/kb16/info.json +++ b/keyboards/doio/kb16/info.json @@ -9,18 +9,20 @@ {"label":"2@", "x":1, "y":0}, {"label":"3#", "x":2, "y":0}, {"label":"4$", "x":3, "y":0}, + {"label":"Encoder 1 CCW", "x":4.25, "y":0, "w":0.5}, {"label":"Encoder 1", "x":4.75, "y":0}, {"label":"Encoder 1 CW", "x":5.75, "y":0, "w":0.5}, - {"label":"Encoder 2 CCW", "x":6.25, "y":0, "w":0.5}, - {"label":"Encoder 2", "x":6.75, "y":0}, - {"label":"Encoder 2 CW", "x":7.75, "y":0, "w":0.5}, {"label":"5%", "x":0, "y":1}, {"label":"6^", "x":1, "y":1}, {"label":"7&", "x":2, "y":1}, {"label":"8*", "x":3, "y":1}, + {"label":"Encoder 2 CCW", "x":6.25, "y":0, "w":0.5}, + {"label":"Encoder 2", "x":6.75, "y":0}, + {"label":"Encoder 2 CW", "x":7.75, "y":0, "w":0.5}, + {"label":"9(", "x":0, "y":2}, {"label":"0)", "x":1, "y":2}, {"label":"\u2191", "x":2, "y":2}, From 807620fa3c9995db29f0752162cee136a1381c13 Mon Sep 17 00:00:00 2001 From: Will Winder Date: Thu, 14 Jul 2022 22:45:08 -0400 Subject: [PATCH 44/69] [Keyboard] Add Chocofly v1 (#17289) * [Keyboard] Add Chocofly v1 * PR Feedback * Small change to keymap. * Replace KC__VOLUP and KC__VOLDOWN with single underscore version. * Apply suggestions from code review * Required for my PC * Required for my PC --- keyboards/chocofly/chocofly.c | 16 +++++ keyboards/chocofly/chocofly.h | 10 ++++ keyboards/chocofly/config.h | 6 ++ keyboards/chocofly/readme.md | 23 +++++++ keyboards/chocofly/v1/config.h | 22 +++++++ .../chocofly/v1/keymaps/default/keymap.c | 44 ++++++++++++++ keyboards/chocofly/v1/keymaps/winder/keymap.c | 60 +++++++++++++++++++ keyboards/chocofly/v1/rules.mk | 20 +++++++ keyboards/chocofly/v1/v1.c | 4 ++ keyboards/chocofly/v1/v1.h | 28 +++++++++ 10 files changed, 233 insertions(+) create mode 100644 keyboards/chocofly/chocofly.c create mode 100644 keyboards/chocofly/chocofly.h create mode 100644 keyboards/chocofly/config.h create mode 100644 keyboards/chocofly/readme.md create mode 100644 keyboards/chocofly/v1/config.h create mode 100644 keyboards/chocofly/v1/keymaps/default/keymap.c create mode 100644 keyboards/chocofly/v1/keymaps/winder/keymap.c create mode 100644 keyboards/chocofly/v1/rules.mk create mode 100644 keyboards/chocofly/v1/v1.c create mode 100644 keyboards/chocofly/v1/v1.h diff --git a/keyboards/chocofly/chocofly.c b/keyboards/chocofly/chocofly.c new file mode 100644 index 0000000000..8ae38602ab --- /dev/null +++ b/keyboards/chocofly/chocofly.c @@ -0,0 +1,16 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "chocofly.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return false; +} +#endif diff --git a/keyboards/chocofly/chocofly.h b/keyboards/chocofly/chocofly.h new file mode 100644 index 0000000000..7d94774625 --- /dev/null +++ b/keyboards/chocofly/chocofly.h @@ -0,0 +1,10 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#ifdef KEYBOARD_chocofly_v1 + #include "v1.h" +#endif + +#include "quantum.h" diff --git a/keyboards/chocofly/config.h b/keyboards/chocofly/config.h new file mode 100644 index 0000000000..eb9c37d38a --- /dev/null +++ b/keyboards/chocofly/config.h @@ -0,0 +1,6 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" diff --git a/keyboards/chocofly/readme.md b/keyboards/chocofly/readme.md new file mode 100644 index 0000000000..0d9db2c04b --- /dev/null +++ b/keyboards/chocofly/readme.md @@ -0,0 +1,23 @@ +# Chocofly + +![Chocofly v1.0](https://github.com/vlkv/chocofly/blob/master/images/chocofly_v1-0.jpg) + +An open source ergonomic monoblock 60% keyboard. + +* Keyboard Maintainer: [Vitaly Volkov](https://github.com/vlkv) +* Hardware Supported: Chocofly PCB v1, Pro Micro 5V/16MHz and compatible. +* Hardware Availability: [github.com/vlkv/chocofly](https://github.com/vlkv/chocofly) + +Make example for this keyboard (after setting up your build environment): + + make chocofly/v1:default + +Flashing example for this keyboard: + + make chocofly/v1:default:flash + +## Bootloader + +Briefly press the button along the top edge of the PCB next to the microcontroller. + +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/chocofly/v1/config.h b/keyboards/chocofly/v1/config.h new file mode 100644 index 0000000000..e5bedf80c6 --- /dev/null +++ b/keyboards/chocofly/v1/config.h @@ -0,0 +1,22 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define VENDOR_ID 0xCEE2 +#define PRODUCT_ID 0x1001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER vitvlkv +#define PRODUCT Chocofly + +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 } + +#define DIODE_DIRECTION COL2ROW + +#define ENCODERS_PAD_A { D3 } +#define ENCODERS_PAD_B { D2 } +#define ENCODER_RESOLUTION 2 diff --git a/keyboards/chocofly/v1/keymaps/default/keymap.c b/keyboards/chocofly/v1/keymaps/default/keymap.c new file mode 100644 index 0000000000..b128e5e17b --- /dev/null +++ b/keyboards/chocofly/v1/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, +}; + +#define RS_SPC LT(_RAISE, KC_SPC) +#define LW_LGUI LT(_LOWER, KC_LGUI) +#define RS_LGUI LT(_RAISE, KC_LGUI) +#define MT_LALT LALT_T(KC_ESC) +#define MT_RALT RALT_T(KC_ENT) +#define MT_LSFT LSFT_T(KC_EQL) +#define MT_RSFT RSFT_T(KC_MINS) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_BSLS, KC_A, KC_S, KC_D, KC_F, KC_G, KC__MUTE, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_INS, KC_PSCR, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, + LW_LGUI, MT_LSFT, RS_SPC, MT_LALT, MT_RALT, MO(_LOWER),MT_RSFT, RS_LGUI + ), + [_LOWER] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_UNDS, KC_PLUS, KC_EQL, + _______, KC_0, KC_1, KC_2, KC_3, KC_PCMM, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX, + _______, KC_0, KC_4, KC_5, KC_6, KC_DEL, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, + _______, KC_0, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, XXXXXXX, KC_PGUP, KC_APP, KC_PGDN, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_RAISE] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_UNDS, KC_PLUS, KC_EQL, + _______, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_EXLM, KC_AT, KC_HASH, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, KC_LPRN, KC_RPRN, KC_DEL, _______, KC_BSPC, KC_DLR, KC_PERC, KC_CIRC, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, XXXXXXX, _______, _______, _______, _______, XXXXXXX, KC_AMPR, KC_ASTR, KC_PCMM, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + diff --git a/keyboards/chocofly/v1/keymaps/winder/keymap.c b/keyboards/chocofly/v1/keymaps/winder/keymap.c new file mode 100644 index 0000000000..7d1889b225 --- /dev/null +++ b/keyboards/chocofly/v1/keymaps/winder/keymap.c @@ -0,0 +1,60 @@ +// Copyright 2022 Will Winder (@winder) +// SPDX-License-Identifier: GPL-2.0-or-later +// +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, +}; + +#define FN_1 MO(_LOWER) +#define FN_2 MO(_RAISE) +#define TRMINAL LGUI(KC_ENT) +#define RESIZE LGUI(KC_R) +#define BROWSER LSG(KC_ENT) // Left Shift + GUI, ENT. + +// required for my PC +#undef KC_VOLU +#undef KC_VOLD +#define KC_VOLU KC__VOLUP +#define KC_VOLD KC__VOLDOWN + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_UNDS, + KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_MUTE, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , TRMINAL, BROWSER, RESIZE , KC_UNDS, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + KC_LALT, KC_LGUI, FN_1 , KC_ENT , FN_2 , KC_SPC , KC_BSPC, KC_DEL + ), + [_LOWER] = LAYOUT( + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL , + KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, + _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_RAISE] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_0, KC_1, KC_2, KC_3, KC_BSPC, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_0, KC_4, KC_5, KC_6, KC_DEL, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, XXXXXXX, XXXXXXX, + _______, KC_0, KC_7, KC_8, KC_9, KC_DOT, _______, _______, _______, _______, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + return false; +} +#endif diff --git a/keyboards/chocofly/v1/rules.mk b/keyboards/chocofly/v1/rules.mk new file mode 100644 index 0000000000..777b9b9872 --- /dev/null +++ b/keyboards/chocofly/v1/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +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 + +ENCODER_ENABLE = yes diff --git a/keyboards/chocofly/v1/v1.c b/keyboards/chocofly/v1/v1.c new file mode 100644 index 0000000000..6c142b7453 --- /dev/null +++ b/keyboards/chocofly/v1/v1.c @@ -0,0 +1,4 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "v1.h" diff --git a/keyboards/chocofly/v1/v1.h b/keyboards/chocofly/v1/v1.h new file mode 100644 index 0000000000..5f07f6c325 --- /dev/null +++ b/keyboards/chocofly/v1/v1.h @@ -0,0 +1,28 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "chocofly.h" + +#include "quantum.h" + +#define K__ KC_NO + +#define LAYOUT( \ + K01, K07, K02, K08, K03, K09, K11, K04, K12, K05, K13, K06, \ + K14, K22, K15, K23, K16, K24, K27, K19, K28, K20, K29, K21, \ + K30, K38, K31, K39, K32, K40, K10, K43, K35, K44, K36, K45, K37, \ + K46, K54, K47, K55, K48, K56, K25, K17, K18, K26, K59, K51, K60, K52, K61, K53, \ + K57, K49, K41, K33, K34, K42, K50, K58 \ +) \ +{ \ + { K01, K02, K03, K__, K__, K04, K05, K06}, \ + { K07, K08, K09, K10, K__, K11, K12, K13}, \ + { K14, K15, K16, K17, K18, K19, K20, K21}, \ + { K22, K23, K24, K25, K26, K27, K28, K29}, \ + { K30, K31, K32, K33, K34, K35, K36, K37}, \ + { K38, K39, K40, K41, K42, K43, K44, K45}, \ + { K46, K47, K48, K49, K50, K51, K52, K53}, \ + { K54, K55, K56, K57, K58, K59, K60, K61} \ +} From 16c91e0cf2f01cc28b32c22d108e806538f7dba7 Mon Sep 17 00:00:00 2001 From: Sam <47176495+ItsFiremanSam@users.noreply.github.com> Date: Fri, 15 Jul 2022 04:52:39 +0200 Subject: [PATCH 45/69] [Keyboard] Added TutelPad keyboard (#16975) * TutelPad firmware v1.0 * Added VIA compatibility * Update keyboards/0xcb/tutelpad/config.h * Update keyboards/0xcb/tutelpad/keymaps/via/keymap.c * Update keyboards/0xcb/tutelpad/keymaps/via/keymap.c * Update keyboards/0xcb/tutelpad/keymaps/via/keymap.c * Add new OLED image, implement suggested fixes * Update keyboards/0xcb/tutelpad/rules.mk * Update keyboards/0xcb/tutelpad/rules.mk --- keyboards/0xcb/tutelpad/config.h | 96 ++++++++++++++++ keyboards/0xcb/tutelpad/info.json | 20 ++++ .../0xcb/tutelpad/keymaps/default/keymap.c | 29 +++++ keyboards/0xcb/tutelpad/keymaps/via/keymap.c | 39 +++++++ keyboards/0xcb/tutelpad/keymaps/via/rules.mk | 1 + keyboards/0xcb/tutelpad/readme.md | 19 ++++ keyboards/0xcb/tutelpad/rules.mk | 21 ++++ keyboards/0xcb/tutelpad/tutelpad.c | 106 ++++++++++++++++++ keyboards/0xcb/tutelpad/tutelpad.h | 35 ++++++ 9 files changed, 366 insertions(+) create mode 100644 keyboards/0xcb/tutelpad/config.h create mode 100644 keyboards/0xcb/tutelpad/info.json create mode 100644 keyboards/0xcb/tutelpad/keymaps/default/keymap.c create mode 100644 keyboards/0xcb/tutelpad/keymaps/via/keymap.c create mode 100644 keyboards/0xcb/tutelpad/keymaps/via/rules.mk create mode 100644 keyboards/0xcb/tutelpad/readme.md create mode 100644 keyboards/0xcb/tutelpad/rules.mk create mode 100644 keyboards/0xcb/tutelpad/tutelpad.c create mode 100644 keyboards/0xcb/tutelpad/tutelpad.h diff --git a/keyboards/0xcb/tutelpad/config.h b/keyboards/0xcb/tutelpad/config.h new file mode 100644 index 0000000000..89e5ef6ba0 --- /dev/null +++ b/keyboards/0xcb/tutelpad/config.h @@ -0,0 +1,96 @@ +/* Copyright 2022 ItsFiremanSam + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for 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 0xCB00 +#define PRODUCT_ID 0xF09F +#define DEVICE_VER 0x0001 +#define MANUFACTURER ItsFiremanSam +#define PRODUCT TutelPad + +/* key matrix size */ +#define MATRIX_ROWS 2 +#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) + * + */ +/* Keyboard Matrix Assignments */ +#define DIRECT_PINS { \ + { E6, D7, B1, B3 }, \ + { B5, B4, B2, B6 } \ +} + +#define RGB_DI_PIN D3 // LED data pin on controller +#define RGBLED_NUM 4 // Number of LEDs connected + +#define RGBLIGHT_HUE_STEP 10 // The number of steps to cycle through the hue by +#define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by +#define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by +#define RGBLIGHT_LIMIT_VAL 255 // Max brightness level +#define RGBLIGHT_SLEEP // RGB will switch off when host goes to sleep + +#define RGBLIGHT_EFFECT_BREATHING // Enable all additional RGB animation modes +#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 OLED_TIMEOUT 20000 // Turns off OLED after said amount of milliseconds +#define OLED_BRIGHTNESS 128 +#define OLED_DISPLAY_128X64 + + +/* 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 + +/* + * 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 1 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/0xcb/tutelpad/info.json b/keyboards/0xcb/tutelpad/info.json new file mode 100644 index 0000000000..8a757a8e28 --- /dev/null +++ b/keyboards/0xcb/tutelpad/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "TutelPad", + "url": "", + "maintainer": "ItsFiremanSam", + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "k03", "x": 0, "y": 0}, + {"label": "k02", "x": 1, "y": 0}, + {"label": "k01", "x": 2, "y": 0}, + {"label": "k00", "x": 3, "y": 0}, + + {"label": "k13", "x": 0, "y": 1}, + {"label": "k12", "x": 1, "y": 1}, + {"label": "k11", "x": 2, "y": 1}, + {"label": "k10", "x": 3, "y": 1} + ] + } + } +} diff --git a/keyboards/0xcb/tutelpad/keymaps/default/keymap.c b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c new file mode 100644 index 0000000000..513e7d9f33 --- /dev/null +++ b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +/* Copyright 2022 ItsFiremanSam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ) +}; \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/keymaps/via/keymap.c b/keyboards/0xcb/tutelpad/keymaps/via/keymap.c new file mode 100644 index 0000000000..c617fce75e --- /dev/null +++ b/keyboards/0xcb/tutelpad/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2022 ItsFiremanSam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, + KC_5, LT(1, KC_6), LT(1, KC_7), LT(1, KC_8) + ), + + [1] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______ + ), +}; \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/keymaps/via/rules.mk b/keyboards/0xcb/tutelpad/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/0xcb/tutelpad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/readme.md b/keyboards/0xcb/tutelpad/readme.md new file mode 100644 index 0000000000..8fb8c970e7 --- /dev/null +++ b/keyboards/0xcb/tutelpad/readme.md @@ -0,0 +1,19 @@ +# TutelPad macropad + +* Keyboard Maintainer: [ItsFiremanSam](https://github.com/ItsFiremanSam) +* Hardware Supported: [TutelPad GitHub](https://github.com/0xCB-dev/0xCB-TutelPad) +* Hardware Availability: [KeebSupply](https://keeb.supply/) + +## Bootloader + +You can enter the bootloader by pressing the reset switch on the side while the keyboard is plugged in. You can also short the GND and RST pads on the controller. + +Make example for this keyboard (after setting up your build environment): + + make 0xcb/tutelpad:default + +Flashing example for this keyboard: + + make 0xcb/tutelpad: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/0xcb/tutelpad/rules.mk b/keyboards/0xcb/tutelpad/rules.mk new file mode 100644 index 0000000000..e022c905cd --- /dev/null +++ b/keyboards/0xcb/tutelpad/rules.mk @@ -0,0 +1,21 @@ +## MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/tutelpad.c b/keyboards/0xcb/tutelpad/tutelpad.c new file mode 100644 index 0000000000..25c2d22219 --- /dev/null +++ b/keyboards/0xcb/tutelpad/tutelpad.c @@ -0,0 +1,106 @@ +/* Copyright 2022 ItsFiremanSam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "tutelpad.h" + +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +static void render_logo(void) { + static const char PROGMEM tutel[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + +oled_write_raw_P(tutel, sizeof(tutel)); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + render_logo(); + + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/tutelpad.h b/keyboards/0xcb/tutelpad/tutelpad.h new file mode 100644 index 0000000000..0115c50fa4 --- /dev/null +++ b/keyboards/0xcb/tutelpad/tutelpad.h @@ -0,0 +1,35 @@ +/* Copyright 2022 ItsFiremanSam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13 \ +) { \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 } \ +} From 3c6765b21c85065cb423ccc0275c2f4915354f89 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 15 Jul 2022 03:57:34 +0100 Subject: [PATCH 46/69] Ignore kbfirmware exports (#17687) --- .gitignore | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index e9bf3c2205..de2627d9d6 100644 --- a/.gitignore +++ b/.gitignore @@ -27,16 +27,11 @@ quantum/version.h *.uf2 # Old-style QMK Makefiles -/keyboards/*/Makefile -/keyboards/*/*/Makefile -/keyboards/*/*/*/Makefile -/keyboards/*/*/*/*/Makefile -/keyboards/*/*/*/*/*/Makefile -/keyboards/*/keymaps/Makefile -/keyboards/*/*/keymaps/Makefile -/keyboards/*/*/*/keymaps/Makefile -/keyboards/*/*/*/*/keymaps/Makefile -/keyboards/*/*/*/*/*/keymaps/Makefile +/keyboards/**/Makefile + +# kbfirmware.... +/keyboards/**/kb.h +/keyboards/**/kb.c # Eclipse/PyCharm/Other IDE Settings *.iml From 0ececbcdb73d73e513ebf135d60427d633a34c23 Mon Sep 17 00:00:00 2001 From: Elliot Patros <10269152+elliotpatros@users.noreply.github.com> Date: Thu, 14 Jul 2022 23:11:44 -0700 Subject: [PATCH 47/69] [Keymap] emp keymap for keebio/iris (#16858) * added new layout for keebio/iris * Update keyboards/keebio/iris/keymaps/emp/config.h * Update keyboards/keebio/iris/keymaps/emp/keymap.c Replace #defines with enum * Update keyboards/keebio/iris/keymaps/emp/keymap.c Made requested changes about formatting and the license. * Update config.h Cleaned up formatting * Update keyboards/keebio/iris/keymaps/emp/keymap.c Small changes to improve readability: * changed whitespace in license * added more whitespace around if/else blocks * fixed bracket style in places --- keyboards/keebio/iris/keymaps/emp/config.h | 97 ++++++++ keyboards/keebio/iris/keymaps/emp/keymap.c | 277 +++++++++++++++++++++ 2 files changed, 374 insertions(+) create mode 100644 keyboards/keebio/iris/keymaps/emp/config.h create mode 100644 keyboards/keebio/iris/keymaps/emp/keymap.c diff --git a/keyboards/keebio/iris/keymaps/emp/config.h b/keyboards/keebio/iris/keymaps/emp/config.h new file mode 100644 index 0000000000..a08db4d170 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/emp/config.h @@ -0,0 +1,97 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* Use I2C or Serial, not both */ +#undef USE_I2C +#define USE_SERIAL + +/* Select hand configuration */ +#undef MASTER_LEFT +#undef MASTER_RIGHT +#define EE_HANDS + +/* disable debugging features */ +#ifndef NO_DEBUG +#define NO_DEBUG +#endif // #ifndef NO_DEBUG + +/* disable printing features */ +#ifndef NO_PRINT +#define NO_PRINT +#endif // #ifndef NO_PRINT + +/* force n-key rollover to be enabled every boot */ +#undef FORCE_NKRO + +/* disable tap dance and other tapping features */ +#undef NO_ACTION_TAPPING + +/* disable one-shot modifiers */ +#undef NO_ACTION_ONESHOT + +/* PERMISSIVE_HOLD + * when on: tap-hold keys are held when typed fast, so long as the modifier key + * is pressed before and released after the rodified key(s) + * when off: tap-hold keys are both tapped when typed fast (within tapping term) + */ +#undef PERMISSIVE_HOLD + +/* IGNORE_MOD_TAP_INTERRUPT + * when on: rolling tap-hold keys taps all keys + * when off: rolling tap-hold keys modifies keys +*/ +#undef IGNORE_MOD_TAP_INTERRUPT + +/* TAPPING_TERM x (ms) + * 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 200 + +/* TAPPING_TOGGLE x (count) + * If you hold a TT key down, layer is activated, and then is de-activated when + * you let go (like MO()). If you repeatedly tap it, the layer will be toggled + * on or off (like TG()). It needs 5 taps by default, but you can change this by + * defining TAPPING_TOGGLE to another number. + */ +// #define TAPPING_TOGGLE 1 + +/* RETRO_TAPPING + * tap anyway, even after TAPPING_TERM, if there was no other key interruption + * between press and release + */ +#undef RETRO_TAPPING + +/* ONESHOT_TIMEOUT x (ms) + * how long before oneshot times out + */ +// #define ONESHOT_TIMEOUT 2000 + +/* TAP_CODE_DELAY x (ms) + * how long tapped keycodes are held down for + */ +// #define TAP_CODE_DELAY 100 + +/* NO_USB_STARTUP_CHECK + * according to: + * https://github.com/qmk/qmk_firmware/issues/12732 + * defining this can help with boards not being recognized by virtual keymapping + * software + */ +#define NO_USB_STARTUP_CHECK diff --git a/keyboards/keebio/iris/keymaps/emp/keymap.c b/keyboards/keebio/iris/keymaps/emp/keymap.c new file mode 100644 index 0000000000..d89477ed96 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/emp/keymap.c @@ -0,0 +1,277 @@ +/* Copyright 2022 elliotpatros + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Layer definitions +enum custom_layers { + _COLEMAK, + _FUNCTION, +}; + +// Custom keycodes, implemented later, in function: process_record_user() +enum custom_keycodes { + CTL_ESC = SAFE_RANGE, // mod tap: left control / esc + SFT_ENT, // mod tap: left shift / enter + LST_PRN, // mod tap: left shift / left parenthesis + RST_PRN, // mod tap: right shift / right parenthesis +}; + +// Shorthand keycode definitions +#define OSM_CAG OSM(MOD_LCTL | MOD_LALT | MOD_LGUI) +#define LT_BSFN LT(_FUNCTION, KC_BSLS) + +// The layout +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Default layer + [_COLEMAK] = LAYOUT ( + +// ┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_EQL, +// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + LST_PRN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_SPC, KC_ENT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RST_PRN, +// └────────┴────────┴────────┴────────┼────────┼────────┼────────┘└────────┼────────┴────────┴────────┴────────┴────────┴────────┘ + KC_LALT, KC_LGUI, SFT_ENT, KC_SPC, LT_BSFN, KC_BSPC +// └────────┴────────┴────────┘└────────┴────────┴────────┘ + ), + + // Function (and I guess also media & navigation) layer + [_FUNCTION] = LAYOUT ( + +// ┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_GRV, KC_LPRN, KC_RPRN, KC_F11, KC_F12, KC_INS, KC_HOME, KC_UP, KC_PGUP, _______, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, OSM_CAG, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_VOLD, KC_DEL, KC_END, KC_PGDN, _______, _______, +// └────────┴────────┴────────┴────────┼────────┼────────┼────────┘└────────┼────────┴────────┴────────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______ +// └────────┴────────┴────────┘└────────┴────────┴────────┘ + ) + +}; + +static inline bool dualfunckey_was_tapped(const uint16_t time_when_pressed) { + return timer_elapsed(time_when_pressed) < TAPPING_TERM; +} + +bool process_record_user(uint16_t keycode, keyrecord_t* record) { + + // Static variables + static uint16_t timer_control_escape = 0; + static uint16_t timer_shift_enter = 0; + static uint16_t timer_shift_lparen = 0; + static uint16_t timer_shift_rparen = 0; + + static bool dualfunckey_pending = false; + + static bool shift_enter_is_pressed = false; + static bool shift_lparen_is_pressed = false; + + // Was this function called to handle a keydown? If not, it was called by a + // key up. + const bool pressed = record->event.pressed; + + // Any keydown (at all) spends a pending dual function key check. Why? If, + // for example, you use shift to type a capital letter, and shift keys down + // and up faster than the tapping term, did you mean to call shift's tapping + // key? No. You just meant to call shift. + if (pressed) { + dualfunckey_pending = false; + } + + // Only keycodes >= SAFE_RANGE are handled in this function + if (keycode < SAFE_RANGE) { + // This keypress was not handled + return true; + } + + // Handle custom keypresses here + switch (keycode) { + + // ------------------------------------------------------------------------- + // Dual function key (hold: left shift; tap: enter) + // ------------------------------------------------------------------------- + case SFT_ENT: + + // There are multiple keys that are mapped to left shift. Keep track of + // which are pressed + shift_enter_is_pressed = pressed; + + // Handle keypress routine + if (pressed) { + + // The [left shift/enter] key was pressed + register_code(KC_LSFT); + + // Save keydown time for checking hold/tap on keyup + timer_shift_enter = timer_read(); + + // Pressing a dual function key requires a hold/tap check on key up + dualfunckey_pending = true; + + } else { + + // The [left shift/enter] key was unpressed + // Note: unregister shift before pressing ENT so that ENT registers + // correctly + + // If no other left shift keys are currently pressed, unregister it + if (! shift_lparen_is_pressed) { + unregister_code(KC_LSFT); + } + + // If a pending dual function key hasn't been used yet, use it here + if (dualfunckey_pending && dualfunckey_was_tapped(timer_shift_enter)) { + tap_code(KC_ENT); + dualfunckey_pending = false; + } + } + + // This keypress was handled + return false; + + // ------------------------------------------------------------------------- + // Dual function key (hold: left control; tap: escape) + // ------------------------------------------------------------------------- + case CTL_ESC: + + // Handle keypress routine + if (pressed) { + + // Control/escape key was pressed + register_code(KC_LCTL); + + // Save keydown time for checking hold/tap on keyup + timer_control_escape = timer_read(); + + // Pressing a dual function key requires a hold/tap check on key up + dualfunckey_pending = true; + + } else { + + // Control/escape key was unpressed + unregister_code(KC_LCTL); + + // If a pending dual function key hasn't been used yet, use it here + if (dualfunckey_pending && dualfunckey_was_tapped(timer_control_escape)) { + tap_code(KC_ESC); + dualfunckey_pending = false; + } + } + + // This keypress was handled + return false; + + // ------------------------------------------------------------------------- + // Dual function key (hold: left shift; tap: left parenthesis) + // ------------------------------------------------------------------------- + case LST_PRN: + + // There are multiple keys that are mapped to left shift. Keep track of + // which are pressed + shift_lparen_is_pressed = pressed; + + // Handle keypress routine + if (pressed) { + + // The [left shift/left parenthesis] key was pressed + register_code(KC_LSFT); + + // Save keydown time for checking hold/tap on keyup + timer_shift_lparen = timer_read(); + + // Pressing a dual function key requires a hold/tap check on key up + dualfunckey_pending = true; + + } else { + + // The [left shift/left parenthesis] key was unpressed + // Note: unregister shift after tapping 9 so that left parenthesis + // registers correctly + + // If a pending dual function key hasn't been used yet, use it here + if (dualfunckey_pending && dualfunckey_was_tapped(timer_shift_lparen)) { + tap_code(KC_9); + dualfunckey_pending = false; + } + + // If no other left shift keys are currently pressed, unregister it + if (! shift_enter_is_pressed) { + unregister_code(KC_LSFT); + } + } + + // This keypress was handled + return false; + + // ------------------------------------------------------------------------- + // Dual function key (hold: right shift; tap: right parenthesis) + // ------------------------------------------------------------------------- + case RST_PRN: + + // Handle keypress routine + if (pressed) { + + // The [right shift/right parenthesis] key was pressed + register_code(KC_RSFT); + + // Save keydown time for checking hold/tap on keyup + timer_shift_rparen = timer_read(); + + // Pressing a dual function key requires a hold/tap check on key up + dualfunckey_pending = true; + + } else { + + // The [right shift/right parenthesis] key was unpressed + // Note: unregister shift after tapping 0 so that right parenthesis + // registers correctly + + // If a pending dual function key hasn't been used yet, use it here + if (dualfunckey_pending && dualfunckey_was_tapped(timer_shift_rparen)) { + + // Space cadet shift: If the [left shift/left parenthesis] key + // is currently pressed, then tap the sequence () + if (shift_lparen_is_pressed) { + tap_code(KC_9); + } + + tap_code(KC_0); + dualfunckey_pending = false; + } + + unregister_code(KC_RSFT); + } + + // This keypress was handled + return false; + + // ------------------------------------------------------------------------- + // Some other key was pressed (this shouldn't happen) + // ------------------------------------------------------------------------- + default: + // This keypress was not handled + return true; + } +} From 09b0d3e0ed3a9ad897558421d13f59f40831c44c Mon Sep 17 00:00:00 2001 From: Evelien Dekkers Date: Fri, 15 Jul 2022 10:56:06 +0200 Subject: [PATCH 48/69] Move ins, home and pgup keys to the left (#17690) --- keyboards/evyd13/nt650/keymaps/default/keymap.c | 2 +- keyboards/evyd13/nt650/keymaps/via/keymap.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/evyd13/nt650/keymaps/default/keymap.c b/keyboards/evyd13/nt650/keymaps/default/keymap.c index a3e6de5a5e..e9978376d0 100644 --- a/keyboards/evyd13/nt650/keymaps/default/keymap.c +++ b/keyboards/evyd13/nt650/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FUNC] = LAYOUT_ansi_split_space( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, GRV_TG, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_APP, _______, _______, _______, _______ diff --git a/keyboards/evyd13/nt650/keymaps/via/keymap.c b/keyboards/evyd13/nt650/keymaps/via/keymap.c index 2d835522a7..cc48f380eb 100644 --- a/keyboards/evyd13/nt650/keymaps/via/keymap.c +++ b/keyboards/evyd13/nt650/keymaps/via/keymap.c @@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_ansi_split_space( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_APP, _______, _______, _______, _______ From ba4ba66b2fadc31a847f51f49d365d82b0552797 Mon Sep 17 00:00:00 2001 From: Henry Lum <20608904+suavity@users.noreply.github.com> Date: Fri, 15 Jul 2022 14:06:19 -0700 Subject: [PATCH 49/69] [Keyboard] eHan Keyboard (#15861) * Compiled Suavity QMK Directory * updated info.json's name from 'LAYOUT_default' to 'LAYOUT_default_split' * updated rules.mk to reflect new layout name of each keymap * Updated hanjie.h to reflect physical matrix of PCB * switched info.json key matrix from split backspace to 2U backspace to better reflect electrical matrix * updated keymap.c key matrix to reflect PCB electrical matrix * updated keymap.c key matrix t oreflect PCB electrical matrix * removed split left shift from physical matrix for default_split layout * removed split left shift physical & electrical default_split layout * removed split left shift from physical matrix for default_split layout * removed split left shift from physical matrix for default_split layout * updated qmk and via keymap.c and hanjie.h files to reflect pcb electrical matrix * changed diode direction from row2col to col2row * fixed false keycode triggers * updated via keymaps * added 's' * added ehan branch for development * updated readme.md * updated ehan.h * updated readme.md * updated ehan.h layout * added keymap.c and updated ehan.h * progress * compiled qmk * updated matrix column and row pin out * updated QMK default ansi keymap * added VIA ansi_default keymaps * corrected col 15's pin out to be pin B9, not C13 * Update keyboards/suavity/ehan/config.h * Update keyboards/suavity/ehan/info.json * Update keyboards/suavity/ehan/rules.mk * Update keyboards/suavity/hanjie/rules.mk * Update keyboards/suavity/hanjie/rules.mk * Update keyboards/suavity/hanjie/keymaps/via/rules.mk * Update keyboards/suavity/ehan/rules.mk * changed readme.md's picturefrom html to markdown * updated traces & diode placement * Apply suggestions from code review Remove trailing backslashes from keymaps (per fauxpark) * Apply suggestions from code review Remove `BOOTMAGIC_ENABLE = lite` from `keyboards/suavity/ehan/keymaps/via/rules.mk` (per fauxpark) * Apply suggestions from code review Update formatting of `keyboards/suavity/ehan/rules.mk` (per fauxpark) * Update keyboards/suavity/ehan/readme.md Fix image URL * Update keyboards/suavity/ehan/config.h Remove trailing comma in MATRIX_COL_PINS definition --- keyboards/suavity/ehan/chconf.h | 31 +++++++++++ keyboards/suavity/ehan/config.h | 49 +++++++++++++++++ keyboards/suavity/ehan/ehan.c | 3 ++ keyboards/suavity/ehan/ehan.h | 23 ++++++++ keyboards/suavity/ehan/halconf.h | 26 +++++++++ keyboards/suavity/ehan/info.json | 10 ++++ .../suavity/ehan/keymaps/default/keymap.c | 37 +++++++++++++ keyboards/suavity/ehan/keymaps/via/keymap.c | 53 +++++++++++++++++++ keyboards/suavity/ehan/keymaps/via/rules.mk | 2 + keyboards/suavity/ehan/mcuconf.h | 34 ++++++++++++ keyboards/suavity/ehan/readme.md | 23 ++++++++ keyboards/suavity/ehan/rules.mk | 21 ++++++++ 12 files changed, 312 insertions(+) create mode 100644 keyboards/suavity/ehan/chconf.h create mode 100644 keyboards/suavity/ehan/config.h create mode 100644 keyboards/suavity/ehan/ehan.c create mode 100644 keyboards/suavity/ehan/ehan.h create mode 100644 keyboards/suavity/ehan/halconf.h create mode 100755 keyboards/suavity/ehan/info.json create mode 100755 keyboards/suavity/ehan/keymaps/default/keymap.c create mode 100644 keyboards/suavity/ehan/keymaps/via/keymap.c create mode 100644 keyboards/suavity/ehan/keymaps/via/rules.mk create mode 100644 keyboards/suavity/ehan/mcuconf.h create mode 100644 keyboards/suavity/ehan/readme.md create mode 100644 keyboards/suavity/ehan/rules.mk diff --git a/keyboards/suavity/ehan/chconf.h b/keyboards/suavity/ehan/chconf.h new file mode 100644 index 0000000000..35fb883183 --- /dev/null +++ b/keyboards/suavity/ehan/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/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/suavity/ehan/config.h b/keyboards/suavity/ehan/config.h new file mode 100644 index 0000000000..1f5c7cd321 --- /dev/null +++ b/keyboards/suavity/ehan/config.h @@ -0,0 +1,49 @@ +/* +Copyright 2021 Suavity 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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5344 // 5344 short for "SD" (Suavity Designs) +#define PRODUCT_ID 0x4548 // 4548 short for "EH" (EHan) +#define DEVICE_VER 0x0001 +#define MANUFACTURER Suavity Designs +#define PRODUCT ehan + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, C14, B7, B6, B5, B4, B3, A15, C13, B9, B8 } +// Matrix Column Pins: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 +#define MATRIX_ROW_PINS { A7, B0, A3, A4, A5, A6 } +// Matrix Row Pins: R0 R1 R2 R3 R4 R5 +#define DIODE_DIRECTION COL2ROW +// Current flow out of the diodes are from rows to columns + +#define LED_CAPS_LOCK_PIN B11 // LED for Step Caps +#define LED_SCROLL_LOCK_PIN F1 // LED Indicator for Scroll Lock +#define LED_PIN_ON_STATE 1 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + diff --git a/keyboards/suavity/ehan/ehan.c b/keyboards/suavity/ehan/ehan.c new file mode 100644 index 0000000000..cc5a9fdc4a --- /dev/null +++ b/keyboards/suavity/ehan/ehan.c @@ -0,0 +1,3 @@ +// Copyright 2021 Henry Lum (@suavity) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "ehan.h" diff --git a/keyboards/suavity/ehan/ehan.h b/keyboards/suavity/ehan/ehan.h new file mode 100644 index 0000000000..5d121056eb --- /dev/null +++ b/keyboards/suavity/ehan/ehan.h @@ -0,0 +1,23 @@ +// Copyright 2021 Henry Lum (@suavity) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" +#define ___ KC_NO + +#define LAYOUT_ansi_default( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B,K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, \ + K50, K53, K54, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, ___, ___, }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, ___, }, \ + { K50, ___, ___, K53, K54, K55, ___, ___, K58, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ +} diff --git a/keyboards/suavity/ehan/halconf.h b/keyboards/suavity/ehan/halconf.h new file mode 100644 index 0000000000..79afc88c96 --- /dev/null +++ b/keyboards/suavity/ehan/halconf.h @@ -0,0 +1,26 @@ +/* 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 HAL_USE_I2C TRUE + +// #define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/suavity/ehan/info.json b/keyboards/suavity/ehan/info.json new file mode 100755 index 0000000000..bf37fdf6a4 --- /dev/null +++ b/keyboards/suavity/ehan/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "ehan", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT": { + "layout": [{"label":"PrtSc", "x":18.75, "y":0}, {"label":"Scroll Lock", "x":19.75, "y":0}, {"label":"Pause", "x":20.75, "y":0}, {"label":"Insert", "x":18.75, "y":1.5}, {"label":"Home", "x":19.75, "y":1.5}, {"label":"PgUp", "x":20.75, "y":1.5}, {"label":"Delete", "x":18.75, "y":2.5}, {"label":"End", "x":19.75, "y":2.5}, {"label":"PgDn", "x":20.75, "y":2.5}, {"label":"\u2191", "x":19.75, "y":4.5}, {"label":"\u2190", "x":18.75, "y":5.5}, {"label":"\u2193", "x":19.75, "y":5.5}, {"label":"\u2192", "x":20.75, "y":5.5}, {"label":"Esc", "x":2.5, "y":0}, {"label":"F1", "x":3.75, "y":0}, {"label":"F2", "x":4.75, "y":0}, {"label":"F3", "x":5.75, "y":0}, {"label":"F4", "x":6.75, "y":0}, {"label":"F5", "x":8, "y":0}, {"label":"~", "x":2.5, "y":1.5}, {"label":"!", "x":3.5, "y":1.5}, {"label":"@", "x":4.5, "y":1.5}, {"label":"#", "x":5.5, "y":1.5}, {"label":"$", "x":6.5, "y":1.5}, {"label":"%", "x":7.5, "y":1.5}, {"label":"^", "x":8.5, "y":1.5}, {"label":"Tab", "x":2.5, "y":2.5, "w":1.5}, {"label":"Q", "x":4, "y":2.5}, {"label":"W", "x":5, "y":2.5}, {"label":"E", "x":6, "y":2.5}, {"label":"R", "x":7, "y":2.5}, {"label":"T", "x":8, "y":2.5}, {"label":"Caps Lock", "x":2.5, "y":3.5, "w":1.75}, {"label":"A", "x":4.25, "y":3.5}, {"label":"S", "x":5.25, "y":3.5}, {"label":"D", "x":6.25, "y":3.5}, {"label":"F", "x":7.25, "y":3.5}, {"label":"G", "x":8.25, "y":3.5}, {"label":"Shift", "x":2.5, "y":4.5, "w":2.25}, {"label":"Z", "x":4.75, "y":4.5}, {"label":"X", "x":5.75, "y":4.5}, {"label":"C", "x":6.75, "y":4.5}, {"label":"V", "x":7.75, "y":4.5}, {"label":"B", "x":8.75, "y":4.5}, {"label":"Ctrl", "x":2.5, "y":5.5, "w":1.5}, {"label":"Alt", "x":5.25, "y":5.5, "w":1.5}, {"x":6.75, "y":5.5, "w":3}, {"label":"F6", "x":8.75, "y":3.25}, {"label":"F7", "x":9.75, "y":3.25}, {"label":"F8", "x":10.75, "y":3.25}, {"label":"F9", "x":11.75, "y":3.25}, {"label":"F10", "x":13.25, "y":3.25}, {"label":"F11", "x":14.25, "y":3.25}, {"label":"F12", "x":15.25, "y":3.25}, {"label":"F13", "x":16.25, "y":3.25}, {"label":"&", "x":9.25, "y":4.75}, {"label":"*", "x":10.25, "y":4.75}, {"label":"(", "x":11.25, "y":4.75}, {"label":")", "x":12.25, "y":4.75}, {"label":"_", "x":13.25, "y":4.75}, {"label":"+", "x":14.25, "y":4.75}, {"label":"Backspace", "x":15.25, "y":4.75, "w":2}, {"label":"Y", "x":8.75, "y":5.75}, {"label":"U", "x":9.75, "y":5.75}, {"label":"I", "x":10.75, "y":5.75}, {"label":"O", "x":11.75, "y":5.75}, {"label":"P", "x":12.75, "y":5.75}, {"label":"{", "x":13.75, "y":5.75}, {"label":"}", "x":14.75, "y":5.75}, {"label":"|", "x":15.75, "y":5.75, "w":1.5}, {"label":"H", "x":9, "y":6.75}, {"label":"J", "x":10, "y":6.75}, {"label":"K", "x":11, "y":6.75}, {"label":"L", "x":12, "y":6.75}, {"label":":", "x":13, "y":6.75}, {"label":"\"", "x":14, "y":6.75}, {"label":"Enter", "x":15, "y":6.75, "w":2.25}, {"label":"B", "x":8.5, "y":7.75}, {"label":"N", "x":9.5, "y":7.75}, {"label":"M", "x":10.5, "y":7.75}, {"label":"<", "x":11.5, "y":7.75}, {"label":">", "x":12.5, "y":7.75}, {"label":"?", "x":13.5, "y":7.75}, {"label":"Shift", "x":14.5, "y":7.75, "w":2.75}, {"x":8.5, "y":8.75, "w":3}, {"label":"Alt", "x":11.5, "y":8.75, "w":1.5}, {"label":"Win", "x":13, "y":8.75, "w":1.25}, {"label":"Ctrl", "x":15.5, "y":8.75, "w":1.5}] + } + } +} diff --git a/keyboards/suavity/ehan/keymaps/default/keymap.c b/keyboards/suavity/ehan/keymaps/default/keymap.c new file mode 100755 index 0000000000..f3cf35e1a1 --- /dev/null +++ b/keyboards/suavity/ehan/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2021 Suavity 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_ansi_default( + 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_BSLS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + + + [1] = LAYOUT_ansi_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/suavity/ehan/keymaps/via/keymap.c b/keyboards/suavity/ehan/keymaps/via/keymap.c new file mode 100644 index 0000000000..c447dd3304 --- /dev/null +++ b/keyboards/suavity/ehan/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2021 Suavity 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_ansi_default( + 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_BSLS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + + [1] = LAYOUT_ansi_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + + [2] = LAYOUT_ansi_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_ansi_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/suavity/ehan/keymaps/via/rules.mk b/keyboards/suavity/ehan/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/suavity/ehan/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/suavity/ehan/mcuconf.h b/keyboards/suavity/ehan/mcuconf.h new file mode 100644 index 0000000000..5cea69887f --- /dev/null +++ b/keyboards/suavity/ehan/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/austin/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +// #undef STM32_PWM_USE_TIM3 +// #define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/suavity/ehan/readme.md b/keyboards/suavity/ehan/readme.md new file mode 100644 index 0000000000..76d997f6ed --- /dev/null +++ b/keyboards/suavity/ehan/readme.md @@ -0,0 +1,23 @@ +# ehan: A 10.5° Split TKL Keyboard designed by Suavity Designs | QMK Firmware + +![Imgur](https://i.imgur.com/bAiBbjgh.png) + +## Introduction + +ehan is a 10.5° Split TKL that supports 3U Spacebars, + +* Keyboard Maintainer: [Suavity Designs](https://github.com/suavity) +* Hardware Supported: ARM STM32F072CBT6 +* Hardware Availability: [suavity.cc/ehan](https://suavity.cc/keyboards/ehan/) + +The latest iteration of the PCB is v3.00 as of 07/'21. This is noted on the back of the PCB. +* Default Keymap: [See here](http://www.keyboard-layout-editor.com/#/gists/6504b0b388736213f43b64df1d576139) +* PCB Supported Layouts: [See here](http://www.keyboard-layout-editor.com/#/gists/9aab5e15a89469138da760f968df26ae) + +## How to compile + +After setting up your build environment, you can compile the ehan default keymap by using: + + make suavity/ehan:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/suavity/ehan/rules.mk b/keyboards/suavity/ehan/rules.mk new file mode 100644 index 0000000000..9383acaf00 --- /dev/null +++ b/keyboards/suavity/ehan/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = STM32F072 + +# 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 + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From f5333e9136ae7158f0029abb0ed9d4410ece2ea2 Mon Sep 17 00:00:00 2001 From: projectcain <71684775+projectcain@users.noreply.github.com> Date: Fri, 15 Jul 2022 20:01:52 -0500 Subject: [PATCH 50/69] [Keyboard] add ProjectCain Relic (#15577) * Adding relic keyboard * Update keyboards/projectcain/relic/relic.c * Update keyboards/projectcain/relic/relic.c * Update keyboards/projectcain/relic/rules.mk * Update keyboards/projectcain/relic/rules.mk * Update keyboards/projectcain/relic/rules.mk * Update config.h * Update config.h * Update keyboards/projectcain/relic/rules.mk * Update keyboards/projectcain/relic/readme.md * Update keyboards/projectcain/relic/info.json * Update keyboards/projectcain/relic/config.h * Update keyboards/projectcain/relic/config.h --- keyboards/projectcain/relic/config.h | 135 ++++++++++++++++++ keyboards/projectcain/relic/info.json | 19 +++ .../relic/keymaps/default/config.h | 23 +++ .../relic/keymaps/default/keymap.c | 74 ++++++++++ .../relic/keymaps/default/readme.md | 1 + .../relic/keymaps/default/rules.mk | 2 + keyboards/projectcain/relic/readme.md | 17 +++ keyboards/projectcain/relic/relic.c | 37 +++++ keyboards/projectcain/relic/relic.h | 80 +++++++++++ keyboards/projectcain/relic/rules.mk | 18 +++ 10 files changed, 406 insertions(+) create mode 100644 keyboards/projectcain/relic/config.h create mode 100644 keyboards/projectcain/relic/info.json create mode 100644 keyboards/projectcain/relic/keymaps/default/config.h create mode 100644 keyboards/projectcain/relic/keymaps/default/keymap.c create mode 100644 keyboards/projectcain/relic/keymaps/default/readme.md create mode 100644 keyboards/projectcain/relic/keymaps/default/rules.mk create mode 100644 keyboards/projectcain/relic/readme.md create mode 100644 keyboards/projectcain/relic/relic.c create mode 100644 keyboards/projectcain/relic/relic.h create mode 100644 keyboards/projectcain/relic/rules.mk diff --git a/keyboards/projectcain/relic/config.h b/keyboards/projectcain/relic/config.h new file mode 100644 index 0000000000..c82c5570aa --- /dev/null +++ b/keyboards/projectcain/relic/config.h @@ -0,0 +1,135 @@ +/* +Copyright 2021 projectcain + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once +#define ENCODERS_PAD_A { D4 } +#define ENCODERS_PAD_B { D6 } + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER projectcain +#define PRODUCT relic + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D7, B2, B6, B5 } +#define MATRIX_COL_PINS { D3, D5, B0, F0, F1, F4, F5, F6, C7, C6, B4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/projectcain/relic/info.json b/keyboards/projectcain/relic/info.json new file mode 100644 index 0000000000..4a74410c1a --- /dev/null +++ b/keyboards/projectcain/relic/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "Relic", + "url": "", + "maintainer": "projectcain", + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"BACK
SPACE", "x":11, "y":0}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":";", "x":10.25, "y":1, "w":1.75}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"/", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0.25, "y":3, "w":1.25}, {"label":"Alt", "x":1.5, "y":3, "w":1.25}, {"label":"MO(1)", "x":9.25, "y":3, "w":1.25}, {"label":"MO(2)", "x":10.5, "y":3, "w":1.25}, {"label":"LGUI", "x":3, "y":3.25}, {"label":"BACK
SPACE", "x":4, "y":3.25, "w":1.5}, {"label":"Space", "x":5.5, "y":3.25}, {"label":"Space", "x":6.5, "y":3.25, "w":1.5}, {"label":"RGUI", "x":8, "y":3.25}] + }, + "LAYOUT_full_space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"BACK
SPACE", "x":11, "y":0}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":";", "x":10.25, "y":1, "w":1.75}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"/", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0.25, "y":3, "w":1.25}, {"label":"Alt", "x":1.5, "y":3, "w":1.25}, {"label":"MO(1)", "x":9.25, "y":3, "w":1.25}, {"label":"MO(2)", "x":10.5, "y":3, "w":1.25}, {"label":"Space", "x":3, "y":3.25, "w":6}] + }, + "LAYOUT_split_2space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"BACK
SPACE", "x":11, "y":0}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":";", "x":10.25, "y":1, "w":1.75}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"/", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0.25, "y":3, "w":1.25}, {"label":"Alt", "x":1.5, "y":3, "w":1.25}, {"label":"MO(1)", "x":9.25, "y":3, "w":1.25}, {"label":"MO(2)", "x":10.5, "y":3, "w":1.25}, {"label":"BACK
SPACE", "x":3, "y":3.25, "w":3}, {"label":"Space", "x":6, "y":3.25, "w":3}] + }, + "LAYOUT_split_4space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"BACK
SPACE", "x":11, "y":0}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":";", "x":10.25, "y":1, "w":1.75}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"/", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0.25, "y":3, "w":1.25}, {"label":"Alt", "x":1.5, "y":3, "w":1.25}, {"label":"MO(1)", "x":9.25, "y":3, "w":1.25}, {"label":"MO(2)", "x":10.5, "y":3, "w":1.25}, {"label":"Lgui", "x":3, "y":3.25}, {"label":"BACK
SPACE", "x":4, "y":3.25, "w":2}, {"label":"Space", "x":6, "y":3.25, "w":2}, {"label":"Rgui", "x":8, "y":3.25}] + } + } +} diff --git a/keyboards/projectcain/relic/keymaps/default/config.h b/keyboards/projectcain/relic/keymaps/default/config.h new file mode 100644 index 0000000000..7756a8db2f --- /dev/null +++ b/keyboards/projectcain/relic/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define ENCODER_RESOLUTION 2 +#define COMBO_COUNT 6 +#define COMBO_TERM 50 +#define TAPPING_FORCE_HOLD +#define DISABLE_LEADER diff --git a/keyboards/projectcain/relic/keymaps/default/keymap.c b/keyboards/projectcain/relic/keymaps/default/keymap.c new file mode 100644 index 0000000000..92a6be3301 --- /dev/null +++ b/keyboards/projectcain/relic/keymaps/default/keymap.c @@ -0,0 +1,74 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +enum layers{ + BASE, + NUM, + SYM, + META +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_all( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + MO(1), KC_LCTRL, MO(1), SFT_T(KC_BSPC), KC_SPACE, KC_SPACE, MO(2), KC_LALT, MO(2) + ), + + [NUM] = LAYOUT_all( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_MINUS, KC_BSPC, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_PLUS, + KC_LCPO, KC_X, KC_C, KC_V, KC_B, KC_0, KC_1, KC_2, KC_3, KC_RCPC, + MO(1), KC_LCTRL, KC_TRNS, SFT_T(KC_BSPC), KC_TRNS, KC_SPACE, KC_TRNS, KC_LALT, MO(2) + ), + + [SYM] = LAYOUT_all( + S(KC_GRV), KC_GRV, KC_TRNS, S(KC_BSLS), KC_BSLS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), RESET, + S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN), + S(KC_LBRC), KC_LBRC, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_RBRC, S(KC_RBRC), + MO(1), KC_LCTRL, KC_TRNS, SFT_T(KC_BSPC), KC_TRNS, KC_SPACE, KC_TRNS, KC_LALT, MO(2) + ), + +}; + + + +enum combos { + KL_SLSH, + JK_MINUS, + LQUOTE_ENTER, + QW_ESC, + AS_TAB, + FJ_LGUI +}; + +const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END}; +const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; +const uint16_t PROGMEM lquote_combo[] = {KC_L, KC_QUOTE, COMBO_END}; +const uint16_t PROGMEM qw_combo[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM as_combo[] = {KC_A, KC_S, COMBO_END}; +const uint16_t PROGMEM fj_combo[] = {KC_F, KC_J, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)), + [JK_MINUS] = COMBO(jk_combo, KC_MINUS), + [LQUOTE_ENTER] = COMBO(lquote_combo, KC_ENTER), + [QW_ESC] = COMBO(qw_combo, KC_ESC), + [AS_TAB] = COMBO(as_combo, KC_TAB), + [FJ_LGUI] = COMBO(fj_combo, KC_LGUI) +}; diff --git a/keyboards/projectcain/relic/keymaps/default/readme.md b/keyboards/projectcain/relic/keymaps/default/readme.md new file mode 100644 index 0000000000..0c00cd74af --- /dev/null +++ b/keyboards/projectcain/relic/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for relic diff --git a/keyboards/projectcain/relic/keymaps/default/rules.mk b/keyboards/projectcain/relic/keymaps/default/rules.mk new file mode 100644 index 0000000000..dca6713d4f --- /dev/null +++ b/keyboards/projectcain/relic/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +ENCODER_ENABLE = yes +COMBO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/projectcain/relic/readme.md b/keyboards/projectcain/relic/readme.md new file mode 100644 index 0000000000..5f2606c543 --- /dev/null +++ b/keyboards/projectcain/relic/readme.md @@ -0,0 +1,17 @@ +# relic + +![relic](https://i.imgur.com/oqveJc2h.jpg) + +This is an 11-unit unibody split keyboard with an exploded spacebar cluster on bottom + +* Keyboard Maintainer: [projectcain](https://github.com/yourusername) +* Hardware Supported: Relic PCB +* Hardware Availability: mechvault.net + +To reset the keyboard into bootloader mode, short the two pads labeled "Reset" on the left side of the pcb + +Make example for this keyboard (after setting up your build environment): + + make projectcain/relic:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/projectcain/relic/relic.c b/keyboards/projectcain/relic/relic.c new file mode 100644 index 0000000000..f72250847d --- /dev/null +++ b/keyboards/projectcain/relic/relic.c @@ -0,0 +1,37 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "relic.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + return true; +} +#endif diff --git a/keyboards/projectcain/relic/relic.h b/keyboards/projectcain/relic/relic.h new file mode 100644 index 0000000000..45ae28a97f --- /dev/null +++ b/keyboards/projectcain/relic/relic.h @@ -0,0 +1,80 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K300, K301, K303, K304, K305, K306, K307, K308, K309 \ +) \ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { K300, K301, KC_NO, K303, K304, K305, K306, K307, K308, K309, KC_NO } \ +} + +#define LAYOUT_full_space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K300, K301, K305, K308, K309 \ +) \ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { K300, K301, KC_NO, KC_NO, KC_NO, K305, KC_NO, KC_NO, K308, K309, KC_NO } \ +} + +#define LAYOUT_split_2space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K300, K301, K304, K306, K308, K309 \ +) \ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { K300, K301, KC_NO, KC_NO, K304, KC_NO, K306, KC_NO, K308, K309, KC_NO } \ +} + +#define LAYOUT_split_4space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K300, K301, K303, K304, K306, K307, K308, K309 \ +) \ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { K300, K301, KC_NO, K303, K304, KC_NO, K306, K307, K308, K309, KC_NO } \ +} diff --git a/keyboards/projectcain/relic/rules.mk b/keyboards/projectcain/relic/rules.mk new file mode 100644 index 0000000000..717cc07b4b --- /dev/null +++ b/keyboards/projectcain/relic/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 = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +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 From 303992da7037eb4355e3ac74c10dfc466dcbc04c Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 15 Jul 2022 22:16:14 -0700 Subject: [PATCH 51/69] FJLabs Solanis Refactor (#17686) * solanis.h: add matrix diagram * refactor keymaps: apply grid alignment * refactor LAYOUT_all macro Moves the matrix position identifier for the right half of Split Backspace to the number row. --- .../fjlabs/solanis/keymaps/default/keymap.c | 26 +++++----- keyboards/fjlabs/solanis/keymaps/via/keymap.c | 52 +++++++++---------- keyboards/fjlabs/solanis/solanis.h | 41 ++++++++++++--- 3 files changed, 74 insertions(+), 45 deletions(-) diff --git a/keyboards/fjlabs/solanis/keymaps/default/keymap.c b/keyboards/fjlabs/solanis/keymaps/default/keymap.c index 62c7d01b67..418aa87150 100644 --- a/keyboards/fjlabs/solanis/keymaps/default/keymap.c +++ b/keyboards/fjlabs/solanis/keymaps/default/keymap.c @@ -22,20 +22,20 @@ enum layers { 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 + 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_DEL, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_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 - ) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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 index 6bff23728f..4e17594aab 100644 --- a/keyboards/fjlabs/solanis/keymaps/via/keymap.c +++ b/keyboards/fjlabs/solanis/keymaps/via/keymap.c @@ -24,38 +24,38 @@ enum layers { 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 + 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_DEL, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_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 - ), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/solanis.h b/keyboards/fjlabs/solanis/solanis.h index 507f087001..697a91ef68 100644 --- a/keyboards/fjlabs/solanis/solanis.h +++ b/keyboards/fjlabs/solanis/solanis.h @@ -16,14 +16,43 @@ along with this program. If not, see . #include "quantum.h" +/* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0A │0B │0C ││0D │ F13 Row + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3E │ │1E │1F │1G │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └───────┘ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌──────────┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4C │4D │ │4F │ │4C │ 2.75u RShift + * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ └──────────┘ + * │50 │51 │52 │54 │55 │58 │59 │5A │5B │5D │ │5E │5F │5G │ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘ └───┴───┴───┘ + * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ + * │50 │51 │52 │55 │59 │5A │5B │5D │ Standard Bottom Row + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │50 │51 │52 │55 │5A │5B │5D │ Tsangan/WKL + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + * ┌─────┬───┬─────┬───────────┬───┬───────────┬─────┬───┬─────┐ + * │50 │51 │52 │54 │55 │58 │5A │5B │5D │ Tsangan/WKL with Split Spacebar + * └─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘ + */ + /* === 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, K3E, 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, \ + 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 }, \ From 1f93485aef68fb96b2b141d8d95ecb88986bc55e Mon Sep 17 00:00:00 2001 From: Wilfrid Li <47977336+wilfrid-li@users.noreply.github.com> Date: Sat, 16 Jul 2022 15:21:15 +1000 Subject: [PATCH 52/69] feat(keebwerk): added VIA support keymap for keebwerk nano slider (#16761) * feat(keebwerk): added VIA support keymap for keebwerk nano slider Added VIA support for keebwerk nano slider, VIA json is keebwerk_nano_via.json Fixed midi2vol keymap where comma symbol is missing from enum "custom_layers" * feat(keebwerk): removed VIA json as requested * Update keyboards/keebwerk/nano_slider/keymaps/via/keymap.c * Update keyboards/keebwerk/nano_slider/keymaps/via/keymap.c * Fix(PR): removed file as requested --- .../nano_slider/keymaps/midi2vol/keymap.c | 2 +- .../keebwerk/nano_slider/keymaps/via/keymap.c | 67 +++++++++++++++++++ .../keebwerk/nano_slider/keymaps/via/rules.mk | 1 + 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 keyboards/keebwerk/nano_slider/keymaps/via/keymap.c create mode 100644 keyboards/keebwerk/nano_slider/keymaps/via/rules.mk diff --git a/keyboards/keebwerk/nano_slider/keymaps/midi2vol/keymap.c b/keyboards/keebwerk/nano_slider/keymaps/midi2vol/keymap.c index 0623f7556c..783790f020 100644 --- a/keyboards/keebwerk/nano_slider/keymaps/midi2vol/keymap.c +++ b/keyboards/keebwerk/nano_slider/keymaps/midi2vol/keymap.c @@ -41,7 +41,7 @@ uint8_t midi2vol = 0x3E; enum custom_layers { _MEDIA, /* Controls Pause, Mute , Forward ... */ _NAV, /* Nav arrows, Enter, Space*/ - _VOLUME /* Changes midi2vol int to interface with midi2vol program: Chrome Volume, General Volume */ + _VOLUME, /* Changes midi2vol int to interface with midi2vol program: Chrome Volume, General Volume */ _DISCORD, /* FXX unsused keys to interface with Discord: Mute , Silence */ _LIGHTS, /* Edits underglow and retroilumination */ _EDIT, /* Cut, Copy ,Paste */ diff --git a/keyboards/keebwerk/nano_slider/keymaps/via/keymap.c b/keyboards/keebwerk/nano_slider/keymaps/via/keymap.c new file mode 100644 index 0000000000..ea1faadfda --- /dev/null +++ b/keyboards/keebwerk/nano_slider/keymaps/via/keymap.c @@ -0,0 +1,67 @@ +/* Copyright 2020 Duckle + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "analog.h" +#include "qmk_midi.h" + +enum layer_names { + _BASE, + _FN, + _MEDIA, + _FN2 +}; + +/* Defines the keycodes used by our macros in process_record_user */ +enum custom_keycodes { /* In order to add more volume controls, add here a custom keycode, ex: VLC */ + DEFAULT= SAFE_RANGE,SPOTIFY,DISCORD,CHROME/*,VLC*/ +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + TO(_FN), + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, KC_0 + ), + [_FN] = LAYOUT( + TO(_MEDIA), + RGB_TOG, RGB_MOD, RGB_VAI, + RGB_SAI, BL_BRTG, BL_STEP, KC_LSFT + ), + [_MEDIA] = LAYOUT( + TO(_BASE), + KC_VOLD, KC_VOLU, KC_F24, + KC_MRWD, KC_MFFD, KC_F23, KC_MPLY + ), + [_FN2] = LAYOUT( + _______, + _______, _______, _______, + _______, _______, _______, _______ + ) +}; + +uint8_t divisor = 0; + +void slider(void) { + if (divisor++) { // only run the slider function 1/256 times it's called + return; + } + + midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); +} + +void matrix_scan_user(void) { + slider(); +} diff --git a/keyboards/keebwerk/nano_slider/keymaps/via/rules.mk b/keyboards/keebwerk/nano_slider/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/keebwerk/nano_slider/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file From 66983f090c6c648ea8db21c1ff11934b0ff4c882 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 15 Jul 2022 23:48:35 -0700 Subject: [PATCH 53/69] Suavity Ehan Refactor (#17694) * info.json: apply friendly formatting, phase 1 * info.json: fix macro reference and layout * info.json: apply friendly formatting, phase 2 Add key labels. * refactor keymaps and layout macro - apply four-space indent - apply grid alignment to keycodes, matrix position identifiers, and matrix * add LAYOUT_all * ehan.h: add matrix diagram * rename LAYOUT_ansi_default to LAYOUT_ansi_split_bs_rshift_lspace * ehan.h: correct K3E position in LAYOUT_ansi_split_bs_rshift_lspace Move location K3E to actually be on Column 14 (E); was previously on Column 13 (D) in source.. * add LAYOUT_iso_split_bs_rshift_lspace Includes reference keymap. --- keyboards/suavity/ehan/ehan.h | 78 ++++- keyboards/suavity/ehan/info.json | 304 +++++++++++++++++- .../suavity/ehan/keymaps/default/keymap.c | 32 +- .../suavity/ehan/keymaps/default_iso/keymap.c | 37 +++ keyboards/suavity/ehan/keymaps/via/keymap.c | 62 ++-- 5 files changed, 452 insertions(+), 61 deletions(-) create mode 100644 keyboards/suavity/ehan/keymaps/default_iso/keymap.c diff --git a/keyboards/suavity/ehan/ehan.h b/keyboards/suavity/ehan/ehan.h index 5d121056eb..fbc6d33a96 100644 --- a/keyboards/suavity/ehan/ehan.h +++ b/keyboards/suavity/ehan/ehan.h @@ -6,18 +6,70 @@ #include "quantum.h" #define ___ KC_NO -#define LAYOUT_ansi_default( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B,K0C, K0D, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ - K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, \ - K50, K53, K54, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ +/* + * ┌───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┐ + * │00 ││01 │02 │03 │04 ││05 │ │06 │07 │08 │09 ││0A │0B │0C │0D ││0E │0F │0G │ + * └───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │ │17 │18 │19 │1A │1B │1C │1D │3E ││1E │1F │1G │ │3E │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ + * │20 │21 │22 │23 │24 │25 │ │26 │27 │28 │29 │2A │2B │2C │2D ││2E │2F │2G │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐3D │ ISO Enter + * LShift │30 │31 │32 │33 │34 │35 │ │36 │37 │38 │39 │3A │3B │3C │ │3C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤ + * │40 │ │40 │41 │42 │43 │44 │45 │46 │ │47 │48 │49 │4A │4B │4C │4D │4E │ │4F │ │4D │ 2.75u RShift + * └────────┘ ├────┴┬──┴─┬─┴───┼───┼───┴───┤ ├───┴───┴───┼───┴─┬─┴─┬─┴──┬───┴─┬─┘┌───┼───┼───┐ └──────────┘ + * │50 │ │53 │54 │55 │ │58 │5A │5C │ │5D │ │5E │5F │5G │ + * └─────┘ └─────┴───┴───────┘ └───────────┴─────┴───┘ └─────┘ └───┴───┴───┘ + * ┌───────────┐ ┌──────────┬─────┬────┐ + * 3u LSpace │55 │ │58 │5A │5C │ 2.75u/1.5u/1.25u + * └───────────┘ └──────────┴─────┴────┘ + */ + +#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, K3E, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, \ + K50, K53, K54, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, ___, ___, }, \ - { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, ___, }, \ - { K50, ___, ___, K53, K54, K55, ___, ___, K58, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___, ___, }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, ___, }, \ + { K50, ___, ___, K53, K54, K55, ___, ___, K58, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G, } \ +} + +#define LAYOUT_ansi_split_bs_rshift_lspace( \ + 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, K3E, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, \ + K50, K53, K54, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, ___, ___ }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, ___ }, \ + { K50, ___, ___, K53, K54, K55, ___, ___, K58, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_iso_split_bs_rshift_lspace( \ + 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, K3E, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, \ + K50, K53, K54, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, ___ }, \ + { K50, ___, ___, K53, K54, K55, ___, ___, K58, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/suavity/ehan/info.json b/keyboards/suavity/ehan/info.json index bf37fdf6a4..0f2ad67561 100755 --- a/keyboards/suavity/ehan/info.json +++ b/keyboards/suavity/ehan/info.json @@ -3,8 +3,308 @@ "url": "", "maintainer": "qmk", "layouts": { - "LAYOUT": { - "layout": [{"label":"PrtSc", "x":18.75, "y":0}, {"label":"Scroll Lock", "x":19.75, "y":0}, {"label":"Pause", "x":20.75, "y":0}, {"label":"Insert", "x":18.75, "y":1.5}, {"label":"Home", "x":19.75, "y":1.5}, {"label":"PgUp", "x":20.75, "y":1.5}, {"label":"Delete", "x":18.75, "y":2.5}, {"label":"End", "x":19.75, "y":2.5}, {"label":"PgDn", "x":20.75, "y":2.5}, {"label":"\u2191", "x":19.75, "y":4.5}, {"label":"\u2190", "x":18.75, "y":5.5}, {"label":"\u2193", "x":19.75, "y":5.5}, {"label":"\u2192", "x":20.75, "y":5.5}, {"label":"Esc", "x":2.5, "y":0}, {"label":"F1", "x":3.75, "y":0}, {"label":"F2", "x":4.75, "y":0}, {"label":"F3", "x":5.75, "y":0}, {"label":"F4", "x":6.75, "y":0}, {"label":"F5", "x":8, "y":0}, {"label":"~", "x":2.5, "y":1.5}, {"label":"!", "x":3.5, "y":1.5}, {"label":"@", "x":4.5, "y":1.5}, {"label":"#", "x":5.5, "y":1.5}, {"label":"$", "x":6.5, "y":1.5}, {"label":"%", "x":7.5, "y":1.5}, {"label":"^", "x":8.5, "y":1.5}, {"label":"Tab", "x":2.5, "y":2.5, "w":1.5}, {"label":"Q", "x":4, "y":2.5}, {"label":"W", "x":5, "y":2.5}, {"label":"E", "x":6, "y":2.5}, {"label":"R", "x":7, "y":2.5}, {"label":"T", "x":8, "y":2.5}, {"label":"Caps Lock", "x":2.5, "y":3.5, "w":1.75}, {"label":"A", "x":4.25, "y":3.5}, {"label":"S", "x":5.25, "y":3.5}, {"label":"D", "x":6.25, "y":3.5}, {"label":"F", "x":7.25, "y":3.5}, {"label":"G", "x":8.25, "y":3.5}, {"label":"Shift", "x":2.5, "y":4.5, "w":2.25}, {"label":"Z", "x":4.75, "y":4.5}, {"label":"X", "x":5.75, "y":4.5}, {"label":"C", "x":6.75, "y":4.5}, {"label":"V", "x":7.75, "y":4.5}, {"label":"B", "x":8.75, "y":4.5}, {"label":"Ctrl", "x":2.5, "y":5.5, "w":1.5}, {"label":"Alt", "x":5.25, "y":5.5, "w":1.5}, {"x":6.75, "y":5.5, "w":3}, {"label":"F6", "x":8.75, "y":3.25}, {"label":"F7", "x":9.75, "y":3.25}, {"label":"F8", "x":10.75, "y":3.25}, {"label":"F9", "x":11.75, "y":3.25}, {"label":"F10", "x":13.25, "y":3.25}, {"label":"F11", "x":14.25, "y":3.25}, {"label":"F12", "x":15.25, "y":3.25}, {"label":"F13", "x":16.25, "y":3.25}, {"label":"&", "x":9.25, "y":4.75}, {"label":"*", "x":10.25, "y":4.75}, {"label":"(", "x":11.25, "y":4.75}, {"label":")", "x":12.25, "y":4.75}, {"label":"_", "x":13.25, "y":4.75}, {"label":"+", "x":14.25, "y":4.75}, {"label":"Backspace", "x":15.25, "y":4.75, "w":2}, {"label":"Y", "x":8.75, "y":5.75}, {"label":"U", "x":9.75, "y":5.75}, {"label":"I", "x":10.75, "y":5.75}, {"label":"O", "x":11.75, "y":5.75}, {"label":"P", "x":12.75, "y":5.75}, {"label":"{", "x":13.75, "y":5.75}, {"label":"}", "x":14.75, "y":5.75}, {"label":"|", "x":15.75, "y":5.75, "w":1.5}, {"label":"H", "x":9, "y":6.75}, {"label":"J", "x":10, "y":6.75}, {"label":"K", "x":11, "y":6.75}, {"label":"L", "x":12, "y":6.75}, {"label":":", "x":13, "y":6.75}, {"label":"\"", "x":14, "y":6.75}, {"label":"Enter", "x":15, "y":6.75, "w":2.25}, {"label":"B", "x":8.5, "y":7.75}, {"label":"N", "x":9.5, "y":7.75}, {"label":"M", "x":10.5, "y":7.75}, {"label":"<", "x":11.5, "y":7.75}, {"label":">", "x":12.5, "y":7.75}, {"label":"?", "x":13.5, "y":7.75}, {"label":"Shift", "x":14.5, "y":7.75, "w":2.75}, {"x":8.5, "y":8.75, "w":3}, {"label":"Alt", "x":11.5, "y":8.75, "w":1.5}, {"label":"Win", "x":13, "y":8.75, "w":1.25}, {"label":"Ctrl", "x":15.5, "y":8.75, "w":1.5}] + "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":8.5, "y":0}, + {"label":"F7", "x":9.5, "y":0}, + {"label":"F8", "x":10.5, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":13, "y":0}, + {"label":"F11", "x":14, "y":0}, + {"label":"F12", "x":15, "y":0}, + {"label":"F13", "x":16, "y":0}, + {"label":"PrtSc", "x":17.25, "y":0}, + {"label":"Scroll Lock", "x":18.25, "y":0}, + {"label":"Pause", "x":19.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":9, "y":1.5}, + {"label":"8*", "x":10, "y":1.5}, + {"label":"9(", "x":11, "y":1.5}, + {"label":"0)", "x":12, "y":1.5}, + {"label":"-_", "x":13, "y":1.5}, + {"label":"=+", "x":14, "y":1.5}, + {"label":"\\|", "x":15, "y":1.5}, + {"label":"Backspace", "x":16, "y":1.5}, + {"label":"Insert", "x":17.25, "y":1.5}, + {"label":"Home", "x":18.25, "y":1.5}, + {"label":"Page Up", "x":19.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":8.5, "y":2.5}, + {"label":"U", "x":9.5, "y":2.5}, + {"label":"I", "x":10.5, "y":2.5}, + {"label":"O", "x":11.5, "y":2.5}, + {"label":"P", "x":12.5, "y":2.5}, + {"label":"[{", "x":13.5, "y":2.5}, + {"label":"]}", "x":14.5, "y":2.5}, + {"label":"\\|", "x":15.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":17.25, "y":2.5}, + {"label":"End", "x":18.25, "y":2.5}, + {"label":"Page Down", "x":19.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":8.75, "y":3.5}, + {"label":"J", "x":9.75, "y":3.5}, + {"label":"K", "x":10.75, "y":3.5}, + {"label":"L", "x":11.75, "y":3.5}, + {"label":";:", "x":12.75, "y":3.5}, + {"label":"'\"", "x":13.75, "y":3.5}, + {"label":"#~", "x":14.75, "y":3.5}, + {"label":"Enter", "x":15.75, "y":3.5, "w":1.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"B", "x":8.25, "y":4.5}, + {"label":"N", "x":9.25, "y":4.5}, + {"label":"M", "x":10.25, "y":4.5}, + {"label":",<", "x":11.25, "y":4.5}, + {"label":".>", "x":12.25, "y":4.5}, + {"label":"/?", "x":13.25, "y":4.5}, + {"label":"Shift", "x":14.25, "y":4.5, "w":1.75}, + {"label":"Fn", "x":16, "y":4.5}, + {"label":"\u2191", "x":18.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Alt", "x":2.75, "y":5.5, "w":1.5}, + {"label":"GUI", "x":4.25, "y":5.5}, + {"label":"Space", "x":5.25, "y":5.5, "w":2}, + {"label":"Space", "x":8.25, "y":5.5, "w":3}, + {"label":"ALT", "x":11.25, "y":5.5, "w":1.5}, + {"label":"GUI", "x":12.75, "y":5.5, "w":1}, + {"label":"Ctrl", "x":15, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":17.25, "y":5.5}, + {"label":"\u2193", "x":18.25, "y":5.5}, + {"label":"\u2193", "x":19.25, "y":5.5} + ] + }, + "LAYOUT_ansi_split_bs_rshift_lspace": { + "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":8.5, "y":0}, + {"label":"F7", "x":9.5, "y":0}, + {"label":"F8", "x":10.5, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":13, "y":0}, + {"label":"F11", "x":14, "y":0}, + {"label":"F12", "x":15, "y":0}, + {"label":"F13", "x":16, "y":0}, + {"label":"PrtSc", "x":17.25, "y":0}, + {"label":"Scroll Lock", "x":18.25, "y":0}, + {"label":"Pause", "x":19.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":9, "y":1.5}, + {"label":"8*", "x":10, "y":1.5}, + {"label":"9(", "x":11, "y":1.5}, + {"label":"0)", "x":12, "y":1.5}, + {"label":"-_", "x":13, "y":1.5}, + {"label":"=+", "x":14, "y":1.5}, + {"label":"\\|", "x":15, "y":1.5}, + {"label":"Backspace", "x":16, "y":1.5}, + {"label":"Insert", "x":17.25, "y":1.5}, + {"label":"Home", "x":18.25, "y":1.5}, + {"label":"Page Up", "x":19.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":8.5, "y":2.5}, + {"label":"U", "x":9.5, "y":2.5}, + {"label":"I", "x":10.5, "y":2.5}, + {"label":"O", "x":11.5, "y":2.5}, + {"label":"P", "x":12.5, "y":2.5}, + {"label":"[{", "x":13.5, "y":2.5}, + {"label":"]}", "x":14.5, "y":2.5}, + {"label":"\\|", "x":15.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":17.25, "y":2.5}, + {"label":"End", "x":18.25, "y":2.5}, + {"label":"Page Down", "x":19.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":8.75, "y":3.5}, + {"label":"J", "x":9.75, "y":3.5}, + {"label":"K", "x":10.75, "y":3.5}, + {"label":"L", "x":11.75, "y":3.5}, + {"label":";:", "x":12.75, "y":3.5}, + {"label":"'\"", "x":13.75, "y":3.5}, + {"label":"Enter", "x":14.75, "y":3.5, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"B", "x":8.25, "y":4.5}, + {"label":"N", "x":9.25, "y":4.5}, + {"label":"M", "x":10.25, "y":4.5}, + {"label":",<", "x":11.25, "y":4.5}, + {"label":".>", "x":12.25, "y":4.5}, + {"label":"/?", "x":13.25, "y":4.5}, + {"label":"Shift", "x":14.25, "y":4.5, "w":1.75}, + {"label":"Fn", "x":16, "y":4.5}, + {"label":"\u2191", "x":18.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Alt", "x":2.75, "y":5.5, "w":1.5}, + {"label":"GUI", "x":4.25, "y":5.5}, + {"label":"Space", "x":5.25, "y":5.5, "w":2}, + {"label":"Space", "x":8.25, "y":5.5, "w":3}, + {"label":"ALT", "x":11.25, "y":5.5, "w":1.5}, + {"label":"GUI", "x":12.75, "y":5.5, "w":1}, + {"label":"Ctrl", "x":15, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":17.25, "y":5.5}, + {"label":"\u2193", "x":18.25, "y":5.5}, + {"label":"\u2193", "x":19.25, "y":5.5} + ] + }, + "LAYOUT_iso_split_bs_rshift_lspace": { + "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":8.5, "y":0}, + {"label":"F7", "x":9.5, "y":0}, + {"label":"F8", "x":10.5, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":13, "y":0}, + {"label":"F11", "x":14, "y":0}, + {"label":"F12", "x":15, "y":0}, + {"label":"F13", "x":16, "y":0}, + {"label":"PrtSc", "x":17.25, "y":0}, + {"label":"Scroll Lock", "x":18.25, "y":0}, + {"label":"Pause", "x":19.25, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2\"", "x":2, "y":1.5}, + {"label":"3\u00a3", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":9, "y":1.5}, + {"label":"8*", "x":10, "y":1.5}, + {"label":"9(", "x":11, "y":1.5}, + {"label":"0)", "x":12, "y":1.5}, + {"label":"-_", "x":13, "y":1.5}, + {"label":"=+", "x":14, "y":1.5}, + {"label":"\\|", "x":15, "y":1.5}, + {"label":"Backspace", "x":16, "y":1.5}, + {"label":"Insert", "x":17.25, "y":1.5}, + {"label":"Home", "x":18.25, "y":1.5}, + {"label":"Page Up", "x":19.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":8.5, "y":2.5}, + {"label":"U", "x":9.5, "y":2.5}, + {"label":"I", "x":10.5, "y":2.5}, + {"label":"O", "x":11.5, "y":2.5}, + {"label":"P", "x":12.5, "y":2.5}, + {"label":"[{", "x":13.5, "y":2.5}, + {"label":"]}", "x":14.5, "y":2.5}, + {"label":"Delete", "x":17.25, "y":2.5}, + {"label":"End", "x":18.25, "y":2.5}, + {"label":"Page Down", "x":19.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":8.75, "y":3.5}, + {"label":"J", "x":9.75, "y":3.5}, + {"label":"K", "x":10.75, "y":3.5}, + {"label":"L", "x":11.75, "y":3.5}, + {"label":";:", "x":12.75, "y":3.5}, + {"label":"'@", "x":13.75, "y":3.5}, + {"label":"#~", "x":14.75, "y":3.5}, + {"label":"Enter", "x":15.75, "y":2.5, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"B", "x":8.25, "y":4.5}, + {"label":"N", "x":9.25, "y":4.5}, + {"label":"M", "x":10.25, "y":4.5}, + {"label":",<", "x":11.25, "y":4.5}, + {"label":".>", "x":12.25, "y":4.5}, + {"label":"/?", "x":13.25, "y":4.5}, + {"label":"Shift", "x":14.25, "y":4.5, "w":1.75}, + {"label":"Fn", "x":16, "y":4.5}, + {"label":"\u2191", "x":18.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Alt", "x":2.75, "y":5.5, "w":1.5}, + {"label":"GUI", "x":4.25, "y":5.5}, + {"label":"Space", "x":5.25, "y":5.5, "w":2}, + {"label":"Space", "x":8.25, "y":5.5, "w":3}, + {"label":"ALT", "x":11.25, "y":5.5, "w":1.5}, + {"label":"GUI", "x":12.75, "y":5.5, "w":1}, + {"label":"Ctrl", "x":15, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":17.25, "y":5.5}, + {"label":"\u2193", "x":18.25, "y":5.5}, + {"label":"\u2192", "x":19.25, "y":5.5} + ] } } } diff --git a/keyboards/suavity/ehan/keymaps/default/keymap.c b/keyboards/suavity/ehan/keymaps/default/keymap.c index f3cf35e1a1..5579f84ac6 100755 --- a/keyboards/suavity/ehan/keymaps/default/keymap.c +++ b/keyboards/suavity/ehan/keymaps/default/keymap.c @@ -17,21 +17,21 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi_default( - 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_BSLS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [0] = LAYOUT_ansi_split_bs_rshift_lspace( + 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_BSLS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), - - - [1] = LAYOUT_ansi_default( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [1] = LAYOUT_ansi_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), }; diff --git a/keyboards/suavity/ehan/keymaps/default_iso/keymap.c b/keyboards/suavity/ehan/keymaps/default_iso/keymap.c new file mode 100644 index 0000000000..62c5550789 --- /dev/null +++ b/keyboards/suavity/ehan/keymaps/default_iso/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2021 Suavity 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_iso_split_bs_rshift_lspace( + 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_BSLS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_iso_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/suavity/ehan/keymaps/via/keymap.c b/keyboards/suavity/ehan/keymaps/via/keymap.c index c447dd3304..9b267698db 100644 --- a/keyboards/suavity/ehan/keymaps/via/keymap.c +++ b/keyboards/suavity/ehan/keymaps/via/keymap.c @@ -17,37 +17,39 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi_default( - 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_BSLS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [0] = LAYOUT_ansi_split_bs_rshift_lspace( + 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_BSLS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), - [1] = LAYOUT_ansi_default( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [2] = LAYOUT_ansi_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), - - [2] = LAYOUT_ansi_default( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_ansi_default( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_ansi_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 9cdccb12d112c13e79f127ca686bbe81b8fcef6f Mon Sep 17 00:00:00 2001 From: Allen Choi <37539914+Thunderbird2086@users.noreply.github.com> Date: Sat, 16 Jul 2022 15:29:09 +0800 Subject: [PATCH 54/69] [Keymap] Crkbd/thunderbird2086 (#16973) * crkbd:thunderbird2086 * readme * after code review * coding format * minor change * changed file name * correct image * updated readme * using query to get rgb status * minor update --- .../crkbd/keymaps/thunderbird2086/config.h | 97 ++++++ .../crkbd/keymaps/thunderbird2086/glcdfont.c | 238 ++++++++++++++ .../crkbd/keymaps/thunderbird2086/keycodes.h | 69 ++++ .../crkbd/keymaps/thunderbird2086/keymap.c | 85 +++++ .../keymaps/thunderbird2086/layers_block.h | 89 ++++++ .../crkbd/keymaps/thunderbird2086/oled.c | 298 ++++++++++++++++++ .../keymaps/thunderbird2086/process_records.c | 45 +++ .../crkbd/keymaps/thunderbird2086/readme.md | 65 ++++ .../crkbd/keymaps/thunderbird2086/rules.mk | 18 ++ .../keymaps/thunderbird2086/tap_dances.c | 12 + .../keymaps/thunderbird2086/tap_dances.h | 16 + 11 files changed, 1032 insertions(+) create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/config.h create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/glcdfont.c create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/keycodes.h create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/keymap.c create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/layers_block.h create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/oled.c create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/process_records.c create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/readme.md create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/rules.mk create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/tap_dances.c create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/tap_dances.h diff --git a/keyboards/crkbd/keymaps/thunderbird2086/config.h b/keyboards/crkbd/keymaps/thunderbird2086/config.h new file mode 100644 index 0000000000..735caadaee --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/config.h @@ -0,0 +1,97 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define EE_HANDS +#define SPLIT_USB_DETECT + +// #define RGB_LAYER_ENABLE +#undef USE_I2C +#undef SSD1306OLED + +#define IGNORE_MOD_TAP_INTERRUPT +#define PERMISSIVE_HOLD + +#if defined(TAPPING_TERM) +# undef TAPPING_TERM +#endif +#define TAPPING_TERM 200 + +#define NO_ACTION_ONESHOT + +#if defined(OLED_ENABLE) +# define SPLIT_LAYER_STATE_ENABLE +# define SPLIT_LED_STATE_ENABLE +# define SPLIT_MODS_ENABLE +# define SPLIT_OLED_ENABLE +# define OLED_FONT_H "keyboards/crkbd/keymaps/thunderbird2086/glcdfont.c" +# undef OLED_TIMEOUT + // due to timer_read() for render_prompt(), we have own implementation of oled time out +# define OLED_KEY_TIMEOUT 30000 +# define KEY_LOG_ENABLE +#endif + +#define RGBLIGHT_SLEEP + +#if defined(RGBLIGHT_ENABLE) +# define RGBLIGHT_LIMIT_VAL 150 +# define RGBLIGHT_HUE_STEP 16 +# define RGBLIGHT_SAT_STEP 32 +# define RGBLIGHT_VAL_STEP 32 + +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_KNIGHT +#endif + +#if defined(RGB_MATRIX_ENABLE) +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# 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 32 +# define RGB_MATRIX_SAT_STEP 64 +# define RGB_MATRIX_VAL_STEP 64 +# define RGB_MATRIX_SPD_STEP 20 +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR + +/* Disable the animations you don't want/need. You will need to disable a good number of these * + * because they take up a lot of space. Disable until you can successfully compile your firmware. */ +# undef ENABLE_RGB_MATRIX_ALPHAS_MODS +# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_BREATHING +# undef ENABLE_RGB_MATRIX_BAND_SAT +# undef ENABLE_RGB_MATRIX_BAND_VAL +# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# undef ENABLE_RGB_MATRIX_DUAL_BEACON +# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON +# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# undef ENABLE_RGB_MATRIX_RAINDROPS +# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP +# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# undef ENABLE_RGB_MATRIX_MULTISPLASH +# undef ENABLE_RGB_MATRIX_SOLID_SPLASH +# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/crkbd/keymaps/thunderbird2086/glcdfont.c b/keyboards/crkbd/keymaps/thunderbird2086/glcdfont.c new file mode 100644 index 0000000000..97dc8fdaa3 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/glcdfont.c @@ -0,0 +1,238 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. +// https://helixfonteditor.netlify.com/ + +#include "progmem.h" + +// clang-format off +// Standard ASCII 5x7 font +static const unsigned char PROGMEM font[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, + 0x0C, 0x04, 0xE7, 0xE4, 0xE4, 0x07, + 0x04, 0xE4, 0xE7, 0xE4, 0x04, 0x07, + 0xE4, 0xE4, 0xE7, 0x04, 0x0C, 0xF8, + 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, + 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, + 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, + 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, + 0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0, + 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, + 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, + 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, + 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, + 0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0, + 0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0, + 0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, + 0x00, 0x77, 0x55, 0x7F, 0x14, 0x7F, + 0x55, 0x77, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x60, + 0x70, 0x3E, 0x1F, 0x19, 0x18, 0x0C, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x08, 0x08, 0x08, 0x00, 0x1C, + 0x22, 0x41, 0x41, 0x41, 0x22, 0x1C, + 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x08, 0x0C, 0x5E, 0x5F, 0x5E, 0x0C, + 0x00, 0x00, 0x00, 0x49, 0x49, 0xFF, + 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x38, + 0x30, 0xFF, 0xFF, 0xFF, 0x30, 0x38, + 0x3F, 0x1F, 0x0F, 0x00, 0x00, 0xFF, + 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, + 0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E, + 0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C, + 0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88, + 0x88, 0x88, 0x55, 0x55, 0x23, 0x23, + 0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47, + 0x23, 0x23, 0x55, 0x55, 0x88, 0x88, + 0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2, + 0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4, + 0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88, + 0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6, + 0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6, + 0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88, + 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, + 0x0C, 0x18, 0x30, 0x66, 0x66, 0x66, + 0x08, 0x0C, 0x7E, 0x7F, 0x7E, 0x0C, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF0, 0x90, 0x90, 0xF0, 0x90, 0x90, + 0xF0, 0x98, 0x9C, 0xF2, 0x22, 0x21, + 0xE1, 0x01, 0x01, 0x01, 0xF1, 0x91, + 0x91, 0xFA, 0x4C, 0x4C, 0xF8, 0x48, + 0x48, 0xF8, 0x48, 0x48, 0xF8, 0x00, + 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, + 0x00, 0x1C, 0x22, 0x00, 0x00, 0x1C, + 0x3E, 0x7F, 0x63, 0x41, 0x22, 0x1C, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x02, 0x0F, + 0x18, 0x10, 0x70, 0x10, 0x10, 0x70, + 0x10, 0x13, 0x73, 0x13, 0x10, 0x70, + 0x10, 0x10, 0x70, 0x10, 0x18, 0x0F, + 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, + 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, + 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, + 0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07, + 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, + 0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06, + 0x03, 0x02, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, + 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x02, 0x39, 0xFC, 0xED, + 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, + 0x07, 0x04, 0x04, 0x07, 0x04, 0x04, + 0x07, 0x04, 0x04, 0x0F, 0x09, 0x09, + 0x0F, 0x00, 0x00, 0x00, 0x07, 0x04, + 0x04, 0x07, 0x02, 0x02, 0x03, 0x02, + 0x02, 0x03, 0x02, 0x02, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, + 0x22, 0x41, 0x63, 0x7F, 0x3E, 0x1C, + 0x00, 0x00, 0x22, 0x1C, 0x00, 0x00, + 0x41, 0x22, 0x1C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; +// clang-format on diff --git a/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h b/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h new file mode 100644 index 0000000000..cb10a3ac07 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h @@ -0,0 +1,69 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +enum custom_keycodes { + // Layer Macros + COLEMAK = SAFE_RANGE, + QWERTY, + FUNCTION, + CODE, + ADJUST, + RGBRST, + // Secret Macros + M_XXX1, + M_XXX2, + M_XXX3, + M_XXX4, + M_XXX5, +}; + + +enum layers { + _COLEMAK, + _QWERTY, + _FUNCTION, + _CODE, + _ADJUST, + _SECRET, +}; + +// Shortcut Keys +#define K_BACK LGUI(KC_LBRC) // browser back +#define K_FWRD LGUI(KC_RBRC) // browser forward +#define K_LOCK LGUI(LCTL(KC_Q)) // Lock screen +#define K_CSCN LGUI(LCTL(LSFT(KC_4))) // Copy a portion of the screen to the clipboard +#define K_MDSH LSFT(LALT(KC_MINS)) + +// Layer Keys +#define FCT_BSP LT(_FUNCTION, KC_BSPC) +#define FCT_DEL LT(_FUNCTION, KC_DEL) + +#define FCT_ENT LT(_FUNCTION, KC_ENT) +#define RAI_ENT LT(_CODE , KC_ENT) + +#define FCT_EQL LT(_FUNCTION, KC_EQL) +#define RAI_EQL LT(_CODE , KC_EQL) + +#define FCT_SPC LT(_FUNCTION, KC_SPC) +#define RAI_SPC LT(_CODE , KC_SPC) + +#define FCT_TAB LT(_FUNCTION, KC_TAB) + +#define ADJ_EQL LT(_ADJUST, KC_EQL) +#define ADJ_GRV LT(_ADJUST, KC_GRV) + +// Mod-Tap Keys +#define SFT_SLSH MT(MOD_RSFT, KC_SLSH) +#define SFT_Z MT(MOD_LSFT, KC_Z) + +#define CTL_QUOT MT(MOD_RCTL, KC_QUOT) +#define CTL_SCLN MT(MOD_RCTL, KC_SCLN) +#define CTL_A MT(MOD_LCTL, KC_A) +#define CTL_O MT(MOD_LCTL, KC_O) + +#define M_LOPT_F MT(MOD_LALT, KC_F) +#define M_LOPT_T MT(MOD_LALT, KC_T) +#define RCMD_J MT(MOD_LGUI, KC_J) +#define RCMD_N MT(MOD_RGUI, KC_N) diff --git a/keyboards/crkbd/keymaps/thunderbird2086/keymap.c b/keyboards/crkbd/keymaps/thunderbird2086/keymap.c new file mode 100644 index 0000000000..7bc23db8aa --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/keymap.c @@ -0,0 +1,85 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "layers_block.h" + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_COLEMAK] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + T_TAB , ___________________COLEMAK_DH_L1_______________ , ___________________COLEMAK_DH_R1_______________ , KC_MINS , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + KC_LCTL , ___________________COLEMAK_DH_L2_______________ , ___________________COLEMAK_DH_R2_______________ , CTL_QUOT, + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + KC_LSFT , ___________________COLEMAK_DH_L3_______________ , ___________________COLEMAK_DH_R3_______________ , ADJ_EQL , + // +---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+ + _________MOD_LEFT__________ , _________MOD_RIGHT_________ + // \----------------------------/ \-----------------------------/ + ), + + [_QWERTY] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + T_TAB , ___________________QWERTY_L1___________________ , ___________________QWERTY_R1___________________ , KC_MINS , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + KC_LCTL , ___________________QWERTY_L2___________________ , ___________________QWERTY_R2___________________ , CTL_QUOT, + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + KC_LSFT , ___________________QWERTY_L3___________________ , ___________________QWERTY_R3___________________ , ADJ_EQL , + // +---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+ + _________MOD_LEFT__________ , _________MOD_RIGHT_________ + // \----------------------------/ \-----------------------------/ + ), + + [_FUNCTION] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + KC_ESC , ___________________FUNC_LEFT___________________ , ___________________FUNC_RIGHT__________________ , KC_F11 , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + K_CSCN , ____________________MEDIA_1____________________ , KC_DEL , _______________NAV_1_________________ , KC_F12 , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + _______ , ____________________MEDIA_2____________________ , KC_INS , _______________NAV_2_________________ , K_LOCK , + // +---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+ + _______MOD_TRNS_LEFT_______ , _______MOD_TRNS_RIGHT______ + // \----------------------------/ \-----------------------------/ + ), + + [_CODE] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + T_GRV , ___________________NUM_LEFT____________________ , ___________________NUM_RIGHT___________________ , KC_BSLS , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________SYMBOL_L1________________________ , ________________________SYMBOL_R1________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________SYMBOL_L2________________________ , ________________________SYMBOL_R2________________________ , + // +---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+ + _______MOD_TRNS_LEFT_______ , _______MOD_TRNS_RIGHT______ + // \----------------------------/ \-----------------------------/ + ), + + [_ADJUST] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + ________________________ADJUST_L1________________________ , ________________________ADJUST_R1________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________ADJUST_L2________________________ , ________________________ADJUST_R2________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________ADJUST_L3________________________ , ________________________ADJUST_R3________________________ , + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + _______ , _______ , _______ , _______ , _______ , _______ + // \----------------------------/ \-----------------------------/ + ), + + [_SECRET] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + ________________________SECRET_L1________________________ , ________________________SECRET_R1________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________SECRET_L2________________________ , ________________________SECRET_R2________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________SECRET_L3________________________ , ________________________SECRET_R3________________________ , + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + // \----------------------------/ \-----------------------------/ + ) +}; +// clang-format off + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _FUNCTION, _ADJUST, _SECRET); +} diff --git a/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h b/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h new file mode 100644 index 0000000000..03d438306e --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h @@ -0,0 +1,89 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "keycodes.h" +#include "tap_dances.h" + +// Layout blocks +#define ___________________COLEMAK_DH_L1_______________ KC_Q , KC_W , KC_F , KC_P , KC_B +#define ___________________COLEMAK_DH_L2_______________ CTL_A , KC_R , KC_S , M_LOPT_T, KC_G +#define ___________________COLEMAK_DH_L3_______________ SFT_Z , KC_X , KC_C , KC_D , KC_V + +#define ___________________COLEMAK_DH_R1_______________ KC_J , KC_L , KC_U , KC_Y , KC_SCLN +#define ___________________COLEMAK_DH_R2_______________ KC_M , RCMD_N , KC_E , KC_I , CTL_O +#define ___________________COLEMAK_DH_R3_______________ KC_K , KC_H , KC_COMM , KC_DOT , SFT_SLSH + +#define ___________________QWERTY_L1___________________ KC_Q , KC_W , KC_E , KC_R , KC_T +#define ___________________QWERTY_L2___________________ CTL_A , KC_S , KC_D , M_LOPT_F, KC_G +#define ___________________QWERTY_L3___________________ SFT_Z , KC_X , KC_C , KC_V , KC_B + +#define ___________________QWERTY_R1___________________ KC_Y , KC_U , KC_I , KC_O , KC_P +#define ___________________QWERTY_R2___________________ KC_H , RCMD_J , KC_K , KC_L , CTL_SCLN +#define ___________________QWERTY_R3___________________ KC_N , KC_M , KC_COMM , KC_DOT , SFT_SLSH + +#define ___________________COLEMAK_L1__________________ KC_Q , KC_W , KC_F , KC_P , KC_G +#define ___________________COLEMAK_L2__________________ CTL_A , KC_R , KC_S , M_LOPT_T, KC_D +#define ___________________COLEMAK_L3__________________ SFT_Z , KC_X , KC_C , KC_V , KC_B + +#define ___________________COLEMAK_R1__________________ KC_J , KC_L , KC_U , KC_Y , KC_SCLN +#define ___________________COLEMAK_R2__________________ KC_H , RCMD_N , KC_E , KC_I , CTL_O +#define ___________________COLEMAK_R3__________________ KC_K , KC_M , KC_COMM , KC_DOT , SFT_SLSH + +#define ___________________NUM_LEFT____________________ KC_1 , KC_2 , KC_3 , KC_4 , KC_5 +#define ___________________NUM_RIGHT___________________ KC_6 , KC_7 , KC_8 , KC_9 , KC_0 + +#define ___________________FUNC_LEFT___________________ KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 +#define ___________________FUNC_RIGHT__________________ KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 + +#define ________________________SYMBOL_L1________________________ KC_TILD , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC +#define ________________________SYMBOL_L2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + +#define ________________________SYMBOL_R1________________________ KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_PIPE +#define ________________________SYMBOL_R2________________________ XXXXXXX , KC_LCBR , KC_RCBR , KC_LBRC , KC_RBRC , KC_PLUS + + +#define ________________________ADJUST_L1________________________ RESET , XXXXXXX , KC_PWR , KC_WAKE , KC_SLEP , XXXXXXX + +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) +# define ________________________ADJUST_L2________________________ RGBRST , XXXXXXX , RGB_SPI , RGB_SAI , RGB_HUI , RGB_VAI +# define ________________________ADJUST_L3________________________ EEP_RST , XXXXXXX , RGB_SPD , RGB_SAD , RGB_HUD , RGB_VAD +#else +# define ________________________ADJUST_L2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +# define ________________________ADJUST_L3________________________ EEP_RST , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) +# define ________________________ADJUST_R1________________________ RGB_TOG , XXXXXXX , XXXXXXX , XXXXXXX , COLEMAK , QWERTY +# define ________________________ADJUST_R3________________________ RGB_MOD , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#else +# define ________________________ADJUST_R1________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , COLEMAK , QWERTY +# define ________________________ADJUST_R3________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#endif +#define ________________________ADJUST_R2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + +#define ________________________SECRET_L1________________________ M_XXX1 , XXXXXXX , M_XXX3 , XXXXXXX , M_XXX5 , XXXXXXX +#define ________________________SECRET_L2________________________ XXXXXXX , M_XXX2 , XXXXXXX , M_XXX4 , XXXXXXX , XXXXXXX +#define ________________________SECRET_L3________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + +#define ________________________SECRET_R1________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#define ________________________SECRET_R2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#define ________________________SECRET_R3________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + +#define _______________NAV_1_________________ KC_LEFT , KC_UP , KC_RGHT , KC_PGUP +#define _______________NAV_2_________________ KC_HOME , KC_DOWN , KC_END , KC_PGDN + +#define _______________MOUSE_1_______________ KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_D +#define _______________MOUSE_2_______________ KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_U + +#define ____________________MEDIA_1____________________ KC_BRMU , KC_MFFD , KC_MPLY , KC_VOLU , K_BACK +#define ____________________MEDIA_2____________________ KC_BRMD , KC_MRWD , KC_MUTE , KC_VOLD , K_FWRD + +#define _________MOD_LEFT__________ T_GUI , FCT_DEL , RAI_SPC +#define _________MOD_RIGHT_________ RAI_ENT , FCT_BSP , KC_ROPT +#define _______MOD_TRNS_LEFT_______ KC_TRNS , T_ESC , XXXXXXX +#define _______MOD_TRNS_RIGHT______ XXXXXXX , T_ESC , KC_TRNS + +// Layout wrappers +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) diff --git a/keyboards/crkbd/keymaps/thunderbird2086/oled.c b/keyboards/crkbd/keymaps/thunderbird2086/oled.c new file mode 100644 index 0000000000..bee9bc26de --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/oled.c @@ -0,0 +1,298 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "keycodes.h" + + +// 5x3 Logos +void render_qmk_logo(void) { + static const char PROGMEM font_qmk_logo[16] = { + 0x80, 0x81, 0x82, 0x83, 0x84, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, + 0 + }; + oled_write_P(font_qmk_logo, false); +}; + +// 5x2 Keyboard, Controller logos +void render_kb_split(void) { + static const char PROGMEM font_kb_split[11] = { + 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, + 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, + 0 + }; + oled_write_P(font_kb_split, false); +}; + +// 5x1 Layer indicator + +void render_layer(void) { + static const char PROGMEM font_layer[4][6] = { + {0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0}, + {0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0}, + {0xda, 0xdb, 0xdc, 0xdd, 0xde, 0}, + {0x95, 0x96, 0x97, 0x98, 0x99, 0}, + }; + + uint8_t layer = 0; + if (layer_state_is(_FUNCTION)) { + layer = 1; + } else if (layer_state_is(_CODE)) { + layer = 2; + } else if (layer_state_is(_ADJUST)) { + layer = 3; + } + oled_write_P(font_layer[layer], false); +}; + + +void render_layers(void) { + static const char PROGMEM font_layers[4][16] = { + {0x20, 0x85, 0x86, 0x87, 0x20, + 0x20, 0xa5, 0xa6, 0xa7, 0x20, + 0x20, 0xc5, 0xc6, 0xc7, 0x20, + 0}, + {0x20, 0x88, 0x89, 0x8a, 0x20, + 0x20, 0xa8, 0xa9, 0xaa, 0x20, + 0x20, 0xc8, 0xc9, 0xca, 0x20, + 0}, + {0x20, 0x8b, 0x8c, 0x8d, 0x20, + 0x20, 0xab, 0xac, 0xad, 0x20, + 0x20, 0xcb, 0xcc, 0xcd, 0x20, + 0}, + {0x20, 0x8e, 0x8f, 0x90, 0x20, + 0x20, 0xae, 0xaf, 0xb0, 0x20, + 0x20, 0xce, 0xcf, 0xd0, 0x20, + 0}, + }; + + uint8_t layer = 0; + if (layer_state_is(_FUNCTION)) { + layer = 1; + } else if (layer_state_is(_CODE)) { + layer = 2; + } else if (layer_state_is(_ADJUST)) { + layer = 3; + } + oled_write_P(font_layers[layer], false); +}; + +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) + +void render_rgb_status(void) { + static const char PROGMEM font_rgb_off[3] = {0xd1, 0xd2, 0}; + static const char PROGMEM font_rgb_on[3] = {0xd3, 0xd4, 0}; + bool rgb_enabled = +# if defined(RGBLIGHT_ENABLE) + rgblight_is_enabled(); +# elif defined(RGB_MATRIX_ENABLE) + rgb_matrix_is_enabled(); +# endif + + oled_write_P(rgb_enabled ? font_rgb_on : font_rgb_off, false); +}; +#endif + +// 2x1 Ctrl, Alt, Shift, GUI, Caps + +void render_mod_ctrl(void) { + static const char PROGMEM font_ctrl[3] = {0x91, 0x92, 0}; + oled_write_P(font_ctrl, false); +}; + +void render_mod_alt(void) { + static const char PROGMEM font_alt[3] = {0xb1, 0xb2, 0}; + oled_write_P(font_alt, false); +}; + +void render_mod_shift(void) { + static const char PROGMEM font_shift[3] = {0xb3, 0xb4, 0}; + oled_write_P(font_shift, false); +}; + +void render_mod_gui(void) { + static const char PROGMEM font_gui[3] = {0x93, 0x94, 0}; + oled_write_P(font_gui, false); +}; + +void render_caps_lock(void) { + static const char PROGMEM font_caps[3] = {0x9f, 0xbf, 0}; + oled_write_P(font_caps, false); +}; + + +// 5x2 Mod and feature indicator clusters + +void render_mod_status(void) { +#if defined(NO_ACTION_ONESHOT) + uint8_t modifiers = get_mods(); +#else + uint8_t modifiers = get_mods() | get_oneshot_mods(); +#endif + + (modifiers & MOD_MASK_CTRL) ? render_mod_ctrl() : oled_write_P(PSTR(" "), false); + oled_write_P(PSTR(" "), false); + (modifiers & MOD_MASK_SHIFT) ? render_mod_shift() : oled_write_P(PSTR(" "), false); + + (modifiers & MOD_MASK_ALT) ? render_mod_alt() : oled_write_P(PSTR(" "), false); + oled_write_P(PSTR(" "), false); + (modifiers & MOD_MASK_GUI) ? render_mod_gui() : oled_write_P(PSTR(" "), false); + + led_t led_state = host_keyboard_led_state(); + (led_state.caps_lock) ? render_caps_lock() : oled_write_P(PSTR(" "), false); +} + +void render_feature_status(void) { +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) + render_rgb_status(); +#endif +}; + +// Keylogger +#define KEYLOGGER_LENGTH 5 +static char keylog_str[KEYLOGGER_LENGTH + 1] = {"\n"}; +// clang-format off +static const char PROGMEM code_to_name[0xFF] = { +// 0 1 2 3 4 5 6 7 8 9 A B C D E F + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x + 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x + '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x + ']','\\', '#', ';','\'', '`', ',', '.', '/', 128, ' ', ' ', ' ', ' ', ' ', ' ', // 3x + ' ', ' ', ' ', ' ', ' ', ' ', 'P', 'S', ' ', ' ', ' ', ' ', 16, ' ', ' ', ' ', // 4x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx + 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx +}; + + +#if defined(KEY_LOG_ENABLE) +void add_keylog(uint16_t keycode) { + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) + || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) + || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) { + keycode = keycode & 0xFF; + } else if (keycode > 0xFF) { + keycode = 0; + } + + for (uint8_t i = (KEYLOGGER_LENGTH - 1); i > 0; --i) { + keylog_str[i] = keylog_str[i - 1]; + } + + if (keycode < (sizeof(code_to_name) / sizeof(char))) { + keylog_str[0] = pgm_read_byte(&code_to_name[keycode]); + } +} +#endif + +static uint16_t key_timer = 0; +static bool is_key_processed = true; +bool process_record_oled(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + key_timer = timer_read(); + is_key_processed = true; + +# if defined(KEY_LOG_ENABLE) + add_keylog(keycode); +#endif + } + + return true; +} + + +void render_keylogger_status(void) { + oled_write(keylog_str, false); +} + + +void render_prompt(void) { + bool blink = (timer_read() % 1000) < 500; + + if (layer_state_is(_FUNCTION)) { + oled_write_ln_P(blink ? PSTR("> ft_") : PSTR("> ft "), false); + } else if (layer_state_is(_CODE)) { + oled_write_ln_P(blink ? PSTR("> sy_") : PSTR("> sy "), false); + } else if (layer_state_is(_ADJUST)) { + oled_write_ln_P(blink ? PSTR("> aj_") : PSTR("> aj "), false); + } else { + oled_write_ln_P(blink ? PSTR("> _ ") : PSTR("> "), false); + } +}; + + +void render_status_secondary(void) { + oled_write_ln("", false); + oled_write_ln("", false); + + render_kb_split(); + + oled_write_ln("", false); + oled_write_ln("", false); + oled_write_ln("", false); + + render_layer(); + + oled_write_ln("", false); + oled_write_ln("", false); + oled_write_ln("", false); + +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) + layer_state_is(_ADJUST) ? render_feature_status() : render_mod_status(); +#else + render_mod_status(); +#endif +}; + + +void render_status_main(void) { + oled_write_ln("", false); + oled_write_ln("", false); + + render_qmk_logo(); + + oled_write_ln("", false); + oled_write_ln("", false); + + render_layers(); + + oled_write_ln("", false); + oled_write_ln("", false); + + render_prompt(); + + oled_write_ln("", false); + + render_keylogger_status(); +} + + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + + +bool oled_task_user(void) { + if (is_keyboard_master()) { + if (is_key_processed && (timer_elapsed(key_timer) < OLED_KEY_TIMEOUT)) { + render_status_main(); + } else if (is_key_processed) { + is_key_processed = false; + oled_off(); + } + } else { + render_status_secondary(); + } + + return false; +} diff --git a/keyboards/crkbd/keymaps/thunderbird2086/process_records.c b/keyboards/crkbd/keymaps/thunderbird2086/process_records.c new file mode 100644 index 0000000000..381cf281e5 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/process_records.c @@ -0,0 +1,45 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#include "keycodes.h" + +__attribute__((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +__attribute__((weak)) +bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { + return true; +} + +#if defined(OLED_ENABLE) +__attribute__((weak)) +bool process_record_oled(uint16_t keycode, keyrecord_t *record) { + return true; +} +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + } + + return process_record_keymap(keycode, record) && process_record_secrets(keycode, record) +# if defined(OLED_ENABLE) + && process_record_oled(keycode, record) +# endif + ; +} diff --git a/keyboards/crkbd/keymaps/thunderbird2086/readme.md b/keyboards/crkbd/keymaps/thunderbird2086/readme.md new file mode 100644 index 0000000000..6400309fe8 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/readme.md @@ -0,0 +1,65 @@ +# Thunderbird2086's custom CRKBD Layout + +The concept is Mac and **baby finger** friendly keymap. + +## Layers +- Colemak-DH: base layer. The option(⌥) and command(⌘) keys are assigned to thumb blocks as well as home position keys on each side. Also, far end two columns are assigned to shift(⇧) and control(⌃) keys. + ![colemak-dh](https://i.imgur.com/R7EzTTt.png) + - Thumb keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | Command(⌘) | Command(⌘) + Space(␣) | | + | Delete(⌦) | | Function layer | + | Backspace(⌫)| | Function layer | + | Space(␣) | | Code layer | + | Enter(⏎) | | Code layer | + - Staggered keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | TAB | Control(⌃) + TAB | | + | a | | Control(⌃) | + | z | | Shift(⇧) | + | t | | Option(⌥) | + | n | | Command(⌘) | + | o | | Control(⌃) | + | ' | | Control(⌃) | + | / | | Shift(⇧) | + | = | | Adjust layer | + +- QWERTY: same as Colemak-DH layer + ![qwery](https://i.imgur.com/v9JBwQu.png) + - Thumb keys : same as Colemak-DH + - Staggered keys : almost same as Colemak-DH except + | Tap | Double tap | Long tap | + | --- | --- | --- | + | f | | Option(⌥) | + | j | | Command(⌘) | + | ; | | Control(⌃) | + +- CODE: numbers and symbols. + ![symbol](https://i.imgur.com/BPgPlYX.png) + - Thumb keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | ESC | Caps lock | | + - Staggered keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | ` | Command(⌘) + ` | | + +- FUNCTION: function, meadia and navigation keys + ![function](https://i.imgur.com/cs5haUP.png) + - Thumb keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | ESC | Caps lock | | + +- ADJUST: RGB control, Power control, default layer setting and reset + ![adjust](https://i.imgur.com/uDIhigd.png) +- SECRET: hold `ADJUST` and `FUNCTION` to activate + +## Custom OLED +This keymap includes custom OLED font and code. The font contains some logos and status indidcators from [gotham](../gotham) and [soundmonster](../soundmonster) including my own CAPS LOCK icon. Enable OLED in rukes.mk to check it out. Feel free to reuse the font or parts of it. + +## Flashing +Flash using `make crkbd:thunderbird2086:avrdude` for Pro Micro and `make crkbd:thunderbird2086:dfu` for Elite-C. diff --git a/keyboards/crkbd/keymaps/thunderbird2086/rules.mk b/keyboards/crkbd/keymaps/thunderbird2086/rules.mk new file mode 100644 index 0000000000..4da48db08e --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/rules.mk @@ -0,0 +1,18 @@ +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 +LTO_ENABLE = yes + +TAP_DANCE_ENABLE = yes + +SRC += oled.c +SRC += process_records.c +SRC += tap_dances.c + +ifneq ("$(wildcard keyboards/crkbd/keymaps/thunderbird2086/secrets.c)","") + SRC += secrets.c +endif diff --git a/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.c b/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.c new file mode 100644 index 0000000000..1cf6fdf092 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.c @@ -0,0 +1,12 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "tap_dances.h" + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), + [TD_TAB_CTRLTAB] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, LCTL(KC_TAB)), + [TD_GRV_CTRLGRV] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, LGUI(KC_GRV)), + [TD_GUI_GUISPC] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, LGUI(KC_SPC)), +}; diff --git a/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.h b/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.h new file mode 100644 index 0000000000..34d3c4e32c --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.h @@ -0,0 +1,16 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +enum custom_tapdances { + TD_ESC_CAPS = 0, + TD_TAB_CTRLTAB, + TD_GRV_CTRLGRV, + TD_GUI_GUISPC, +}; + +#define T_ESC TD(TD_ESC_CAPS) // Tap for ESC, double tap for CAPSLOCK +#define T_TAB TD(TD_TAB_CTRLTAB) // Tap for TAB, double tap for CTRL + TAB +#define T_GRV TD(TD_GRV_CTRLGRV) // Tap for GRV, double tap for Cmd + GRV +#define T_GUI TD(TD_GUI_GUISPC) // Tap for Cmd, double tap for Cmd + Space From 847cca541c3666e687fc5ad6a0d3ba1733b89d81 Mon Sep 17 00:00:00 2001 From: bri <284789+b-@users.noreply.github.com> Date: Sat, 16 Jul 2022 14:38:56 -0400 Subject: [PATCH 55/69] Add .orig to .gitignore (#17626) --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index de2627d9d6..51b0a38e0a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,10 @@ .DS_Store ._* +# Merge files +*.orig +*.rej + # Build artifacts .clang_complete .build/ From 4d443d921bea20758328668ae821ae5396a6c6e1 Mon Sep 17 00:00:00 2001 From: ymlmkb <84640569+ymlmkb@users.noreply.github.com> Date: Sat, 16 Jul 2022 14:03:39 -0500 Subject: [PATCH 56/69] [Keyboard] KeebMonkey KBMG68 (#15909) * added KeebMonkey KBMG68. * Update keyboards/keebmonkey/kbmg68/config.h * changes requested by fauxpark . * Apply suggestions from code review changes suggested by fauxpark * Update readme.md changes requested by fauxpark * Apply suggestions from code review changes requested by noroadsleft. * Apply suggestions from code review per fauxpark --- keyboards/keebmonkey/kbmg68/config.h | 68 ++++++++++++++++ keyboards/keebmonkey/kbmg68/info.json | 80 +++++++++++++++++++ keyboards/keebmonkey/kbmg68/kbmg68.c | 20 +++++ keyboards/keebmonkey/kbmg68/kbmg68.h | 38 +++++++++ .../kbmg68/keymaps/default/keymap.c | 45 +++++++++++ keyboards/keebmonkey/kbmg68/readme.md | 27 +++++++ keyboards/keebmonkey/kbmg68/rules.mk | 20 +++++ 7 files changed, 298 insertions(+) create mode 100644 keyboards/keebmonkey/kbmg68/config.h create mode 100644 keyboards/keebmonkey/kbmg68/info.json create mode 100644 keyboards/keebmonkey/kbmg68/kbmg68.c create mode 100644 keyboards/keebmonkey/kbmg68/kbmg68.h create mode 100644 keyboards/keebmonkey/kbmg68/keymaps/default/keymap.c create mode 100644 keyboards/keebmonkey/kbmg68/readme.md create mode 100644 keyboards/keebmonkey/kbmg68/rules.mk diff --git a/keyboards/keebmonkey/kbmg68/config.h b/keyboards/keebmonkey/kbmg68/config.h new file mode 100644 index 0000000000..6018913cb8 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/config.h @@ -0,0 +1,68 @@ +/* Copyright 2022 Your Mom Loves My Keyboard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER KeebMonkey +#define PRODUCT kbmg68 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B1, B2, B3, B4, B5 } +#define MATRIX_COL_PINS { B6, B7, D0, D1, D2, D3, D4, D5, D6, D7, C6, C7, F7, F6, F5, F4 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN B0 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 68 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#endif + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/keebmonkey/kbmg68/info.json b/keyboards/keebmonkey/kbmg68/info.json new file mode 100644 index 0000000000..885e9ad348 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/info.json @@ -0,0 +1,80 @@ +{ + "keyboard_name": "kbmg68", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + { "label": "K00 (B1,B6)", "x": 0, "y": 0 }, + { "label": "K01 (B1,B7)", "x": 1, "y": 0 }, + { "label": "K02 (B1,D0)", "x": 2, "y": 0 }, + { "label": "K03 (B1,D1)", "x": 3, "y": 0 }, + { "label": "K04 (B1,D2)", "x": 4, "y": 0 }, + { "label": "K05 (B1,D3)", "x": 5, "y": 0 }, + { "label": "K06 (B1,D4)", "x": 6, "y": 0 }, + { "label": "K07 (B1,D5)", "x": 7, "y": 0 }, + { "label": "K08 (B1,D6)", "x": 8, "y": 0 }, + { "label": "K09 (B1,D7)", "x": 9, "y": 0 }, + { "label": "K0A (B1,C6)", "x": 10, "y": 0 }, + { "label": "K0B (B1,C7)", "x": 11, "y": 0 }, + { "label": "K0C (B1,F7)", "x": 12, "y": 0 }, + { "label": "K0E (B1,F5)", "x": 13, "y": 0, "w": 2 }, + { "label": "K0F (B1,F4)", "x": 15, "y": 0 }, + { "label": "K10 (B2,B6)", "x": 0, "y": 1, "w": 1.5 }, + { "label": "K12 (B2,D0)", "x": 1.5, "y": 1 }, + { "label": "K13 (B2,D1)", "x": 2.5, "y": 1 }, + { "label": "K14 (B2,D2)", "x": 3.5, "y": 1 }, + { "label": "K15 (B2,D3)", "x": 4.5, "y": 1 }, + { "label": "K16 (B2,D4)", "x": 5.5, "y": 1 }, + { "label": "K17 (B2,D5)", "x": 6.5, "y": 1 }, + { "label": "K18 (B2,D6)", "x": 7.5, "y": 1 }, + { "label": "K19 (B2,D7)", "x": 8.5, "y": 1 }, + { "label": "K1A (B2,C6)", "x": 9.5, "y": 1 }, + { "label": "K1B (B2,C7)", "x": 10.5, "y": 1 }, + { "label": "K1C (B2,F7)", "x": 11.5, "y": 1 }, + { "label": "K1D (B2,F6)", "x": 12.5, "y": 1 }, + { "label": "K1E (B2,F5)", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "K1F (B2,F4)", "x": 15, "y": 1 }, + { "label": "K20 (B3,B6)", "x": 0, "y": 2, "w": 1.75 }, + { "label": "K22 (B3,D0)", "x": 1.75, "y": 2 }, + { "label": "K23 (B3,D1)", "x": 2.75, "y": 2 }, + { "label": "K24 (B3,D2)", "x": 3.75, "y": 2 }, + { "label": "K25 (B3,D3)", "x": 4.75, "y": 2 }, + { "label": "K26 (B3,D4)", "x": 5.75, "y": 2 }, + { "label": "K27 (B3,D5)", "x": 6.75, "y": 2 }, + { "label": "K28 (B3,D6)", "x": 7.75, "y": 2 }, + { "label": "K29 (B3,D7)", "x": 8.75, "y": 2 }, + { "label": "K2A (B3,C6)", "x": 9.75, "y": 2 }, + { "label": "K2B (B3,C7)", "x": 10.75, "y": 2 }, + { "label": "K2C (B3,F7)", "x": 11.75, "y": 2 }, + { "label": "K2D (B3,F6)", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "K2F (B3,F4)", "x": 15, "y": 2 }, + { "label": "K31 (B4,B7)", "x": 0, "y": 3, "w": 2.25 }, + { "label": "K32 (B4,D0)", "x": 2.25, "y": 3 }, + { "label": "K33 (B4,D1)", "x": 3.25, "y": 3 }, + { "label": "K34 (B4,D2)", "x": 4.25, "y": 3 }, + { "label": "K35 (B4,D3)", "x": 5.25, "y": 3 }, + { "label": "K36 (B4,D4)", "x": 6.25, "y": 3 }, + { "label": "K37 (B4,D5)", "x": 7.25, "y": 3 }, + { "label": "K38 (B4,D6)", "x": 8.25, "y": 3 }, + { "label": "K39 (B4,D7)", "x": 9.25, "y": 3 }, + { "label": "K3A (B4,C6)", "x": 10.25, "y": 3 }, + { "label": "K3B (B4,C7)", "x": 11.25, "y": 3 }, + { "label": "K3D (B4,F6)", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "K3E (B4,F5)", "x": 14, "y": 3 }, + { "label": "K3F (B4,F4)", "x": 15, "y": 3 }, + { "label": "K40 (B5,B6)", "x": 0, "y": 4, "w": 1.25 }, + { "label": "K41 (B5,B7)", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "K43 (B5,D1)", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K46 (B5,D4)", "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "K4A (B5,C6)", "x": 10, "y": 4 }, + { "label": "K4B (B5,C7)", "x": 11, "y": 4 }, + { "label": "K4C (B5,F7)", "x": 12, "y": 4 }, + { "label": "K4D (B5,F6)", "x": 13, "y": 4 }, + { "label": "K4E (B5,F5)", "x": 14, "y": 4 }, + { "label": "K4F (B5,F4)", "x": 15, "y": 4 } + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/keebmonkey/kbmg68/kbmg68.c b/keyboards/keebmonkey/kbmg68/kbmg68.c new file mode 100644 index 0000000000..452624d771 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/kbmg68.c @@ -0,0 +1,20 @@ +/* Copyright 2022 Your Mom Loves My Keyboard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "kbmg68.h" + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/keebmonkey/kbmg68/kbmg68.h b/keyboards/keebmonkey/kbmg68/kbmg68.h new file mode 100644 index 0000000000..a817a73d78 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/kbmg68.h @@ -0,0 +1,38 @@ +/* Copyright 2022 Your Mom Loves My Keyboard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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_65_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F }, \ + { K10, XXX, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, XXX, K2F }, \ + { XXX, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ + { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/keebmonkey/kbmg68/keymaps/default/keymap.c b/keyboards/keebmonkey/kbmg68/keymaps/default/keymap.c new file mode 100644 index 0000000000..63eb69dc35 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2022 Your Mom Loves My Keyboard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_65_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi( + RGB_TOG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + MO(2), _______, _______, _______, _______, _______, _______, _______, RGB_VAD, _______ + ), + + [2] = LAYOUT_65_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET + ), + +}; diff --git a/keyboards/keebmonkey/kbmg68/readme.md b/keyboards/keebmonkey/kbmg68/readme.md new file mode 100644 index 0000000000..59852c09a1 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/readme.md @@ -0,0 +1,27 @@ +# KBMG68 + +![KBMG68](https://cdn.shopify.com/s/files/1/0463/5980/6101/products/IMG_2062_600x.jpg?v=1636042030) + +The Keebmonkey KBMG68 should be the cheapest gasket keyboard you can ever have. Both the plate and the PCB are gasket mounted, resulting in a deep thocky sound. The shell of the kit is made of 6-layers of acrylic boards, leaving huge space for modding and continuous improvements (even though this kit already sounds perfect when it's out of the box). + +* Keyboard Maintainer: Unknown +* Hardware Supported: Unknown +* Hardware Availability: [Keebmonkey KBMG68 Double Mounted Gasket Keyboard Kit](https://www.keebmonkey.com/products/kbmg68) + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make keebmonkey/kbmg68:default + +Flashing example for this keyboard: + + make keebmonkey/kbmg68:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Reset to Bootloader + +Hold the Escape key while plugging the board in. diff --git a/keyboards/keebmonkey/kbmg68/rules.mk b/keyboards/keebmonkey/kbmg68/rules.mk new file mode 100644 index 0000000000..0adb2c9996 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = 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 = 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 + +LAYOUTS = 65_ansi From 92c3e6305bfd0870279048356c51e768e2c392a9 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Sun, 17 Jul 2022 02:38:22 +0700 Subject: [PATCH 57/69] [Keyboard] Gopolar GG86 (#15425) * Added keyboard GG86 * Rebased, resolved issue and updated code * Delete 1000Hz on config * Resolved fix * Another resolved fix * Last resolved fix * Fixed LED position --- keyboards/gopolar/gg86/config.h | 100 +++++ keyboards/gopolar/gg86/gg86.c | 79 ++++ keyboards/gopolar/gg86/gg86.h | 116 ++++++ keyboards/gopolar/gg86/info.json | 295 ++++++++++++++ .../gopolar/gg86/keymaps/bongocat/config.h | 48 +++ .../gopolar/gg86/keymaps/bongocat/keymap.c | 226 +++++++++++ .../gg86/keymaps/bongocat/oled/bongocat.c | 378 ++++++++++++++++++ .../gg86/keymaps/bongocat/oled/bongocat.h | 17 + .../gopolar/gg86/keymaps/bongocat/readme.md | 3 + .../gopolar/gg86/keymaps/bongocat/rules.mk | 4 + .../gopolar/gg86/keymaps/default/keymap.c | 325 +++++++++++++++ .../gopolar/gg86/keymaps/horrortroll/config.h | 52 +++ .../gopolar/gg86/keymaps/horrortroll/keymap.c | 88 ++++ .../gg86/keymaps/horrortroll/keymap_stuff.h | 304 ++++++++++++++ .../keymaps/horrortroll/led/cool_diagonal.c | 22 + .../keymaps/horrortroll/led/custom_gradient.c | 74 ++++ .../led/flower_blooming/flower_blooming.c | 27 ++ .../led/flower_blooming/flower_blooming.h | 20 + .../gg86/keymaps/horrortroll/led/kitt.c | 68 ++++ .../rainbow_reactive_simple.c | 25 ++ .../rainbow_reactive_simple.h | 45 +++ .../horrortroll/led/random_breath_rainbow.c | 55 +++ .../keymaps/horrortroll/oled/oled_stuff.h | 68 ++++ .../gg86/keymaps/horrortroll/readme.md | 12 + .../keymaps/horrortroll/rgb_matrix_user.inc | 17 + .../gopolar/gg86/keymaps/horrortroll/rules.mk | 3 + keyboards/gopolar/gg86/keymaps/via/keymap.c | 325 +++++++++++++++ keyboards/gopolar/gg86/keymaps/via/rules.mk | 1 + keyboards/gopolar/gg86/lib/glcdfont.c | 249 ++++++++++++ keyboards/gopolar/gg86/lib/logo.c | 60 +++ keyboards/gopolar/gg86/lib/logo.h | 17 + keyboards/gopolar/gg86/lib/wave.h | 130 ++++++ keyboards/gopolar/gg86/readme.md | 24 ++ keyboards/gopolar/gg86/rules.mk | 32 ++ 34 files changed, 3309 insertions(+) create mode 100644 keyboards/gopolar/gg86/config.h create mode 100644 keyboards/gopolar/gg86/gg86.c create mode 100644 keyboards/gopolar/gg86/gg86.h create mode 100644 keyboards/gopolar/gg86/info.json create mode 100644 keyboards/gopolar/gg86/keymaps/bongocat/config.h create mode 100644 keyboards/gopolar/gg86/keymaps/bongocat/keymap.c create mode 100644 keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.c create mode 100644 keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.h create mode 100644 keyboards/gopolar/gg86/keymaps/bongocat/readme.md create mode 100644 keyboards/gopolar/gg86/keymaps/bongocat/rules.mk create mode 100644 keyboards/gopolar/gg86/keymaps/default/keymap.c create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/config.h create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/led/cool_diagonal.c create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.c create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.h create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/led/kitt.c create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/readme.md create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/rgb_matrix_user.inc create mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/rules.mk create mode 100644 keyboards/gopolar/gg86/keymaps/via/keymap.c create mode 100644 keyboards/gopolar/gg86/keymaps/via/rules.mk create mode 100644 keyboards/gopolar/gg86/lib/glcdfont.c create mode 100644 keyboards/gopolar/gg86/lib/logo.c create mode 100644 keyboards/gopolar/gg86/lib/logo.h create mode 100644 keyboards/gopolar/gg86/lib/wave.h create mode 100644 keyboards/gopolar/gg86/readme.md create mode 100644 keyboards/gopolar/gg86/rules.mk diff --git a/keyboards/gopolar/gg86/config.h b/keyboards/gopolar/gg86/config.h new file mode 100644 index 0000000000..26643b49f7 --- /dev/null +++ b/keyboards/gopolar/gg86/config.h @@ -0,0 +1,100 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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 0x0007 +#define PRODUCT_ID 0x0007 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Gopolar +#define PRODUCT GG86 Tai-Chi + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7, D5 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C6, B6, B5, B4, D7, D6, D4, C7, E6, D2, D3 } + +/* 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 + +/* Change larger keys per scan for elite gaming */ +#define QMK_KEYS_PER_SCAN 12 + +/* Use the custom font */ +#define OLED_FONT_H "lib/glcdfont.c" + +#ifdef RGB_MATRIX_ENABLE + /* RGB Matrix config */ + #define RGB_DI_PIN E2 + #define DRIVER_LED_TOTAL 100 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define RGB_MATRIX_KEYPRESSES + + /* 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_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/gopolar/gg86/gg86.c b/keyboards/gopolar/gg86/gg86.c new file mode 100644 index 0000000000..3e790cd61e --- /dev/null +++ b/keyboards/gopolar/gg86/gg86.c @@ -0,0 +1,79 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "gg86.h" + +// OLED animation +#include "lib/logo.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, NO_LED, 74, 73, 72 }, + { 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 }, + { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38 }, + { 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, NO_LED, NO_LED, NO_LED }, + { 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, NO_LED, 10, NO_LED }, + { 0, 1, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, NO_LED, 4, 5, 6, NO_LED, 7, 8, 9 } +}, { + // Key matrix (0 -> 87) + {3 , 64}, {19 , 64}, {36 , 64}, {91 , 64}, {146, 64}, {162, 64}, {179, 64}, {198, 64}, {211, 64}, {224, 64}, + {211, 52}, {182, 52}, {170, 52}, {146, 52}, {133, 52}, {120, 52}, {107, 52}, {94 , 52}, {81 , 52}, {68 , 52}, {55 , 52}, {42 , 52}, {29 , 52}, {16 , 52}, {2 , 52}, + {2 , 41}, {23 , 41}, {36 , 41}, {49 , 41}, {62 , 41}, {75 , 41}, {88 , 41}, {101, 41}, {114, 41}, {127, 41}, {140, 41}, {153, 41}, {174, 41}, + {224, 29}, {211, 29}, {198, 29}, {179, 29}, {162, 29}, {149, 29}, {136, 29}, {123, 29}, {110, 29}, {97 , 29}, {84 , 29}, {71 , 29}, {58 , 29}, {45 , 29}, {32 , 29}, {19 , 29}, {3 , 29}, + {0 , 17}, {13 , 17}, {26 , 17}, {39 , 17}, {52 , 17}, {65 , 17}, {78 , 17}, {91 , 17}, {104, 17}, {117, 17}, {130, 17}, {143, 17}, {156, 17}, {175, 17}, {198, 17}, {211, 17}, {224, 17}, + {224, 0}, {211, 0}, {198, 0}, {182, 0}, {169, 0}, {156, 0}, {143, 0}, {123, 0}, {110, 0}, {97 , 0}, {84 , 0}, {65 , 0}, {52 , 0}, {39 , 0}, {26 , 0}, {0 , 0}, + + // Underglow (88 -> 99) + {1 , 6}, {50 , 6}, {89 , 6}, {135, 6}, {176, 6}, {198, 6}, {221, 55}, {192, 58}, {138, 59}, {96 , 61}, {42 , 59}, {7 , 60}, +}, { + // Key matrix (0 -> 87) + 1, 1, 1, 4, 1, 1, 1, 4, 4, 4, + 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, + 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + + // Underglow (88 -> 99) + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +} }; +#endif + +#ifdef OLED_ENABLE + uint16_t startup_timer; + + oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + startup_timer = timer_read(); + + return rotation; + } + + bool oled_task_kb(void) { + static bool finished_logo = false; + + if ((timer_elapsed(startup_timer) < 5000) && !finished_logo) { + render_logo(); + } else { + finished_logo = true; + + if (!oled_task_user()) { + return false; + } + } + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/gg86.h b/keyboards/gopolar/gg86/gg86.h new file mode 100644 index 0000000000..6922f8dab5 --- /dev/null +++ b/keyboards/gopolar/gg86/gg86.h @@ -0,0 +1,116 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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 + +/* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │1F │1G │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5B │5C │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, 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, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5C, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, 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, XXX, K3D, XXX, XXX, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, XXX, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, K55, XXX, XXX, XXX, XXX, K5A, K5B, K5C, XXX, K5E, K5F, K5G }, \ +} + +/* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │1F │1G │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │ │4F │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5B │5C │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + +#define LAYOUT_tkl_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, 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, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5C, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, 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, XXX, K3D, XXX, XXX, XXX }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, XXX, XXX, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, K55, XXX, XXX, XXX, XXX, K5A, K5B, K5C, XXX, K5E, K5F, K5G }, \ +} + +/* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │1F │1G │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐3D │ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │2D │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │ │4F │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5B │5C │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + +#define LAYOUT_tkl_iso_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5C, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, 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, XXX, K3D, XXX, XXX, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, XXX, XXX, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, K55, XXX, XXX, XXX, XXX, K5A, K5B, K5C, XXX, K5E, K5F, K5G }, \ +} diff --git a/keyboards/gopolar/gg86/info.json b/keyboards/gopolar/gg86/info.json new file mode 100644 index 0000000000..fbe92b93b7 --- /dev/null +++ b/keyboards/gopolar/gg86/info.json @@ -0,0 +1,295 @@ +{ + "keyboard_name": "GG86", + "url": "", + "maintainer": "Gopolar", + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\| / ISO Hash", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"Shift", "x":14, "y":4.5}, + {"label":"\u2191", "x":16.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.5}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, + {"label":"Space", "x":4, "y":5.5, "w":7}, + {"label":"Alt", "x":11, "y":5.5, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.5}, + {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5} + ] + } + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.5}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, + {"label":"Space", "x":4, "y":5.5, "w":7}, + {"label":"Alt", "x":11, "y":5.5, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.5}, + {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5} + ] + } + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"ISO Hash", "x":12.75, "y":3.5}, + {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.5}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, + {"label":"Space", "x":4, "y":5.5, "w":7}, + {"label":"Alt", "x":11, "y":5.5, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.5}, + {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/config.h b/keyboards/gopolar/gg86/keymaps/bongocat/config.h new file mode 100644 index 0000000000..7255016531 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/config.h @@ -0,0 +1,48 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Additional thing to reduce compiled size */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 +#define NO_ACTION_ONESHOT + +#ifdef RGB_MATRIX_ENABLE + /* RGB Matrix config */ + #undef RGB_MATRIX_KEYPRESSES + + /* RGB Matrix effect */ + #undef ENABLE_RGB_MATRIX_ALPHAS_MODS + #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #undef ENABLE_RGB_MATRIX_BREATHING + #undef ENABLE_RGB_MATRIX_BAND_SAT + #undef ENABLE_RGB_MATRIX_BAND_VAL + #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON + #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #undef ENABLE_RGB_MATRIX_RAINDROPS + #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #undef ENABLE_RGB_MATRIX_HUE_PENDULUM + #undef ENABLE_RGB_MATRIX_HUE_WAVE + #undef ENABLE_RGB_MATRIX_PIXEL_RAIN +#endif diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c b/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c new file mode 100644 index 0000000000..de1046c5d3 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// OLED animation +#include "oled/bongocat.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_KEYLIGHT, + RGB_MODE_UNDERGLOW, + 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│ │PSc│Scr│Pse│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bckspc│ │Hom│Scr│Pse│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │LCrl │GUI│ LAlt│ Space │ RAlt│ Fn│ RCrl│ │ ← │ ↓ │ → │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │RSt│ │ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_BASE] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUSE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, 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_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │M_T│F13│F14│F15│ │F16│Rfh│Stp│ │ │ │ │ │Est│ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN] = LAYOUT_all( + KC_SLEP, RGB_M_T, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, EEP_RST, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; + +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_KEYLIGHT: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_NONE: + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_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_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_KEYLIGHT; + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_UNDERGLOW; + } + break; + case (LED_FLAG_UNDERGLOW): { + 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; +} + +void rgb_matrix_indicators_user(void) { + 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(25, rgb.r, rgb.g, rgb.b); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(25, 0, 0, 0); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(73, 0, 0, 0); + } + } +} + +#ifdef OLED_ENABLE + bool oled_task_user(void) { + led_t led_usb_state = host_keyboard_led_state(); + + render_bongocat(); + oled_set_cursor(14, 0); // sets cursor to (column, row) using charactar spacing (4 rows on 128x32 screen, anything more will overflow back to the top) + oled_write_P(PSTR("WPM:"), false); + oled_write(get_u8_str(get_current_wpm(), '0'), false); // writes wpm on top right corner of string + oled_set_cursor(17, 2); + oled_write_P(led_usb_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); + oled_set_cursor(17, 3); + oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRL") : PSTR(" "), false); + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.c b/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.c new file mode 100644 index 0000000000..e328efd24a --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.c @@ -0,0 +1,378 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// WPM-responsive animation stuff here +#define IDLE_FRAMES 5 +#define IDLE_SPEED 10 // below this wpm value your animation will idle +// #define PREP_FRAMES 1 // uncomment if >1 +#define TAP_FRAMES 2 +#define ANIM_WPM_LOWER 20 // above this wpm value typing animation to trigger +#define ANIM_FRAME_DURATION_MAX 450 // longest animation duration in ms +#define ANIM_FRAME_DURATION_MIN 100 // shortest animation duration in ms +#define IDLE_FRAME_DURATION 300 // how long each frame lasts in ms +#define ANIM_FRAME_RATIO 2.5 // how aggressively animation speeds up with wpm +// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing +#define ANIM_SIZE 525 // number of bytes in array, minimize for adequate firmware size, max is 1024 +#define MAX(x, y) (((x) > (y)) ? (x) : (y)) // Math.max macro + +uint32_t curr_anim_duration = 0; // variable animation duration +uint32_t bongo_timer = 0; +uint32_t bongo_sleep = 0; +uint8_t current_idle_frame = 0; +// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 +uint8_t current_tap_frame = 0; + +// Code containing pixel art, contains: +// 5 idle frames, 1 prep frame, and 2 tap frames + +// To make your own pixel art: +// save a png/jpeg of an 128x32 image (resource: https://www.pixilart.com/draw ) +// follow this guide up to and including "CONVERT YOUR IMAGE" https://docs.splitkb.com/hc/en-us/articles/360013811280-How-do-I-convert-an-image-for-use-on-an-OLED-display- +// replace numbers in brackets with your own +// if you start getting errors when compiling make sure you didn't accedentally delete a bracket +void render_bongocat(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { + { + //Idle 1 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0xf8, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 2 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x9f, 0x9f, 0xff, + 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1e, 0x1e, 0x3f, 0x3d, 0x3d, 0x3e, 0x7f, 0x7f, 0x7f, 0x7f, 0xf9, 0xf9, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 3 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x9f, 0x9f, 0xff, + 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1e, 0x1e, 0x3f, 0x3d, 0x3d, 0x3e, 0x7f, 0x7f, 0x7f, 0x7f, 0xf9, 0xf9, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 4 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0x3c, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 5 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0xf8, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + static const char PROGMEM prep[][ANIM_SIZE] = { + { + //Prepare - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0xf0, 0xf8, + 0xdc, 0x36, 0x3e, 0xee, 0xfc, 0xe0, 0x9c, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7e, 0xbe, 0xbc, 0xbc, 0x7c, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x44, 0xc4, 0xc4, 0x68, 0x78, + 0x59, 0x89, 0x91, 0x91, 0xd3, 0xf3, 0xa3, 0x23, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0x81, + 0xfa, 0xff, 0xe6, 0xe7, 0xfd, 0xff, 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x13, 0x12, 0x3c, + 0x2c, 0x26, 0x27, 0x45, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x34, 0x3c, 0x2c, 0x44, 0xc8, 0xc8, + 0xe9, 0xb9, 0x11, 0x11, 0x13, 0x93, 0xe3, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + { + //Tap left - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0xf0, 0xf8, + 0xdc, 0x36, 0x3e, 0xee, 0xfc, 0xe0, 0x9c, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x44, 0xc4, 0xc4, 0x68, 0x78, + 0x59, 0x89, 0x91, 0x91, 0xd3, 0xf3, 0xa3, 0x23, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x3f, 0x1f, 0x07, 0x83, 0xc0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x13, 0x12, 0x3c, + 0x2c, 0x26, 0x27, 0x45, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x11, 0x11, 0x21, 0x23, 0x23, 0x21, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + //Tap right - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0xa0, 0xa0, 0x20, 0x20, 0x40, 0x46, 0x4f, 0x5f, 0x9f, 0x9c, 0x90, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7e, 0xbe, 0xbc, 0xbc, 0x7c, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x0f, 0x8f, 0xc7, 0xe3, 0x31, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0x81, + 0xfa, 0xff, 0xe6, 0xe7, 0xfd, 0xff, 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x34, 0x3c, 0x2c, 0x44, 0xc8, 0xc8, + 0xe9, 0xb9, 0x11, 0x11, 0x13, 0x93, 0xe3, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + }; + + // assumes 1 frame prep stage + void animation_phase(void) { + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < ANIM_WPM_LOWER) { + // oled_write_raw_P(prep[abs((PREP_FRAMES-1)-current_prep_frame)], ANIM_SIZE); // uncomment if IDLE_FRAMES >1 + oled_write_raw_P(prep[0], ANIM_SIZE); // remove if IDLE_FRAMES >1 + } + + if (get_current_wpm() >= ANIM_WPM_LOWER) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + + // variable animation duration. Don't want this value to get near zero as it'll bug out. + curr_anim_duration = MAX(ANIM_FRAME_DURATION_MIN, ANIM_FRAME_DURATION_MAX - ANIM_FRAME_RATIO * get_current_wpm()); + + if (get_current_wpm() > ANIM_WPM_LOWER) { + oled_on(); // not essential but turns on animation OLED with any alpha keypress + + if (timer_elapsed32(bongo_timer) > curr_anim_duration) { + bongo_timer = timer_read32(); + animation_phase(); + } + + bongo_sleep = timer_read32(); + } else { + if (timer_elapsed32(bongo_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(bongo_timer) > IDLE_FRAME_DURATION) { + bongo_timer = timer_read32(); + animation_phase(); + } + } + } +} diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.h b/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.h new file mode 100644 index 0000000000..a7ec3c5028 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.h @@ -0,0 +1,17 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +void render_bongocat(void); diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/readme.md b/keyboards/gopolar/gg86/keymaps/bongocat/readme.md new file mode 100644 index 0000000000..632f9c67e2 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/readme.md @@ -0,0 +1,3 @@ +# Keymap with VIA and Bongo Cat on OLED + +Keymap is default 87 qwerty, with TKL 7u-spacebar layout diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/rules.mk b/keyboards/gopolar/gg86/keymaps/bongocat/rules.mk new file mode 100644 index 0000000000..05f6cfd501 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/rules.mk @@ -0,0 +1,4 @@ +SRC += oled/bongocat.c + +VIA_ENABLE = yes +WPM_ENABLE = yes diff --git a/keyboards/gopolar/gg86/keymaps/default/keymap.c b/keyboards/gopolar/gg86/keymaps/default/keymap.c new file mode 100644 index 0000000000..070858c958 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/default/keymap.c @@ -0,0 +1,325 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// OLED animation +#include "lib/wave.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 { }; + +enum user_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_KEYLIGHT, + RGB_MODE_UNDERGLOW, + 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│ │PSc│Scr│Pse│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bckspc│ │Hom│Scr│Pse│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │LCrl │GUI│ LAlt│ Space │ RAlt│ Fn│ RCrl│ │ ← │ ↓ │ → │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │RSt│ │ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUSE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, 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_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │M_T│F13│F14│F15│ │F16│Rfh│Stp│ │ │ │ │ │Est│ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [1] = LAYOUT_all( + KC_SLEP, RGB_M_T, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, EEP_RST, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │F13│F14│F15│F16│ │Rfh│Stp│ │ │ │ │ │ │ │ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [2] = LAYOUT_all( + KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │F13│F14│F15│F16│ │Rfh│Stp│ │ │ │ │ │ │ │ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [3] = LAYOUT_all( + KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; + +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_KEYLIGHT: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_NONE: + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_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_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_KEYLIGHT; + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_UNDERGLOW; + } + break; + case (LED_FLAG_UNDERGLOW): { + 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; +} + +void rgb_matrix_indicators_user(void) { + 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(25, rgb.r, rgb.g, rgb.b); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(25, 0, 0, 0); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(73, 0, 0, 0); + } + } +} + +#ifdef OLED_ENABLE + static void render_layer_info(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("QWERTY "), false); + break; + case 1: + oled_write_P(PSTR("Function "), false); + break; + case 2: + oled_write_P(PSTR("Function "), false); + break; + case 3: + oled_write_P(PSTR("Function "), false); + break; + default: + oled_write_P(PSTR("Undefined "), false); + } + } + + static void render_layer_number(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("0"), false); + break; + case 1: + oled_write_P(PSTR("1"), false); + break; + case 2: + oled_write_P(PSTR("2"), false); + break; + case 3: + oled_write_P(PSTR("3"), false); + break; + default: + oled_write_P(PSTR("X"), false); + } + } + + bool oled_task_user(void) { + led_t led_usb_state = host_keyboard_led_state(); + + oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLK ") : PSTR("----- "), false); + oled_write_P(PSTR(" GOPOLAR "), false); + oled_write_P(led_usb_state.scroll_lock ? PSTR(" SCRLK") : PSTR(" -----"), false); + + // sleep if it has been long enough since we last got a char + if (timer_elapsed32(wave_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + oled_on(); + } + // time for the next frame? + if (timer_elapsed(wave_timer) > FRAME_TIMEOUT) { + wave_timer = timer_read(); + render_frame(); + } + + oled_set_cursor(0, 3); + render_layer_info(); + oled_write_P(PSTR("Layer: "), false); + render_layer_number(); + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/config.h b/keyboards/gopolar/gg86/keymaps/horrortroll/config.h new file mode 100644 index 0000000000..246f36bb94 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/config.h @@ -0,0 +1,52 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 +#define NO_ACTION_ONESHOT + +#ifdef RGB_MATRIX_ENABLE + /* RGB Matrix effect */ + #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #undef ENABLE_RGB_MATRIX_BAND_SAT + #undef ENABLE_RGB_MATRIX_BAND_VAL + #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #undef ENABLE_RGB_MATRIX_DUAL_BEACON + #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON + #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #undef ENABLE_RGB_MATRIX_RAINDROPS + #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #undef ENABLE_RGB_MATRIX_HUE_WAVE + #undef ENABLE_RGB_MATRIX_PIXEL_RAIN + + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #undef ENABLE_RGB_MATRIX_SPLASH + #undef ENABLE_RGB_MATRIX_SOLID_SPLASH + #undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c new file mode 100644 index 0000000000..99817cec47 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_stuff.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 │ - │ = │ Bckspc│ │Hom│Scr│Pse│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │LCrl │GUI│ LAlt│ Space │ RAlt│ Fn│ RCrl│ │ ← │ ↓ │ → │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │RSt│ │ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_BASE] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUSE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, 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_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Rst│ │MeP│VoD│VoU│Mut│ │Stp│Prv│Ply│Nxt│ │Mai│Hom│Cal│Sch│ │Rod│Mod│Tog│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │NKO│ │ │ │ │ │ │ │ │ │ │Spd│Spi│ │ │C_E│ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │1Hd│1Hi│1Sd│1Si│1Vd│1Vi│ │ │ │ │ │ │ │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │2Hd│2Hi│2Sd│2Si│2Vd│2Vi│ │ │ │ │ │ │ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │Pre│Ref│Flp│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ Fn│ │ │Hud│Vad│Hui│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN] = LAYOUT_all( + RESET, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, RGB_RMOD, RGB_MOD, RGB_TOG, + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_C_E, _______, _______, + _______, G1_HUD, G1_HUI, G1_SAD, G1_SAI, G1_VAD, G1_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, G2_HUD, G2_HUI, G2_SAD, G2_SAI, G2_VAD, G2_VAI, _______, _______, _______, _______, _______, _______, + _______, _______, G_PRE, REF_G, G_FLIP, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI + ), +}; diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h new file mode 100644 index 0000000000..ad7a3238ce --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h @@ -0,0 +1,304 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "oled/oled_stuff.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, +}; + +// For CUSTOM_GRADIENT +HSV gradient_0 = {205, 250, 255}; +HSV gradient_100 = {140, 215, 125}; +bool reflected_gradient = false; +uint8_t gp_i = 0; + +typedef struct { + HSV gradient_0; + HSV gradient_1; + bool reflected; +} CUSTOM_PRESETS; + +enum user_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_KEYLIGHT, + RGB_MODE_UNDERGLOW, + 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 { + //Custom Gradient control keycode + G1_HUI = SAFE_RANGE, //Custom gradient color 1 hue increase + G1_HUD, //Custom gradient color 1 hue decrease + G1_SAI, //Custom gradient color 1 saturation increase + G1_SAD, //Custom gradient color 1 saturation decrease + G1_VAI, //Custom gradient color 1 value increase + G1_VAD, //Custom gradient color 1 value decrease + G2_HUI, //Custom gradient color 2 hue increase + G2_HUD, //Custom gradient color 2 hue decrease + G2_SAI, //Custom gradient color 2 saturation increase + G2_SAD, //Custom gradient color 2 saturation decrease + G2_VAI, //Custom gradient color 2 value increase + G2_VAD, //Custom gradient color 2 value decrease + G_PRE, //Gradient presets + REF_G, //Toggle between linear and reflected gradient + G_FLIP, //Flip the gradient colors + + //Custom led effect keycode + RGB_C_E, //Cycle user effect +}; + +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_KEYLIGHT: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_NONE: + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + break; + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + process_record_user_oled(keycode, record); + + uint8_t color_adj_step = 5; + + CUSTOM_PRESETS gradient_presets[] = { + {{41 , 255, 255}, {233, 245, 255}, false }, + {{45 , 245, 155}, {160, 255, 80}, false }, + {{173, 245, 40}, {41 , 255, 205}, true }, + {{32 , 255, 165}, {217, 185, 70}, false }, + {{240, 255, 145}, {115, 255, 245}, true }, + {{118, 255, 255}, {242, 255, 255}, false }, + {{212, 0 , 0}, {223, 235, 165}, true }, + {{205, 250, 255}, {140, 215, 125}, false }, + }; + + uint8_t gp_length = sizeof(gradient_presets)/sizeof(gradient_presets[0]); + + switch (keycode) { + case G1_HUI: + if (record->event.pressed) { + gradient_0.h += color_adj_step; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_HUD: + if (record->event.pressed) { + gradient_0.h -= color_adj_step; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_SAI: + if (record->event.pressed) { + gradient_0.s = (gradient_0.s + color_adj_step * 2 <= 255) ? gradient_0.s + color_adj_step * 2 : 255; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_SAD: + if (record->event.pressed) { + gradient_0.s = (gradient_0.s - color_adj_step * 2 >= 0) ? gradient_0.s - color_adj_step * 2 : 0; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_VAI: + if (record->event.pressed) { + gradient_0.v = (gradient_0.v + color_adj_step * 2 <= 255) ? gradient_0.v + color_adj_step * 2 : 255; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_VAD: + if (record->event.pressed) { + gradient_0.v = (gradient_0.v - color_adj_step * 2 >= 0) ? gradient_0.v - color_adj_step * 2 : 0; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G2_HUI: + if (record->event.pressed) { + gradient_100.h += color_adj_step; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_HUD: + if (record->event.pressed) { + gradient_100.h -= color_adj_step; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_SAI: + if (record->event.pressed) { + gradient_100.s = (gradient_100.s + color_adj_step * 2 <= 255) ? gradient_100.s + color_adj_step * 2 : 255; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_SAD: + if (record->event.pressed) { + gradient_100.s = (gradient_100.s - color_adj_step * 2 >= 0) ? gradient_100.s - color_adj_step * 2 : 0; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_VAI: + if (record->event.pressed) { + gradient_100.v = (gradient_100.v + color_adj_step * 2 <= 255) ? gradient_100.v + color_adj_step * 2 : 255; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_VAD: + if (record->event.pressed) { + gradient_100.v = (gradient_100.v - color_adj_step * 2 >= 0) ? gradient_100.v - color_adj_step * 2 : 0; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G_PRE: + if (record->event.pressed) { + gp_i = (gp_i + gp_length ) % gp_length; + + gradient_0 = gradient_presets[gp_i].gradient_0; + gradient_100 = gradient_presets[gp_i].gradient_1; + reflected_gradient = gradient_presets[gp_i].reflected; + + gp_i += 1; + } + return false; + case REF_G: + if (record->event.pressed) { + reflected_gradient = !reflected_gradient; + } + return false; + case G_FLIP: + if (record->event.pressed) { + HSV temp_color = gradient_0; + gradient_0 = gradient_100; + gradient_100 = temp_color; + } + return false; + case RGB_C_E: + if (record->event.pressed) { + switch (rgb_matrix_get_mode()) { + case RGB_MATRIX_CUSTOM_CUSTOM_GRADIENT: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_COOL_DIAGONAL); + return false; + case RGB_MATRIX_CUSTOM_COOL_DIAGONAL: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_FLOWER_BLOOMING); + return false; + case RGB_MATRIX_CUSTOM_FLOWER_BLOOMING: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_RAINBOW_REACTIVE_SIMPLE); + return false; + case RGB_MATRIX_CUSTOM_RAINBOW_REACTIVE_SIMPLE: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_KITT); + return false; + case RGB_MATRIX_CUSTOM_KITT: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_RANDOM_BREATH_RAINBOW); + return false; + default: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_CUSTOM_GRADIENT); + return false; + } + } + return false; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_KEYLIGHT; + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_UNDERGLOW; + } + break; + case (LED_FLAG_UNDERGLOW): { + 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; +} + +void rgb_matrix_indicators_user(void) { + 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(25, rgb.r, rgb.g, rgb.b); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(25, 0, 0, 0); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(73, 0, 0, 0); + } + } +} diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/cool_diagonal.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/cool_diagonal.c new file mode 100644 index 0000000000..2c518a5431 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/cool_diagonal.c @@ -0,0 +1,22 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +static HSV COOL_DIAGONAL_math(HSV hsv, uint8_t i, uint8_t time) { + hsv.h = (g_led_config.point[i].x / 4) - g_led_config.point[i].y - time; + return hsv; +} + +bool COOL_DIAGONAL(effect_params_t* params) { return effect_runner_i(params, &COOL_DIAGONAL_math); } \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c new file mode 100644 index 0000000000..fcedf777eb --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c @@ -0,0 +1,74 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +extern HSV gradient_0; +extern HSV gradient_100; +extern bool reflected_gradient; + +static HSV INTERPOLATE_HSV(float step, HSV gradient_0, HSV gradient_100) { + uint8_t cw, ccw; + HSV color; + + cw = (gradient_0.h >= gradient_100.h) ? 255 + gradient_100.h - gradient_0.h : gradient_100.h - gradient_0.h; // Hue range is 0 to 255. + ccw = (gradient_0.h >= gradient_100.h) ? gradient_0.h - gradient_100.h : 255 + gradient_0.h - gradient_100.h; + + if( cw < ccw ) { // going clockwise + color.h = gradient_0.h + (uint8_t)(step * cw); + } else { // Going counter clockwise + color.h = gradient_0.h - (uint8_t)(step * ccw); + } + + color.s = gradient_0.s + step * (gradient_100.s - gradient_0.s); + + // Scale V with global RGB Matrix's V, so users can still control overall brightness with RGB_VAI & RGB_VAD0 + color.v = round((gradient_0.v + step * (gradient_100.v - gradient_0.v)) * ((float)rgb_matrix_config.hsv.v / 255)); + + return color; +} + +static HSV CUSTOM_GRADIENT_math(uint8_t led_x, uint8_t min_x, uint8_t max_x) { + float step = (float)led_x / (max_x - min_x); + float mid_gradient_pos = 0.5; + + if( reflected_gradient ) { + if( step <= mid_gradient_pos ) { + return INTERPOLATE_HSV(step * (1/mid_gradient_pos), gradient_0, gradient_100); + } else { + return INTERPOLATE_HSV((step - mid_gradient_pos) * (1/(1-mid_gradient_pos)), gradient_100, gradient_0); + } + + } else { + return INTERPOLATE_HSV(step, gradient_0, gradient_100); + } +} + +static bool CUSTOM_GRADIENT(effect_params_t* params) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + uint8_t min_x = 0; // X coordinate of the left-most LED + uint8_t max_x = 224; // X coordinate of the right-most LED + + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + + HSV hsv_orig = CUSTOM_GRADIENT_math(g_led_config.point[i].x, min_x, max_x); + RGB rgb = hsv_to_rgb(hsv_orig); + + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + + return led_max < DRIVER_LED_TOTAL; +} \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.c new file mode 100644 index 0000000000..add83149cc --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.c @@ -0,0 +1,27 @@ +/* Copyright 2022 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "led/flower_blooming/flower_blooming.h" + +static HSV FLOWER_BLOOMING_math(HSV hsv, uint8_t i, uint8_t time) { + if (g_led_config.point[i].y > k_rgb_matrix_center.y) + hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 + time; + else + hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 - time; + return hsv; +} + +bool FLOWER_BLOOMING(effect_params_t* params) { return effect_runner_bloom(params, &FLOWER_BLOOMING_math); } diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.h b/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.h new file mode 100644 index 0000000000..941dab975a --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.h @@ -0,0 +1,20 @@ +#pragma once + +typedef HSV (*flower_blooming_f)(HSV hsv, uint8_t i, uint8_t time); + +bool effect_runner_bloom(effect_params_t* params, flower_blooming_f effect_func) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 10, 1)); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + if (g_led_config.point[i].y > k_rgb_matrix_center.y) { + RGB bgr = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + rgb_matrix_set_color(i, bgr.b, bgr.g, bgr.r); + } else { + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + } + return rgb_matrix_check_finished_leds(led_max); +} diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/kitt.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/kitt.c new file mode 100644 index 0000000000..bfc32ce040 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/kitt.c @@ -0,0 +1,68 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// variable for startup animation +bool BASE_EFFECT_NOT_STARTED_YET = true; +uint8_t base_effect_startup_counter = 255; + +uint8_t led_count = 11; +uint8_t led_first = 41; + +static uint8_t time_to_led(uint8_t time, uint8_t led_behind) { + uint16_t led_time = led_count * time; + uint16_t step = ((2 * led_count + (led_time / 128)) - led_behind) % (2 * led_count); + uint8_t led; + + if (step < led_count) { + led = step; + } else { + led = led_count - 1 - (step - led_count); + } + + return led; +} + +static HSV KITT_math(HSV hsv, uint8_t i, uint8_t time) { + + // reset base effect startup + if (i == 0) { + BASE_EFFECT_NOT_STARTED_YET = true; + } + + hsv.h = 0; + hsv.s = 255; + + if (i >= led_first && i < led_first + led_count) { + uint8_t j = i - led_first; + if (j == time_to_led(time, 0)) { + hsv.v = hsv.v; + } else if (j == time_to_led(time, 1)) { + hsv.v = hsv.v/2; + } else if (j == time_to_led(time, 2)) { + hsv.v = hsv.v/4; + } else if (j == time_to_led(time, 3)) { + hsv.v = hsv.v/8; + } else { + hsv.v = 0; + } + } else { + hsv.v = 0; + } + + return hsv; +} + +bool KITT(effect_params_t* params) { return effect_runner_i(params, &KITT_math); } \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c new file mode 100644 index 0000000000..ce3fff8ec5 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c @@ -0,0 +1,25 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "led/rainbow_reactive_simple/rainbow_reactive_simple.h" + +static HSV RAINBOW_REACTIVE_SIMPLE_math(HSV hsv, uint8_t i, uint8_t time, uint16_t offset) { + hsv.h = g_led_config.point[i].x - time; + hsv.v = scale8(255 - offset, hsv.v); + return hsv; +} + +bool RAINBOW_REACTIVE_SIMPLE(effect_params_t* params) { return effect_rainbow_reactive(params, &RAINBOW_REACTIVE_SIMPLE_math); } \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h new file mode 100644 index 0000000000..5b610716e0 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h @@ -0,0 +1,45 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +typedef HSV (*rainbow_reactive_f)(HSV hsv, uint8_t i, uint8_t time, uint16_t offset); + +bool effect_rainbow_reactive(effect_params_t* params, rainbow_reactive_f effect_func) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4); + uint16_t max_tick = 65535 / rgb_matrix_config.speed; + + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + uint16_t tick = max_tick; + + // Reverse search to find most recent key hit + for (int8_t j = g_last_hit_tracker.count - 1; j >= 0; j--) { + if (g_last_hit_tracker.index[j] == i && g_last_hit_tracker.tick[j] < tick) { + tick = g_last_hit_tracker.tick[j]; + break; + } + } + + uint16_t offset = scale16by8(tick, rgb_matrix_config.speed); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time, offset)); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + + return led_max < DRIVER_LED_TOTAL; +} \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c new file mode 100644 index 0000000000..e5f399cdd3 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c @@ -0,0 +1,55 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +static uint8_t offset[DRIVER_LED_TOTAL]; + +static void doRandom_breath_rainbow(int i, effect_params_t* params) { + if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 6); + + if (rand() * 50 == 1) { + if (rand() * 2 == 1) { + offset[i]++; + } + else { + offset[i]--; + } + } + + //float val = (((float)sin8(time + offset[i]) / 256)/2.1) + .05; + HSV hsv = {0, 255, 255}; + hsv.h = scale16by8(g_rgb_timer + offset[i], rgb_matrix_config.speed / 4) + (offset[i]*2); + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); +} + +bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { + + if (!params->init) { + // Change one LED every tick, make sure speed is not 0 + doRandom_breath_rainbow(rand() % DRIVER_LED_TOTAL, params); + return false; + } + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + for (uint8_t i = led_min; i < led_max; i++) { + doRandom_breath_rainbow(i, params); + } + + return led_max < DRIVER_LED_TOTAL; +} \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h b/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h new file mode 100644 index 0000000000..d67e5a18c5 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h @@ -0,0 +1,68 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// OLED animation +#include "lib/wave.h" + +#ifdef OLED_ENABLE + static void render_layer_info(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR(" QWERTY "), false); + break; + case 1: + oled_write_P(PSTR(" Function "), false); + break; + default: + oled_write_P(PSTR(" Undefined "), false); + } + } + + static void render_layer_number(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("0"), false); + break; + case 1: + oled_write_P(PSTR("1"), false); + break; + default: + oled_write_P(PSTR("X"), false); + } + } + + bool oled_task_user(void) { + render_layer_info(); + + // sleep if it has been long enough since we last got a char + if (timer_elapsed32(wave_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + oled_on(); + } + // time for the next frame? + if (timer_elapsed(wave_timer) > FRAME_TIMEOUT) { + wave_timer = timer_read(); + render_frame(); + } + + oled_set_cursor(0, 3); + oled_write_P(PSTR(" Layer: "), false); + render_layer_number(); + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/readme.md b/keyboards/gopolar/gg86/keymaps/horrortroll/readme.md new file mode 100644 index 0000000000..363330e98f --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/readme.md @@ -0,0 +1,12 @@ +# My personal keymap with VIA and custom LED / OLED + +Keymap is default 87 qwerty, with TKL 7u-spacebar layout + +It have new LED effect: + +- Custom gradient (ported from SirTimmyTimbit code [https://github.com/SirTimmyTimbit/customizable-gradient-effect-for-drop-alt]) +- Cool diagonal (ported from pleasuretek code [https://github.com/pleasuretek/qmk_firmware]) +- Flower Blooming +- Rainbow reactive simple +- Knight Rider (ported from jumper149 code [https://github.com/jumper149/qmk_firmware/blob/jumper149/keyboards/dztech/dz65rgb/keymaps/jumper149/]) +- Random breath rainbow (based from daed code [https://github.com/daed/qmk_firmware/blob/master/keyboards/massdrop/alt/keymaps/daed] and modify by me) diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/rgb_matrix_user.inc b/keyboards/gopolar/gg86/keymaps/horrortroll/rgb_matrix_user.inc new file mode 100644 index 0000000000..7a31991027 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/rgb_matrix_user.inc @@ -0,0 +1,17 @@ +RGB_MATRIX_EFFECT(CUSTOM_GRADIENT) +RGB_MATRIX_EFFECT(COOL_DIAGONAL) +RGB_MATRIX_EFFECT(FLOWER_BLOOMING) +RGB_MATRIX_EFFECT(RAINBOW_REACTIVE_SIMPLE) +RGB_MATRIX_EFFECT(KITT) +RGB_MATRIX_EFFECT(RANDOM_BREATH_RAINBOW) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +#include "led/custom_gradient.c" +#include "led/cool_diagonal.c" +#include "led/flower_blooming/flower_blooming.c" +#include "led/rainbow_reactive_simple/rainbow_reactive_simple.c" +#include "led/kitt.c" +#include "led/random_breath_rainbow.c" + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/rules.mk b/keyboards/gopolar/gg86/keymaps/horrortroll/rules.mk new file mode 100644 index 0000000000..d475530c87 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +RGB_MATRIX_CUSTOM_USER = yes diff --git a/keyboards/gopolar/gg86/keymaps/via/keymap.c b/keyboards/gopolar/gg86/keymaps/via/keymap.c new file mode 100644 index 0000000000..070858c958 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/via/keymap.c @@ -0,0 +1,325 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// OLED animation +#include "lib/wave.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 { }; + +enum user_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_KEYLIGHT, + RGB_MODE_UNDERGLOW, + 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│ │PSc│Scr│Pse│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bckspc│ │Hom│Scr│Pse│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │LCrl │GUI│ LAlt│ Space │ RAlt│ Fn│ RCrl│ │ ← │ ↓ │ → │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │RSt│ │ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUSE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, 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_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │M_T│F13│F14│F15│ │F16│Rfh│Stp│ │ │ │ │ │Est│ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [1] = LAYOUT_all( + KC_SLEP, RGB_M_T, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, EEP_RST, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │F13│F14│F15│F16│ │Rfh│Stp│ │ │ │ │ │ │ │ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [2] = LAYOUT_all( + KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │F13│F14│F15│F16│ │Rfh│Stp│ │ │ │ │ │ │ │ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [3] = LAYOUT_all( + KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; + +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_KEYLIGHT: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_NONE: + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_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_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_KEYLIGHT; + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_UNDERGLOW; + } + break; + case (LED_FLAG_UNDERGLOW): { + 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; +} + +void rgb_matrix_indicators_user(void) { + 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(25, rgb.r, rgb.g, rgb.b); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(25, 0, 0, 0); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(73, 0, 0, 0); + } + } +} + +#ifdef OLED_ENABLE + static void render_layer_info(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("QWERTY "), false); + break; + case 1: + oled_write_P(PSTR("Function "), false); + break; + case 2: + oled_write_P(PSTR("Function "), false); + break; + case 3: + oled_write_P(PSTR("Function "), false); + break; + default: + oled_write_P(PSTR("Undefined "), false); + } + } + + static void render_layer_number(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("0"), false); + break; + case 1: + oled_write_P(PSTR("1"), false); + break; + case 2: + oled_write_P(PSTR("2"), false); + break; + case 3: + oled_write_P(PSTR("3"), false); + break; + default: + oled_write_P(PSTR("X"), false); + } + } + + bool oled_task_user(void) { + led_t led_usb_state = host_keyboard_led_state(); + + oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLK ") : PSTR("----- "), false); + oled_write_P(PSTR(" GOPOLAR "), false); + oled_write_P(led_usb_state.scroll_lock ? PSTR(" SCRLK") : PSTR(" -----"), false); + + // sleep if it has been long enough since we last got a char + if (timer_elapsed32(wave_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + oled_on(); + } + // time for the next frame? + if (timer_elapsed(wave_timer) > FRAME_TIMEOUT) { + wave_timer = timer_read(); + render_frame(); + } + + oled_set_cursor(0, 3); + render_layer_info(); + oled_write_P(PSTR("Layer: "), false); + render_layer_number(); + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/keymaps/via/rules.mk b/keyboards/gopolar/gg86/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/gopolar/gg86/lib/glcdfont.c b/keyboards/gopolar/gg86/lib/glcdfont.c new file mode 100644 index 0000000000..6b2294ea58 --- /dev/null +++ b/keyboards/gopolar/gg86/lib/glcdfont.c @@ -0,0 +1,249 @@ +/* Copyright 2021 HorrorTroll + * Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 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 = { + 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x2A, 0x1C, 0x77, 0x1C, 0x2A, 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, 0x3E, 0x04, 0x08, 0x00, + 0x08, 0x10, 0x3E, 0x10, 0x08, 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, + 0x41, 0x22, 0x14, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 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, 0x38, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x10, 0x38, 0x10, 0x10, 0x1C, 0x00, + 0x0C, 0x7A, 0x41, 0x7A, 0x0C, 0x00, + 0x18, 0x2F, 0x41, 0x2F, 0x18, 0x00, + 0x22, 0x72, 0x22, 0x27, 0x22, 0x00, + 0x08, 0x1C, 0x08, 0x08, 0x08, 0x00, + 0x08, 0x08, 0x38, 0x20, 0x28, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x2A, 0x2A, 0x2A, 0x00, 0x00, + 0x4E, 0x46, 0x4A, 0x50, 0x2F, 0x00, + 0x3E, 0x45, 0x55, 0x51, 0x3E, 0x00, + 0x48, 0x50, 0x7E, 0x50, 0x48, 0x00, + 0x3E, 0x49, 0x71, 0x49, 0x3E, 0x00, + 0x10, 0x22, 0x4F, 0x20, 0x10, 0x00, + 0x0E, 0x06, 0x0A, 0x10, 0x20, 0x00, + 0x20, 0x10, 0x0A, 0x06, 0x0E, 0x00, + 0x08, 0x08, 0x08, 0x1C, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, + 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, + 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, + 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, + 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, + 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, + 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, + 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, + 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, + 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, + 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, + 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, + 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, + 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; \ No newline at end of file diff --git a/keyboards/gopolar/gg86/lib/logo.c b/keyboards/gopolar/gg86/lib/logo.c new file mode 100644 index 0000000000..3db3acdac1 --- /dev/null +++ b/keyboards/gopolar/gg86/lib/logo.c @@ -0,0 +1,60 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#define ANIM_SIZE 525 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +void render_logo(void) { + static const char PROGMEM gopolar[][ANIM_SIZE] = { + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0x78, 0x78, + 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0xf8, 0xf8, 0xf8, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xff, 0xff, 0x0f, 0x07, 0x01, 0x00, 0xe0, 0xf0, 0xf8, + 0xf8, 0xfc, 0xfc, 0x3c, 0x1e, 0x8f, 0xc7, 0xe3, 0xe1, 0x00, 0x00, 0x07, 0x1f, 0xff, 0xff, 0xfc, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x0f, 0x03, 0x01, 0x01, 0x00, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe1, 0xe1, 0xe3, 0xe7, 0xe7, 0xe6, 0x00, 0x80, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, + 0x38, 0x70, 0xf0, 0xe0, 0x80, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x38, 0x70, + 0xf0, 0xe0, 0xc0, 0x00, 0x80, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x70, 0xf0, 0xe0, 0x80, + 0x00, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x38, 0x70, 0xf0, + 0xe0, 0xc0, 0x00, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3f, 0x7f, 0xff, 0xf8, 0x60, 0x00, 0x00, 0x07, 0x0f, 0x1f, + 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x07, 0x80, 0xc0, 0xe0, 0xf8, 0xff, 0x7f, 0x3f, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x3c, 0x38, 0x38, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x38, 0x38, 0x3c, 0x1f, 0x0f, 0x07, 0x00, 0x07, 0x1f, 0x3f, 0x38, 0x70, 0x70, 0x70, + 0x70, 0x38, 0x3f, 0x1f, 0x07, 0x00, 0xff, 0xff, 0xff, 0x00, 0x60, 0x60, 0x60, 0x60, 0x70, 0x78, + 0x3f, 0x1f, 0x0f, 0x00, 0x07, 0x1f, 0x3f, 0x38, 0x70, 0x70, 0x70, 0x70, 0x38, 0x3f, 0x1f, 0x07, + 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x0f, 0x3f, 0x7f, 0x78, 0x70, 0x60, 0x60, 0x60, 0x60, 0x00, 0x7f, + 0x7f, 0x7f, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x0f, 0x1e, 0x1e, + 0x1e, 0x1e, 0x1c, 0x1c, 0x1e, 0x1e, 0x1e, 0x1e, 0x0f, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + oled_write_raw_P(gopolar[0], ANIM_SIZE); +} diff --git a/keyboards/gopolar/gg86/lib/logo.h b/keyboards/gopolar/gg86/lib/logo.h new file mode 100644 index 0000000000..08ab8ea529 --- /dev/null +++ b/keyboards/gopolar/gg86/lib/logo.h @@ -0,0 +1,17 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +void render_logo(void); diff --git a/keyboards/gopolar/gg86/lib/wave.h b/keyboards/gopolar/gg86/lib/wave.h new file mode 100644 index 0000000000..11a3198ab1 --- /dev/null +++ b/keyboards/gopolar/gg86/lib/wave.h @@ -0,0 +1,130 @@ +/* Copyright 2021 HorrorTroll + * Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +extern const unsigned char font[] PROGMEM; + +#define ROW_1 OLED_DISPLAY_WIDTH +#define ROW_2 (OLED_DISPLAY_WIDTH * 2) + +static uint32_t wave_sleep = 0; + +#define FRAME_TIMEOUT (1000/28) + +static uint16_t wave_timer = 0; + +static uint8_t next_bar_val = 0; +static uint8_t next_log_byte[OLED_FONT_WIDTH] = {0}; +static uint8_t line1[OLED_DISPLAY_WIDTH] = {0}; +static uint8_t line2[OLED_DISPLAY_WIDTH] = {0}; + +static const uint8_t PROGMEM bar_lut[8] = {0, 16, 24, 56, 60, 124, 126, 255}; + +#define BAR_KEY_WEIGHT 128 +#define BAR_KEY_DECAY_MAX 18 + +static uint8_t bar_key_decay = BAR_KEY_DECAY_MAX; + +// clang-format off +static const char PROGMEM code_to_name[0xFF] = { +// 0 1 2 3 4 5 6 7 8 9 A B C D E F + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x + 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x + '3', '4', '5', '6', '7', '8', '9', '0', 128, 136, 132, 131, 22, '-', '=', '[', // 2x + ']','\\', '#', ';','\'', '`', ',', '.', '/', 130, 7, 7, 7, 7, 7, 7, // 3x + 7, 7, 7, 7, 7, 7, 137, 138, 139, 140, 141, 30, 143, 142, 31, 26, // 4x + 27, 25, 24, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x + ' ', ' ', ' ', ' ','\\', 135, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx + 15, 129, 133, 4, 15, 129, 133, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx +}; +// clang-format on + +void add_keylog(uint16_t keycode) { + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || + (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) { + keycode = keycode & 0xFF; + } else if (keycode > 0xFF) { + keycode = 0; + } + + if (keycode < (sizeof(code_to_name) / sizeof(char))) { + char log_char = pgm_read_byte(&code_to_name[keycode]); + + for (uint8_t j = 0; j < OLED_FONT_WIDTH; j++) { + const uint8_t glyph_line = pgm_read_byte(&font[log_char * OLED_FONT_WIDTH + j]); + next_log_byte[j] = glyph_line; + } + } +} + +bool process_record_user_oled(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + wave_sleep = timer_read32(); + add_keylog(keycode); + + uint8_t t = next_bar_val + BAR_KEY_WEIGHT; + + if (t < next_bar_val) { + next_bar_val = 255; + } else { + next_bar_val = t; + } + + bar_key_decay = BAR_KEY_DECAY_MAX; + } + + return true; +} + +void render_frame(void) { + // rotate line 1, and stick in the next byte of the next char, + // then rotate the next char buffer + memmove(line1+1, line1, OLED_DISPLAY_WIDTH - 1); + line1[0] = next_log_byte[OLED_FONT_WIDTH - 1]; + memmove(next_log_byte+1, next_log_byte, OLED_FONT_WIDTH - 1); + next_log_byte[0] = 0; + + // rotate line 2, sticking in the next display value + uint8_t disp_val = pgm_read_byte(&bar_lut[next_bar_val / 32]); + memmove(line2+1, line2, OLED_DISPLAY_WIDTH - 1); + line2[0] = disp_val; + + // draw both bars + for (uint8_t i = 0; i < OLED_DISPLAY_WIDTH; i++) { + oled_write_raw_byte(line1[i], ROW_1 + i); + oled_write_raw_byte(line2[i], ROW_2 + i); + } + + // decay the next bar value + if (next_bar_val > bar_key_decay) { + next_bar_val -= bar_key_decay; + } else { + next_bar_val = 0; + } + + if (bar_key_decay > 1) { + bar_key_decay -= 1; + } +} diff --git a/keyboards/gopolar/gg86/readme.md b/keyboards/gopolar/gg86/readme.md new file mode 100644 index 0000000000..0e655efa12 --- /dev/null +++ b/keyboards/gopolar/gg86/readme.md @@ -0,0 +1,24 @@ +# Gopolar GG86 Tai-Chi + +![GG86 Tai-Chi](https://i.imgur.com/SgXOZjt.png?2) + +A tenkeyless 86-key keyboard made by Gopolar, which controlled by an Atmega32u4 chipset. The keyboard features per-key RGB as well as underglow RGB, and an OLED screen for displaying useful information. + +* Keyboard Maintainer: Gopolar +* Hardware Supported: Atmega32u4 +* Hardware Availability: [mecha.store](https://mecha.store/collections/gopolar/products/gopolar-gg86-tenkeyless-hotswappable-barebones-keyboard) / [AliExpress](https://www.aliexpress.com/item/1005003605711613.html) + +Make example for this keyboard (after setting up your build environment): + + make gopolar/gg86:default + +Flashing example for this keyboard: + + make gopolar/gg86:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Esc key) and plug in the keyboard +* **Physical reset button**: Short press the button under Spacebar keycap to enter the Bootloader and flash the firmware +* **Keycode in layout**: Press the key mapped to RESET if it is available diff --git a/keyboards/gopolar/gg86/rules.mk b/keyboards/gopolar/gg86/rules.mk new file mode 100644 index 0000000000..0f0bdec2b6 --- /dev/null +++ b/keyboards/gopolar/gg86/rules.mk @@ -0,0 +1,32 @@ +SRC += lib/logo.c + +# 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 + +# Additional thing to reduce compiled size +LTO_ENABLE = yes +NO_USB_STARTUP_CHECK = yes + +# RGB Matrix enabled +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 + +# OLED enabled +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 # OLED display From 05f6838f3769328a1d8308ffc8d00a9327d71375 Mon Sep 17 00:00:00 2001 From: Brian Date: Sat, 16 Jul 2022 12:47:28 -0700 Subject: [PATCH 58/69] [Keymap] Added Layout Keymaps for BriianPowell (#17310) * Keymaps for Gentleman65 and Discipline * Apply suggestions from code review * Update keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c * More custom configuration for Gentleman65 * Completed Gentleman65 Layout (for now) --- .../discipline/keymaps/briianpowell/keymap.c | 112 ++++++++++++++++++ .../discipline/keymaps/briianpowell/readme.md | 15 +++ .../gentleman65/keymaps/briianpowell/keymap.c | 96 +++++++++++++++ .../keymaps/briianpowell/readme.md | 14 +++ 4 files changed, 237 insertions(+) create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/briianpowell/readme.md create mode 100644 keyboards/gentleman65/keymaps/briianpowell/keymap.c create mode 100644 keyboards/gentleman65/keymaps/briianpowell/readme.md diff --git a/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c new file mode 100644 index 0000000000..32199fd8ac --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c @@ -0,0 +1,112 @@ +/* Copyright 2019 COSEYFANNITUTTI + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define FN_ESC LT(_FUNC, KC_ESC) + +enum discipline_layers { + _QWERTY, + _WORKMAN, + _FUNC, +}; + +enum discpline_keycodes { + QWERTY = SAFE_RANGE, + WORKMAN, + FUNC, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* QWERTY: Default Layer + * ,--------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| `~| + * |---------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del| + * |---------------------------------------------------------------| + * |Fn/CL | A| S| D| F| G| H| J| K| L| ;| '| Enter|PgU| + * |---------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| + * |---------------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| + * `---------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_65_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_DEL, + FN_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Workman + * ,---------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| `~| + * |---------------------------------------------------------------| + * |Tab | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| Del| + * |---------------------------------------------------------------| + * |Fn/CL | A| S| H| T| G| Y| N| E| O| I| '| Enter| PgU| + * |---------------------------------------------------------------| + * |Shift | Z| X| M| C| V| K| L| ,| .| /|Shift |Up| PgD| + * |---------------------------------------------------------------| + * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| + * `---------------------------------------------------------------' + */ + [_WORKMAN] = LAYOUT_65_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, + KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + FN_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Function + * ,---------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | | |INS| + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | |HME| + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | |VL+|END| + * |---------------------------------------------------------------| + * | | | | PLY/PS | | | | |PRV|VL-|NXT| + * `---------------------------------------------------------------' + */ + [_FUNC] = LAYOUT_65_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______, RESET, + _______,KC_WH_U,KC_BTN1,KC_MS_U,KC_BTN2,_______,_______,AG_NORM,AG_SWAP,QWERTY,WORKMAN,_______,_______,_______, KC_INS, + _______,KC_WH_D,KC_MS_L,KC_MS_D,KC_MS_R,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, + _______,KC_WH_L,KC_BTN3,KC_WH_R,_______,_______,_______,_______,_______,_______,_______, _______,KC_VOLU, KC_PGDN, + _______,_______,_______, KC_MPLY, _______,_______,_______,KC_MPRV,KC_VOLD, KC_MNXT + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + } + return true; +} diff --git a/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/readme.md b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/readme.md new file mode 100644 index 0000000000..c97f4ced16 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/readme.md @@ -0,0 +1,15 @@ +# Discipline Keyboard Compilation + +## Features + +- Base Layers + - QWERTY + - Workman +- Mouse Keys +- Entertainment Keys + +## Building and flashing + +``` +make coseyfannitutti/discipline:briianpowell:flash +``` diff --git a/keyboards/gentleman65/keymaps/briianpowell/keymap.c b/keyboards/gentleman65/keymaps/briianpowell/keymap.c new file mode 100644 index 0000000000..bd036c8cb2 --- /dev/null +++ b/keyboards/gentleman65/keymaps/briianpowell/keymap.c @@ -0,0 +1,96 @@ +/* Copyright 2021 Omar Afzal + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define FN_ESC LT(_FUNC, KC_ESC) + +enum gentleman_layers { + _QWERTY, + _WORKMAN, + _FUNC, +}; + +enum gentleman_keycodes { + QWERTY = SAFE_RANGE, + WORKMAN, + FUNC, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TRNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + FN_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_WORKMAN] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TRNS, + KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + FN_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FUNC] = 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, QK_BOOT, + KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, AG_NORM, AG_SWAP, QWERTY, WORKMAN, KC_TRNS, KC_INS, + KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, KC_TRNS, KC_HOME, + KC_TRNS, KC_WH_L, KC_BTN3, KC_WH_R, KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_SAI, RGB_SAD, KC_TRNS, RGB_HUI, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_MPRV, RGB_HUD, KC_MNXT + ), +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case _FUNC: + // Vertical Scroll + clockwise ? tap_code(KC_WH_D) : tap_code(KC_WH_U); + return false; + break; + default: + // Horizontal Scroll + if ((get_mods() & MOD_BIT(KC_LSFT)) == MOD_BIT(KC_LSFT)) { + clockwise ? tap_code(KC_WH_D) : tap_code(KC_WH_U); + return false; + } + // Volume + clockwise ? tap_code(KC_AUDIO_VOL_UP) : tap_code(KC_AUDIO_VOL_DOWN); + break; + } + } + return false; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + } + + return true; +} + diff --git a/keyboards/gentleman65/keymaps/briianpowell/readme.md b/keyboards/gentleman65/keymaps/briianpowell/readme.md new file mode 100644 index 0000000000..b7c0fb5c5d --- /dev/null +++ b/keyboards/gentleman65/keymaps/briianpowell/readme.md @@ -0,0 +1,14 @@ +# Gentleman65 Keyboard Compilation + +## Features + +- Base Layers + - QWERTY + - Workman +- Entertainment Keys + +## Building and flashing + +``` +make gentleman65:briianpowell:flash +``` From 28f9def2195450687ffbb1ec1769798a752f21d7 Mon Sep 17 00:00:00 2001 From: Teimor Epstein Date: Sun, 17 Jul 2022 03:31:21 +0300 Subject: [PATCH 59/69] [Keymap] teimor keymap for Keychron Q1 (#16396) * teimor keymap * quickfix and cleanup * update readme * quickfix and cleanup before pr * clang * clean layout * add reset * pr fix * fix pr * Rename README.md to readme.md --- .../q1/rev_0100/keymaps/teimor/config.h | 32 +++++++ .../q1/rev_0100/keymaps/teimor/keymap.c | 95 +++++++++++++++++++ .../q1/rev_0100/keymaps/teimor/keymap_user.h | 48 ++++++++++ .../q1/rev_0100/keymaps/teimor/readme.md | 13 +++ .../rev_0100/keymaps/teimor/rgb_matrix_user.c | 91 ++++++++++++++++++ .../rev_0100/keymaps/teimor/rgb_matrix_user.h | 25 +++++ .../q1/rev_0100/keymaps/teimor/rules.mk | 14 +++ .../keymaps/teimor/tap_dance_mac_caps.c | 50 ++++++++++ .../keymaps/teimor/tap_dance_mac_caps.h | 23 +++++ .../rev_0100/keymaps/teimor/tap_dance_setup.c | 49 ++++++++++ .../rev_0100/keymaps/teimor/tap_dance_setup.h | 38 ++++++++ .../rev_0100/keymaps/teimor/tap_dance_user.c | 28 ++++++ .../keymaps/teimor/tap_dance_win_caps.c | 50 ++++++++++ .../keymaps/teimor/tap_dance_win_caps.h | 23 +++++ 14 files changed, 579 insertions(+) create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/config.h create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap_user.h create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/readme.md create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.h create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/rules.mk create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.h create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.h create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_user.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.h diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/config.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/config.h new file mode 100644 index 0000000000..c3c10a1c2b --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/config.h @@ -0,0 +1,32 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#undef TAPPING_TERM +#define TAPPING_TERM 200 + +/* RGB Matrix Configuration */ +#ifdef RGB_MATRIX_ENABLE +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# define MAC_LAYER_DEFAULT_COLOR RGB_CYAN +# define WIN_LAYER_DEFAULT_COLOR RGB_GREEN +# define CAPS_LOCK_INDICATOR_COLOR RGB_RED +# define CAPS_LOCK_INDICATOR_LIGHT_60 +# define FN_LAYER_TRANSPARENT_KEYS_OFF +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR // Sets the default mode, if none has been set +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set +#endif diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap.c new file mode 100644 index 0000000000..366bf02eba --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap.c @@ -0,0 +1,95 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 + +// clang-format off + +enum custom_keycodes { + KC_MISSION_CONTROL = USER00, + KC_LAUNCHPAD, +}; + +#define KC_MCTL KC_MISSION_CONTROL +#define KC_LPAD KC_LAUNCHPAD +#define TG_NKRO MAGIC_TOGGLE_NKRO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, + 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_END, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_LGMAC, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_MACFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_82( + _______, 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_MACPS, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + KC_CAPS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, KC_LMAC, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, + 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_END, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_LGWIN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WINFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_82( + _______, 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_PSCR, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + KC_CAPS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +// clang-format on + +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/q1/rev_0100/keymaps/teimor/keymap_user.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap_user.h new file mode 100644 index 0000000000..57ac5258c2 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap_user.h @@ -0,0 +1,48 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +// clang-format on + +// Tap dance enums +enum { + MAC_CAPS_LANGUAGE_CHANGE, + WIN_CAPS_LANGUAGE_CHANGE, +}; + +#ifdef TAP_DANCE_ENABLE +# define KC_LGMAC TD(MAC_CAPS_LANGUAGE_CHANGE) +# define KC_LGWIN TD(WIN_CAPS_LANGUAGE_CHANGE) +#else +# define KC_LGMAC KC_CAPS +# define KC_LGWIN KC_CAPS +#endif +#define KC_MACFN MO(MAC_FN) +#define KC_WINFN MO(WIN_FN) +#define KC_LMAC C(G(KC_Q)) +#define KC_MACPS G(S(KC_5)) +#define KC_TASK G(KC_TAB) +#define KC_FLXP G(KC_E) diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/readme.md b/keyboards/keychron/q1/rev_0100/keymaps/teimor/readme.md new file mode 100644 index 0000000000..9aa16f9a89 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/readme.md @@ -0,0 +1,13 @@ +# teimor's Keychron Q1 keymap + +- Via Enabled. +- Tap dance enabled. +- 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. +- The RGB lighting for keys that are not assigned turns off when the Fn layer is active +- 60% layout turns red to indicate when Caps Lock is on. +- Windows and macOS: A single tap will quickly change the language, and holding will trigger Caps Lock. (Using Tap Dance) +- RGB Matrix based on layout - macOS base layout will turn on cyan color, Windows base layout will turn on green color. +- `fn + N` will toggle NKRO, useful when using the keyboard on freebsd. +- `fn + L` on macOS will lock the system. +- `fn + del` will trigger screenshot on macOS and Windows. diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c new file mode 100644 index 0000000000..77f1c1011b --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c @@ -0,0 +1,91 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 | default_layer_state); + switch (current_layer) { + case MAC_BASE: + case WIN_BASE: +#if defined CAPS_LOCK_INDICATOR_COLOR && defined MAC_LAYER_DEFAULT_COLOR && defined WIN_LAYER_DEFAULT_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); + } else if (current_layer == MAC_BASE) + rgb_matrix_set_color_all(MAC_LAYER_DEFAULT_COLOR); + else if (current_layer == WIN_BASE) + rgb_matrix_set_color_all(WIN_LAYER_DEFAULT_COLOR); +#endif + break; + case MAC_FN: + case WIN_FN: +#if defined MAC_LAYER_DEFAULT_COLOR && defined WIN_LAYER_DEFAULT_COLOR + if (current_layer == MAC_FN) { + rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_not_transparent, MAC_LAYER_DEFAULT_COLOR); + } else if (current_layer == WIN_FN) { + rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_not_transparent, WIN_LAYER_DEFAULT_COLOR); + } +#endif +#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); + } +#if defined MAC_LAYER_DEFAULT_COLOR && defined WIN_LAYER_DEFAULT_COLOR + else { + if (layer == MAC_BASE) + rgb_matrix_set_color(i, MAC_LAYER_DEFAULT_COLOR); + else if (layer == WIN_BASE) + rgb_matrix_set_color(i, WIN_LAYER_DEFAULT_COLOR); + } +#endif + } +} + +bool is_caps_lock_indicator(uint16_t keycode) { + bool indicator = keycode == KC_CAPS || keycode == KC_LGMAC || keycode == KC_LGWIN; +#ifdef CAPS_LOCK_INDICATOR_LIGHT_60 + return (KC_A <= keycode && keycode <= KC_CAPS) || (KC_LEFT_CTRL <= keycode && keycode <= KC_RIGHT_GUI) || keycode == KC_MACFN || keycode == KC_WINFN || indicator; +#else + return indicator; +#endif +} + +bool is_transparent(uint16_t keycode) { return keycode == KC_TRNS; } +bool is_not_transparent(uint16_t keycode) { return keycode != KC_TRNS; } diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.h new file mode 100644 index 0000000000..5b53b5b8ec --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.h @@ -0,0 +1,25 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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); +bool is_not_transparent(uint16_t keycode); diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/rules.mk b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rules.mk new file mode 100644 index 0000000000..bafb40484b --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rules.mk @@ -0,0 +1,14 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no +TAP_DANCE_ENABLE = yes + +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + SRC += rgb_matrix_user.c +endif + +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + SRC += tap_dance_user.c + SRC += tap_dance_setup.c + SRC += tap_dance_mac_caps.c + SRC += tap_dance_win_caps.c +endif diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.c new file mode 100644 index 0000000000..d979820923 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.c @@ -0,0 +1,50 @@ +/* Copyright 2021 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* macOS CapsLock language change */ +#include "tap_dance_mac_caps.h" + +static td_tap_t mac_caps_language_tap_state = {.is_press_action = true, .state = TD_NONE}; + +void mac_caps_language_finished(qk_tap_dance_state_t *state, void *user_data) { + mac_caps_language_tap_state.state = current_dance(state); + switch (mac_caps_language_tap_state.state) { + case TD_SINGLE_TAP: + register_code(KC_LCTL); + register_code(KC_SPACE); + break; + case TD_SINGLE_HOLD: + register_code(KC_CAPS_LOCK); + break; + default: + break; + } +} + +void mac_caps_language_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (mac_caps_language_tap_state.state) { + case TD_SINGLE_TAP: + unregister_code(KC_SPACE); + unregister_code(KC_LCTL); + break; + case TD_SINGLE_HOLD: + unregister_code(KC_CAPS_LOCK); + break; + default: + break; + } + mac_caps_language_tap_state.state = TD_NONE; +} diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.h new file mode 100644 index 0000000000..a5f07a58a1 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.h @@ -0,0 +1,23 @@ +/* Copyright 2021 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* macOS CapsLock language change */ +#pragma once + +#include "tap_dance_setup.h" + +void mac_caps_language_finished(qk_tap_dance_state_t *state, void *user_data); +void mac_caps_language_reset(qk_tap_dance_state_t *state, void *user_data); diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.c new file mode 100644 index 0000000000..6d879419bc --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.c @@ -0,0 +1,49 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "tap_dance_setup.h" + +td_state_t current_dance(qk_tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) return TD_SINGLE_TAP; + /* Key has not been interrupted, but the key is still held. Means you w ant to send a 'HOLD'. */ + else + return TD_SINGLE_HOLD; + } else if (state->count == 2) { + /* TD_DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap + action when hitting 'pp'. Suggested use case for this return value is when you want to send two + keystrokes of the key, and not the 'double tap' action/macro. */ + if (state->interrupted) + return TD_DOUBLE_SINGLE_TAP; + else if (state->pressed) + return TD_DOUBLE_HOLD; + else + return TD_DOUBLE_TAP; + } + + /* Assumes no one is trying to type the same letter three times (at least not quickly). + If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add + an exception here to return a 'TD_TRIPLE_SINGLE_TAP', and define that enum just like 'TD_DOUBLE_SINGLE_TAP' */ + if (state->count == 3) { + if (state->interrupted) + return TD_TRIPLE_SINGLE_TAP; + else if (state->pressed) + return TD_TRIPLE_HOLD; + else + return TD_TRIPLE_TAP; + + } else + return TD_UNKNOWN; +} diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.h new file mode 100644 index 0000000000..05160c77f5 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.h @@ -0,0 +1,38 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include QMK_KEYBOARD_H + +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP, + TD_DOUBLE_HOLD, + TD_DOUBLE_SINGLE_TAP, // Send two single taps + TD_TRIPLE_TAP, + TD_TRIPLE_HOLD, + TD_TRIPLE_SINGLE_TAP // Send three single tap +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +td_state_t current_dance(qk_tap_dance_state_t *state); diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_user.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_user.c new file mode 100644 index 0000000000..1e9542d5ee --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_user.c @@ -0,0 +1,28 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_user.h" +#include "tap_dance_mac_caps.h" +#include "tap_dance_win_caps.h" + +// clang-format off + +qk_tap_dance_action_t tap_dance_actions[] = { + [MAC_CAPS_LANGUAGE_CHANGE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, mac_caps_language_finished, mac_caps_language_reset), + [WIN_CAPS_LANGUAGE_CHANGE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, win_caps_language_finished, win_caps_language_reset) +}; + +// clang-format on diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.c new file mode 100644 index 0000000000..fea72c5663 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.c @@ -0,0 +1,50 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* Windows CapsLock language change */ +#include "tap_dance_win_caps.h" + +static td_tap_t win_caps_language_tap_state = {.is_press_action = true, .state = TD_NONE}; + +void win_caps_language_finished(qk_tap_dance_state_t *state, void *user_data) { + win_caps_language_tap_state.state = current_dance(state); + switch (win_caps_language_tap_state.state) { + case TD_SINGLE_TAP: + register_code(KC_LGUI); + register_code(KC_SPACE); + break; + case TD_SINGLE_HOLD: + register_code(KC_CAPS_LOCK); + break; + default: + break; + } +} + +void win_caps_language_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (win_caps_language_tap_state.state) { + case TD_SINGLE_TAP: + unregister_code(KC_SPACE); + unregister_code(KC_LGUI); + break; + case TD_SINGLE_HOLD: + unregister_code(KC_CAPS_LOCK); + break; + default: + break; + } + win_caps_language_tap_state.state = TD_NONE; +} diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.h new file mode 100644 index 0000000000..34b734ec89 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.h @@ -0,0 +1,23 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* Windows CapsLock language change */ +#pragma once + +#include "tap_dance_setup.h" + +void win_caps_language_finished(qk_tap_dance_state_t *state, void *user_data); +void win_caps_language_reset(qk_tap_dance_state_t *state, void *user_data); From 4e5cc3c2babcd1021a110499942478b71a14eab6 Mon Sep 17 00:00:00 2001 From: Jens-Petter Sandvik Date: Sun, 17 Jul 2022 09:17:22 +0200 Subject: [PATCH 60/69] Planck swap hand matrix for rev6, fixing issue #17388 (#17389) * Add correct hand_swap_config matrix for planck_rev6 and planck_rev6_drop * Make sure indentations are consistent * Make the rev6 hand_swap_config matrix the default, also correct for ez. * Move hand_swap_config matrix from planck.c to revision subdirectories --- keyboards/planck/ez/ez.c | 19 +++++++++++++++++++ keyboards/planck/light/light.c | 13 +++++++++++++ keyboards/planck/planck.c | 13 ------------- keyboards/planck/rev1/rev1.c | 15 +++++++++++++++ keyboards/planck/rev2/rev2.c | 15 +++++++++++++++ keyboards/planck/rev3/rev3.c | 15 +++++++++++++++ keyboards/planck/rev4/rev4.c | 15 +++++++++++++++ keyboards/planck/rev5/rev5.c | 15 +++++++++++++++ keyboards/planck/rev6/rev6.c | 19 +++++++++++++++++++ keyboards/planck/rev6_drop/rev6_drop.c | 19 +++++++++++++++++++ keyboards/planck/thk/thk.c | 14 ++++++++++++++ 11 files changed, 159 insertions(+), 13 deletions(-) create mode 100644 keyboards/planck/rev1/rev1.c create mode 100644 keyboards/planck/rev2/rev2.c create mode 100644 keyboards/planck/rev3/rev3.c create mode 100644 keyboards/planck/rev4/rev4.c create mode 100644 keyboards/planck/rev5/rev5.c diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c index 98ec13085f..2dcf2f63b3 100644 --- a/keyboards/planck/ez/ez.c +++ b/keyboards/planck/ez/ez.c @@ -330,3 +330,22 @@ bool music_mask_kb(uint16_t keycode) { } } #endif + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}}, + {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, + {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, + {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, + + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{5, 7}, {4, 7}, {3, 7}, {2, 7}, {1, 7}, {0, 7}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c index 1967d318d4..5a7c656f1a 100644 --- a/keyboards/planck/light/light.c +++ b/keyboards/planck/light/light.c @@ -127,3 +127,16 @@ void suspend_wakeup_init_kb(void) suspend_wakeup_init_user(); } +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c index 6202da5250..20db22055c 100644 --- a/keyboards/planck/planck.c +++ b/keyboards/planck/planck.c @@ -1,18 +1,5 @@ #include "planck.h" -#ifdef SWAP_HANDS_ENABLE -__attribute__ ((weak)) -const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { - {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, - {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, - {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, - {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, -}; -# ifdef ENCODER_MAP_ENABLE -const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; -# endif -#endif - __attribute__ ((weak)) void matrix_init_kb(void) { // Turn status LED on, with the exception of THK diff --git a/keyboards/planck/rev1/rev1.c b/keyboards/planck/rev1/rev1.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev1/rev1.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev2/rev2.c b/keyboards/planck/rev2/rev2.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev2/rev2.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev3/rev3.c b/keyboards/planck/rev3/rev3.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev3/rev3.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev4/rev4.c b/keyboards/planck/rev4/rev4.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev4/rev4.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev5/rev5.c b/keyboards/planck/rev5/rev5.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev5/rev5.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev6/rev6.c b/keyboards/planck/rev6/rev6.c index da6da11004..59a6b7e279 100644 --- a/keyboards/planck/rev6/rev6.c +++ b/keyboards/planck/rev6/rev6.c @@ -41,3 +41,22 @@ led_config_t g_led_config = { { // 7 8 1 2 #endif + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}}, + {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, + {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, + {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, + + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{5, 7}, {4, 7}, {3, 7}, {2, 7}, {1, 7}, {0, 7}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev6_drop/rev6_drop.c b/keyboards/planck/rev6_drop/rev6_drop.c index 4c41af3806..e5d8ad9901 100644 --- a/keyboards/planck/rev6_drop/rev6_drop.c +++ b/keyboards/planck/rev6_drop/rev6_drop.c @@ -42,3 +42,22 @@ led_config_t g_led_config = { { // 7 8 1 2 #endif + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}}, + {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, + {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, + {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, + + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{5, 7}, {4, 7}, {3, 7}, {2, 7}, {1, 7}, {0, 7}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/thk/thk.c b/keyboards/planck/thk/thk.c index e9912fcbb3..bd5e1a0342 100644 --- a/keyboards/planck/thk/thk.c +++ b/keyboards/planck/thk/thk.c @@ -16,3 +16,17 @@ */ #include "thk.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif From 37cd5ad810ac297a8cf1a66bd0f7f51b3606617c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 17 Jul 2022 13:02:56 +0100 Subject: [PATCH 61/69] Remove full bootmagic config (#17701) --- keyboards/converter/m0110_usb/config.h | 3 --- keyboards/handwired/minorca/config.h | 6 ------ keyboards/handwired/promethium/keymaps/default/config.h | 6 ------ keyboards/momoka_ergo/config.h | 7 +------ 4 files changed, 1 insertion(+), 21 deletions(-) diff --git a/keyboards/converter/m0110_usb/config.h b/keyboards/converter/m0110_usb/config.h index f980217b81..c612327ecf 100644 --- a/keyboards/converter/m0110_usb/config.h +++ b/keyboards/converter/m0110_usb/config.h @@ -42,9 +42,6 @@ Ported to QMK by Techsock get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LCTL)) \ ) -/* boot magic key */ -#define BOOTMAGIC_KEY_SALT KC_M - /* ports */ #define M0110_CLOCK_PORT PORTD #define M0110_CLOCK_PIN PIND diff --git a/keyboards/handwired/minorca/config.h b/keyboards/handwired/minorca/config.h index e987ba67f0..77b624c6ff 100644 --- a/keyboards/handwired/minorca/config.h +++ b/keyboards/handwired/minorca/config.h @@ -67,9 +67,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -/* bootmagic salt key */ -#define BOOTMAGIC_KEY_SALT KC_ESC - -/* skip bootmagic and eeconfig */ -#define BOOTMAGIC_KEY_SKIP KC_SPACE diff --git a/keyboards/handwired/promethium/keymaps/default/config.h b/keyboards/handwired/promethium/keymaps/default/config.h index 0630fd43e3..1e5e8906ed 100644 --- a/keyboards/handwired/promethium/keymaps/default/config.h +++ b/keyboards/handwired/promethium/keymaps/default/config.h @@ -2,12 +2,6 @@ #define PRIYADI_PROMETHIUM -/* bootmagic salt key */ -#define BOOTMAGIC_KEY_SALT KC_ESC - -/* skip bootmagic and eeconfig */ -#define BOOTMAGIC_KEY_SKIP KC_SPACE - #define RGBSPS_ENABLE #define RGBSPS_DEMO_ENABLE diff --git a/keyboards/momoka_ergo/config.h b/keyboards/momoka_ergo/config.h index e8fe01f504..08c92e9899 100644 --- a/keyboards/momoka_ergo/config.h +++ b/keyboards/momoka_ergo/config.h @@ -116,12 +116,7 @@ along with this program. If not, see . /* Bootmagic Lite key configuration */ //#define BOOTMAGIC_LITE_ROW 0 //#define BOOTMAGIC_LITE_COLUMN 0 -#define BOOTMAGIC_KEY_SALT KC_RSFT||KC_LSFT -#define BOOTMAGIC_KEY_SKIP KC_ESC -#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_NO -#define OOTMAGIC_KEY_BOOTLOADER KC_RCTL||KC_LCTL -#define BOOTMAGIC_KEY_EE_HANDS_LEFT KC_T -#define BOOTMAGIC_KEY_EE_HANDS_RIGHT KC_Y + #define USE_SERIAL #define SPLIT_USB_DETECT #define EE_HANDS From 6025df79b3065c729d0807ad1abe655b896a38e2 Mon Sep 17 00:00:00 2001 From: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Sun, 17 Jul 2022 23:24:28 +0700 Subject: [PATCH 62/69] [Keyboard] Add Zed60 PCB (#17304) * add zed60 * update readme.md * Delete chconf.h * update readme.md * Update keyboards/mechlovin/zed60/rules.mk * Update keyboards/mechlovin/zed60/keymaps/via/keymap.c * Update keyboards/mechlovin/zed60/keymaps/default/keymap.c * Update keyboards/mechlovin/zed60/keymaps/default/keymap.c * Update keyboards/mechlovin/zed60/keymaps/via/keymap.c * Update keyboards/mechlovin/zed60/keymaps/via/keymap.c * Update keyboards/mechlovin/zed60/keymaps/via/keymap.c * Update keyboards/mechlovin/zed60/config.h * Update keyboards/mechlovin/zed60/config.h * Update keyboards/mechlovin/zed60/info.json * Update keyboards/mechlovin/zed60/readme.md * Update keyboards/mechlovin/zed60/info.json * Update keyboards/mechlovin/zed60/zed60.h --- keyboards/mechlovin/zed60/config.h | 86 ++++++++++ keyboards/mechlovin/zed60/halconf.h | 22 +++ keyboards/mechlovin/zed60/info.json | 150 ++++++++++++++++++ .../mechlovin/zed60/keymaps/default/keymap.c | 36 +++++ .../mechlovin/zed60/keymaps/default/readme.md | 1 + .../mechlovin/zed60/keymaps/via/keymap.c | 50 ++++++ .../mechlovin/zed60/keymaps/via/readme.md | 1 + .../mechlovin/zed60/keymaps/via/rules.mk | 1 + keyboards/mechlovin/zed60/mcuconf.h | 23 +++ keyboards/mechlovin/zed60/readme.md | 27 ++++ keyboards/mechlovin/zed60/rules.mk | 20 +++ keyboards/mechlovin/zed60/zed60.c | 17 ++ keyboards/mechlovin/zed60/zed60.h | 66 ++++++++ 13 files changed, 500 insertions(+) create mode 100644 keyboards/mechlovin/zed60/config.h create mode 100644 keyboards/mechlovin/zed60/halconf.h create mode 100644 keyboards/mechlovin/zed60/info.json create mode 100644 keyboards/mechlovin/zed60/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/zed60/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/zed60/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/zed60/keymaps/via/readme.md create mode 100644 keyboards/mechlovin/zed60/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/zed60/mcuconf.h create mode 100644 keyboards/mechlovin/zed60/readme.md create mode 100644 keyboards/mechlovin/zed60/rules.mk create mode 100644 keyboards/mechlovin/zed60/zed60.c create mode 100644 keyboards/mechlovin/zed60/zed60.h diff --git a/keyboards/mechlovin/zed60/config.h b/keyboards/mechlovin/zed60/config.h new file mode 100644 index 0000000000..f2875239e4 --- /dev/null +++ b/keyboards/mechlovin/zed60/config.h @@ -0,0 +1,86 @@ +/* +Copyright 2022 Mechlovin' + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D4C +#define PRODUCT_ID 0x0601 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Mechlovin Studio +#define PRODUCT Zed60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B10, B2, B1, B0, A2 } +#define MATRIX_COL_PINS { A10, A3, A9, A8, B15, B14, B13, B12, B5, B4, B3, A15, B7, B6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define LED_CAPS_LOCK_PIN A4 + +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN A7 +#define RGBLED_NUM 22 +#define RGBLIGHT_LIMIT_VAL 255 + +#define WS2812_SPI SPID1 // default: SPID1 +#define WS2812_SPI_MOSI_PAL_MODE 5 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_EFFECT_KNIGHT +# define RGBLIGHT_EFFECT_CHRISTMAS +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLIGHT_EFFECT_RGB_TEST +# define RGBLIGHT_EFFECT_ALTERNATING +/*== 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 diff --git a/keyboards/mechlovin/zed60/halconf.h b/keyboards/mechlovin/zed60/halconf.h new file mode 100644 index 0000000000..ccf7447285 --- /dev/null +++ b/keyboards/mechlovin/zed60/halconf.h @@ -0,0 +1,22 @@ +/* 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 . + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/mechlovin/zed60/info.json b/keyboards/mechlovin/zed60/info.json new file mode 100644 index 0000000000..1eae9b3144 --- /dev/null +++ b/keyboards/mechlovin/zed60/info.json @@ -0,0 +1,150 @@ +{ + "keyboard_name": "Zed60", + "url": "", + "maintainer": "Mechlovin' Studio", + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" + }, + "layouts": { + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 2.75}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/mechlovin/zed60/keymaps/default/keymap.c b/keyboards/mechlovin/zed60/keymaps/default/keymap.c new file mode 100644 index 0000000000..d71ba8685e --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 Mechlovin' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define LT1_CAP LT(1, KC_CAPS) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_split_bs_rshift( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + LT1_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PENT, + _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/mechlovin/zed60/keymaps/default/readme.md b/keyboards/mechlovin/zed60/keymaps/default/readme.md new file mode 100644 index 0000000000..c7d59d9829 --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Zed60 diff --git a/keyboards/mechlovin/zed60/keymaps/via/keymap.c b/keyboards/mechlovin/zed60/keymaps/via/keymap.c new file mode 100644 index 0000000000..8b3096d780 --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/via/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2022 Mechlovin' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define LT1_CAP LT(1, KC_CAPS) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_split_bs_rshift( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + LT1_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PENT, + _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/mechlovin/zed60/keymaps/via/readme.md b/keyboards/mechlovin/zed60/keymaps/via/readme.md new file mode 100644 index 0000000000..b05c87e476 --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for Zed60 diff --git a/keyboards/mechlovin/zed60/keymaps/via/rules.mk b/keyboards/mechlovin/zed60/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mechlovin/zed60/mcuconf.h b/keyboards/mechlovin/zed60/mcuconf.h new file mode 100644 index 0000000000..0a9c3ca2c5 --- /dev/null +++ b/keyboards/mechlovin/zed60/mcuconf.h @@ -0,0 +1,23 @@ +/* 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 . + */ + +#pragma once + +#include_next + + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/mechlovin/zed60/readme.md b/keyboards/mechlovin/zed60/readme.md new file mode 100644 index 0000000000..3cb1bb810e --- /dev/null +++ b/keyboards/mechlovin/zed60/readme.md @@ -0,0 +1,27 @@ +# zed60 + +![zed60](https://i.imgur.com/KyTpfmMl.png) + +Zed60 PCB, 60% keyboard PCB. +* Keyboard Maintainer: [Mechlovin'](https://mechlovin.studio) +* Hardware Supported: Kay60, APM32F103 +* Hardware Availability: [Mechlovin'](https://mechlovin.studio) + +Make example for this keyboard (after setting up your build environment): + + make mechlovin/zed60:default + +Flashing example for this keyboard: + + make mechlovin/zed60:default:flash + +## Bootloader + +Enter the bootloader in 4 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 +* **Bootloader**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/mechlovin/zed60/rules.mk b/keyboards/mechlovin/zed60/rules.mk new file mode 100644 index 0000000000..d90d20b776 --- /dev/null +++ b/keyboards/mechlovin/zed60/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino + + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +WS2812_DRIVER = spi diff --git a/keyboards/mechlovin/zed60/zed60.c b/keyboards/mechlovin/zed60/zed60.c new file mode 100644 index 0000000000..fb0c44ec3d --- /dev/null +++ b/keyboards/mechlovin/zed60/zed60.c @@ -0,0 +1,17 @@ +/* Copyright 2022 Mechlovin' Studio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "zed60.h" diff --git a/keyboards/mechlovin/zed60/zed60.h b/keyboards/mechlovin/zed60/zed60.h new file mode 100644 index 0000000000..36ffa18330 --- /dev/null +++ b/keyboards/mechlovin/zed60/zed60.h @@ -0,0 +1,66 @@ +/* Copyright 2022 Mechlovin' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" +#define XXX KC_NO + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └───────┘ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌──────────┐ + │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3C │ 2.75u RShift + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘ + * │40 │41 │42 │46 │4A │4B │4C │4D │ Standard + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ + +#define LAYOUT_60_ansi_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }, \ +} + +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }, \ +} + From 747b33cb81ac2397419beac9653f9ce697a30b7b Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 Jul 2022 09:35:09 -0700 Subject: [PATCH 63/69] [Keyboard] Adding chocV keyboard (#15921) * Adding chocV keyboard * Fix checklist issues / community layout support * Remove template cruft from readme * Fix image url in readme * Fix image url in readme to raw github content * Change readme example to use default Keymap * Remove vestigal config * More informative keymap readme * Config.h swapsies * Remove deprecated features * Conform / Modernize Rules * Conform / Modernize Rules * Clean up spacing * Update keyboards/chocv/readme.md Move build docs links to end :+1: --- keyboards/chocv/chocv.c | 17 +++++++ keyboards/chocv/chocv.h | 43 ++++++++++++++++++ keyboards/chocv/config.h | 43 ++++++++++++++++++ keyboards/chocv/info.json | 54 +++++++++++++++++++++++ keyboards/chocv/keymaps/default/keymap.c | 30 +++++++++++++ keyboards/chocv/keymaps/default/readme.md | 24 ++++++++++ keyboards/chocv/readme.md | 26 +++++++++++ keyboards/chocv/rules.mk | 20 +++++++++ 8 files changed, 257 insertions(+) create mode 100644 keyboards/chocv/chocv.c create mode 100644 keyboards/chocv/chocv.h create mode 100644 keyboards/chocv/config.h create mode 100644 keyboards/chocv/info.json create mode 100644 keyboards/chocv/keymaps/default/keymap.c create mode 100644 keyboards/chocv/keymaps/default/readme.md create mode 100644 keyboards/chocv/readme.md create mode 100644 keyboards/chocv/rules.mk diff --git a/keyboards/chocv/chocv.c b/keyboards/chocv/chocv.c new file mode 100644 index 0000000000..c79f8a1b75 --- /dev/null +++ b/keyboards/chocv/chocv.c @@ -0,0 +1,17 @@ +/* Copyright 2021 BrickBots Labs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "chocv.h" diff --git a/keyboards/chocv/chocv.h b/keyboards/chocv/chocv.h new file mode 100644 index 0000000000..2691dfcb83 --- /dev/null +++ b/keyboards/chocv/chocv.h @@ -0,0 +1,43 @@ +/* Copyright 2021 BrickBots Labs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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_split_3x5_3( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29,\ + k30, k31, k32, k33, k34, k35 \ + ) \ + { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09}, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19}, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29}, \ + { KC_NO, KC_NO, k30, k31, k32, k33, k34, k35, KC_NO, KC_NO} \ + } + diff --git a/keyboards/chocv/config.h b/keyboards/chocv/config.h new file mode 100644 index 0000000000..c35e1afc98 --- /dev/null +++ b/keyboards/chocv/config.h @@ -0,0 +1,43 @@ +/* Copyright 2021 BrickBots Labs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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 0xBBB0 + #define PRODUCT_ID 0x0002 + #define DEVICE_VER 0x0001 + #define MANUFACTURER BrickBots Labs + #define PRODUCT chocV + + /* key matrix size */ + #define MATRIX_ROWS 4 + #define MATRIX_COLS 10 + + + #define MATRIX_ROW_PINS { F4, F5, D1, D0 } + #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, C6, D7, E6, B4, B5} + #define UNUSED_PINS + + /* COL2ROW, ROW2COL*/ + #define DIODE_DIRECTION COL2ROW + + + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ + #define DEBOUNCE 5 + diff --git a/keyboards/chocv/info.json b/keyboards/chocv/info.json new file mode 100644 index 0000000000..fe5a250291 --- /dev/null +++ b/keyboards/chocv/info.json @@ -0,0 +1,54 @@ +{ + "keyboard_name": "chocV", + "url": "https://github.com/brickbots/chocV", + "maintainer": "Brickbots", + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"label":"Q", "x":0, "y":0.3}, + {"label":"W", "x":1, "y":0.1}, + {"label":"E", "x":2, "y":0}, + {"label":"R", "x":3, "y":0.1}, + {"label":"T", "x":4, "y":0.2}, + + {"label":"Y", "x":8, "y":0.2}, + {"label":"U", "x":9, "y":0.1}, + {"label":"I", "x":10, "y":0}, + {"label":"O", "x":11, "y":0.1}, + {"label":"P", "x":12, "y":0.3}, + + {"label":"A", "x":0, "y":1.3}, + {"label":"S", "x":1, "y":1.1}, + {"label":"D", "x":2, "y":1}, + {"label":"F", "x":3, "y":1.1}, + {"label":"G", "x":4, "y":1.2}, + + {"label":"H", "x":8, "y":1.2}, + {"label":"J", "x":9, "y":1.1}, + {"label":"K", "x":10, "y":1}, + {"label":"L", "x":11, "y":1.1}, + {"label":";", "x":12, "y":1.3}, + + {"label":"Z", "x":0, "y":2.3}, + {"label":"X", "x":1, "y":2.1}, + {"label":"C", "x":2, "y":2}, + {"label":"V", "x":3, "y":2.1}, + {"label":"B", "x":4, "y":2.2}, + + {"label":"N", "x":8, "y":2.2}, + {"label":"M", "x":9, "y":2.1}, + {"label":",", "x":10, "y":2}, + {"label":".", "x":11, "y":2.1}, + {"label":"/", "x":12, "y":2.3}, + + {"label":"KC_LSFT", "x":3, "y":3.7}, + {"label":"LC_LALT", "x":4, "y":3.7}, + {"label":"KC_ENT", "x":5, "y":3.2, "h":1.5}, + + {"label":"KC_SPC", "x":7, "y":3.2, "h":1.5}, + {"label":"KC_DEL", "x":8, "y":3.7}, + {"label":"KC_RCTL", "x":9, "y":3.7} + ] + } + } +} diff --git a/keyboards/chocv/keymaps/default/keymap.c b/keyboards/chocv/keymaps/default/keymap.c new file mode 100644 index 0000000000..f6d2f0d270 --- /dev/null +++ b/keyboards/chocv/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 BrickBots Labs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LSFT, KC_LALT, KC_ENT, KC_SPC, KC_DEL, KC_RCTL + ), +}; diff --git a/keyboards/chocv/keymaps/default/readme.md b/keyboards/chocv/keymaps/default/readme.md new file mode 100644 index 0000000000..0d9b3630ab --- /dev/null +++ b/keyboards/chocv/keymaps/default/readme.md @@ -0,0 +1,24 @@ +# chocV Keymap + +The default keymap provided here is useful for testing and as a base +for your own mapping, but does not include layers and is missing many +keycodes. To build the default keymap for testing: + +make chocv:default + +## Give Miryoku a try + +If you are looking for a full fetured keymap, you can build the +firmware with Miryoku without any additional work + +For details and building instructions and options please see the +[The official Miryoku QMK +Repo](https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku) + +The command to build with the default Miryoku layout is: + +make chocv:manna-habour_miryoku + + + + diff --git a/keyboards/chocv/readme.md b/keyboards/chocv/readme.md new file mode 100644 index 0000000000..67bb9aad02 --- /dev/null +++ b/keyboards/chocv/readme.md @@ -0,0 +1,26 @@ +# chocV + +A 36 key choc keyboard based on the [Horizon](https://github.com/skarrmann/horizon) +construction and a trimmed down [BabyV](https://www.instagram.com/eyeohdesigns/?hl=en) layout! + +![chocV Lineage](https://raw.githubusercontent.com/brickbots/chocV/main/images/lineage.jpeg "chocV Lineage") + +* Keyboard Maintainer: [Brickbots](https://github.com/brickbots) +* Hardware Supported: The chocV PCB is public domain and is compatible with any +pro-micro footprint MCU +* Hardware Availability: [The chocV github repo](https://github.com/brickbots/chocV) + +Make example for this keyboard (after setting up your build environment): + + make chocv:default + +Flashing example for this keyboard: + + make chocv:default:flash + +## Bootloader + +Enter the bootloader using the hardware reset button on the top middle of the +near the MCU. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/chocv/rules.mk b/keyboards/chocv/rules.mk new file mode 100644 index 0000000000..27b4a6282b --- /dev/null +++ b/keyboards/chocv/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = qmk-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 = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = split_3x5_3 From 931c7539d25ad23376e2501c3861bbb38ed58d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20K=C3=BChling?= <665506+dvdkhlng@users.noreply.github.com> Date: Sun, 17 Jul 2022 18:49:36 +0200 Subject: [PATCH 64/69] [Keyboard] Handwired Maltron DQz11N1G contoured keyboard (#17237) * Basic support for Maltron DQz11N1G controller replacement. * Update keyboards/handwired/dqz11n1g/rules.mk * Rehost images to cubeupload.com. (They were previously hosted via github wiki) * Apply suggestions from noroadsleft code review * Update keyboards/handwired/dqz11n1g/dqz11n1g.h --- keyboards/handwired/dqz11n1g/config.h | 58 +++++++ keyboards/handwired/dqz11n1g/dqz11n1g.h | 51 +++++++ keyboards/handwired/dqz11n1g/info.json | 141 ++++++++++++++++++ .../dqz11n1g/keymaps/default/keymap.c | 72 +++++++++ .../dqz11n1g/keymaps/default/readme.md | 17 +++ keyboards/handwired/dqz11n1g/matrix.c | 131 ++++++++++++++++ keyboards/handwired/dqz11n1g/readme.md | 80 ++++++++++ keyboards/handwired/dqz11n1g/rules.mk | 24 +++ 8 files changed, 574 insertions(+) create mode 100644 keyboards/handwired/dqz11n1g/config.h create mode 100644 keyboards/handwired/dqz11n1g/dqz11n1g.h create mode 100644 keyboards/handwired/dqz11n1g/info.json create mode 100644 keyboards/handwired/dqz11n1g/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dqz11n1g/keymaps/default/readme.md create mode 100644 keyboards/handwired/dqz11n1g/matrix.c create mode 100644 keyboards/handwired/dqz11n1g/readme.md create mode 100644 keyboards/handwired/dqz11n1g/rules.mk diff --git a/keyboards/handwired/dqz11n1g/config.h b/keyboards/handwired/dqz11n1g/config.h new file mode 100644 index 0000000000..0631787f55 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/config.h @@ -0,0 +1,58 @@ +/* +Copyright (c) 2022 David Kuehling + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for 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 0x4451 +#define DEVICE_VER 0x0001 +#define PRODUCT DQz11N1G Controller Replacement + +/* Matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 19 + +/* Pin-out */ +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6, B4 } + +/* The pin connecting to the SN74HC165 SH/~LD in */ +#define ROW_SHIFT_PIN B6 + +/* Column read via SPI (shift register) */ +/* #define MATRIX_COL_PINS { } */ +#define UNUSED_PINS + +#define LED_CAPS_LOCK_PIN F7 /* A0 */ +#define LED_NUM_LOCK_PIN F5 /*A2 */ +#define LED_SCROLL_LOCK_PIN F4 /*A3 */ + +#define LED_FUN_LOCK_PIN F6 /* A1 (handled in layer_state_set_user()) */ + +/* audio config */ +#define AUDIO_PIN B5 +#define AUDIO_CLICKY +#define AUDIO_INIT_DELAY +#define AUDIO_CLICKY_FREQ_RANDOMNESS 0.0f +#define NO_MUSIC_MODE + +/* diodes go row->col, though this is hard-coded in matrix.c and we drive the + * matrix differently: we have pull-down on the columns and drive the selected + * row high */ +/* #define DIODE_DIRECTION ROW2COL */ diff --git a/keyboards/handwired/dqz11n1g/dqz11n1g.h b/keyboards/handwired/dqz11n1g/dqz11n1g.h new file mode 100644 index 0000000000..f5c55bd6d5 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/dqz11n1g.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 David Kuehling + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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 + +/* Fill actually existing keys into the 7x19 keyboard matrix */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0J, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1J, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2J, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3J, \ + k40, k41, k42, k43, k44, k45, k4D, k4E, k4F, k4G, k4H, k4J, \ + k51, k52, k53, k54, k5E, k5F, k5G, k5H, \ + k46, k47, k48, k4A, k4B, k4C, \ + k56, k57, k58, k5A, k5B, k5C, \ + k68, k6A \ +) { \ + /* left hand */ /* middle/thumb block */ /* right hand */ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0J }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1J }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2J }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3J }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, XXX, k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4J }, \ + { XXX, k51, k52, k53, k54, XXX, k56, k57, k58, XXX, k5A, k5B, k5C, XXX, k5E, k5F, k5G, k5H, XXX }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, k68, XXX, k6A, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \ +} + +/* + * Local Variables: + * c-basic-offset:4 + * fill-column: 76 + * End: + */ diff --git a/keyboards/handwired/dqz11n1g/info.json b/keyboards/handwired/dqz11n1g/info.json new file mode 100644 index 0000000000..0c56752ffd --- /dev/null +++ b/keyboards/handwired/dqz11n1g/info.json @@ -0,0 +1,141 @@ +{ + "keyboard_name": "DQz11N1G", + "url": "https://github.com/dvdkhlng/qmk_firmware_dqz11n1g", + "maintainer": "dvdkhlng", + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0] }, + {"x": 1, "y": 0, "matrix": [0, 1] }, + {"x": 2, "y": 0, "matrix": [0, 2] }, + {"x": 3, "y": 0, "matrix": [0, 3] }, + {"x": 4, "y": 0, "matrix": [0, 4] }, + {"x": 5, "y": 0, "matrix": [0, 5] }, + + {"x": 7, "y": 0, "matrix": [0, 6] }, + {"x": 8, "y": 0, "matrix": [0, 7] }, + {"x": 9, "y": 0, "matrix": [0, 8] }, + {"x": 10, "y": 0, "matrix": [0, 9] }, + {"x": 11, "y": 0, "matrix": [0, 10] }, + {"x": 12, "y": 0, "matrix": [0, 11] }, + {"x": 13, "y": 0, "matrix": [0, 12] }, + + {"x": 15, "y": 0, "matrix": [0, 13] }, + {"x": 16, "y": 0, "matrix": [0, 14] }, + {"x": 17, "y": 0, "matrix": [0, 15] }, + {"x": 18, "y": 0, "matrix": [0, 16] }, + {"x": 19, "y": 0, "matrix": [0, 17] }, + {"x": 20, "y": 0, "matrix": [0, 18] }, + + {"x": 0, "y": 1, "matrix": [1, 0] }, + {"x": 1, "y": 1, "matrix": [1, 1] }, + {"x": 2, "y": 1, "matrix": [1, 2] }, + {"x": 3, "y": 1, "matrix": [1, 3] }, + {"x": 4, "y": 1, "matrix": [1, 4] }, + {"x": 5, "y": 1, "matrix": [1, 5] }, + + {"x": 7, "y": 1, "matrix": [1, 6] }, + {"x": 8, "y": 1, "matrix": [1, 7] }, + {"x": 9, "y": 1, "matrix": [1, 8] }, + {"x": 10, "y": 1, "matrix": [1, 9] }, + {"x": 11, "y": 1, "matrix": [1, 10] }, + {"x": 12, "y": 1, "matrix": [1, 11] }, + {"x": 13, "y": 1, "matrix": [1, 12] }, + + {"x": 15, "y": 1, "matrix": [1, 13] }, + {"x": 16, "y": 1, "matrix": [1, 14] }, + {"x": 17, "y": 1, "matrix": [1, 15] }, + {"x": 18, "y": 1, "matrix": [1, 16] }, + {"x": 19, "y": 1, "matrix": [1, 17] }, + {"x": 20, "y": 1, "matrix": [1, 18] }, + + {"x": 0, "y": 2, "matrix": [2, 0] }, + {"x": 1, "y": 2, "matrix": [2, 1] }, + {"x": 2, "y": 2, "matrix": [2, 2] }, + {"x": 3, "y": 2, "matrix": [2, 3] }, + {"x": 4, "y": 2, "matrix": [2, 4] }, + {"x": 5, "y": 2, "matrix": [2, 5] }, + + {"x": 7, "y": 2, "matrix": [2, 6] }, + {"x": 8, "y": 2, "matrix": [2, 7] }, + {"x": 9, "y": 2, "matrix": [2, 8] }, + {"x": 10, "y": 2, "matrix": [2, 9] }, + {"x": 11, "y": 2, "matrix": [2, 10] }, + {"x": 12, "y": 2, "matrix": [2, 11] }, + {"x": 13, "y": 2, "matrix": [2, 12] }, + + {"x": 15, "y": 2, "matrix": [2, 13] }, + {"x": 16, "y": 2, "matrix": [2, 14] }, + {"x": 17, "y": 2, "matrix": [2, 15] }, + {"x": 18, "y": 2, "matrix": [2, 16] }, + {"x": 19, "y": 2, "matrix": [2, 17] }, + {"x": 20, "y": 2, "matrix": [2, 18] }, + + {"x": 0, "y": 3, "matrix": [3, 0] }, + {"x": 1, "y": 3, "matrix": [3, 1] }, + {"x": 2, "y": 3, "matrix": [3, 2] }, + {"x": 3, "y": 3, "matrix": [3, 3] }, + {"x": 4, "y": 3, "matrix": [3, 4] }, + {"x": 5, "y": 3, "matrix": [3, 5] }, + + {"x": 7, "y": 3, "matrix": [3, 6] }, + {"x": 8, "y": 3, "matrix": [3, 7] }, + {"x": 9, "y": 3, "matrix": [3, 8] }, + {"x": 10, "y": 3, "matrix": [3, 9] }, + {"x": 11, "y": 3, "matrix": [3, 10] }, + {"x": 12, "y": 3, "matrix": [3, 11] }, + {"x": 13, "y": 3, "matrix": [3, 12] }, + + {"x": 15, "y": 3, "matrix": [3, 13] }, + {"x": 16, "y": 3, "matrix": [3, 14] }, + {"x": 17, "y": 3, "matrix": [3, 15] }, + {"x": 18, "y": 3, "matrix": [3, 16] }, + {"x": 19, "y": 3, "matrix": [3, 17] }, + {"x": 20, "y": 3, "matrix": [3, 18] }, + + {"x": 0, "y": 4, "h": 2, "matrix": [4, 0] }, + {"x": 1, "y": 4, "matrix": [4, 1] }, + {"x": 2, "y": 4, "matrix": [4, 2] }, + {"x": 3, "y": 4, "matrix": [4, 3] }, + {"x": 4, "y": 4, "matrix": [4, 4] }, + {"x": 5, "y": 4, "matrix": [4, 5] }, + + {"x": 15, "y": 4, "matrix": [4, 13] }, + {"x": 16, "y": 4, "matrix": [4, 14] }, + {"x": 17, "y": 4, "matrix": [4, 15] }, + {"x": 18, "y": 4, "matrix": [4, 16] }, + {"x": 19, "y": 4, "matrix": [4, 17] }, + {"x": 20, "y": 4, "h": 2, "matrix": [4, 18] }, + + {"x": 1, "y": 5, "matrix": [5, 1] }, + {"x": 2, "y": 5, "matrix": [5, 2] }, + {"x": 3, "y": 5, "matrix": [5, 3] }, + {"x": 4, "y": 5, "matrix": [5, 4] }, + + {"x": 16, "y": 5, "matrix": [5, 14] }, + {"x": 17, "y": 5, "matrix": [5, 15] }, + {"x": 18, "y": 5, "matrix": [5, 16] }, + {"x": 19, "y": 5, "matrix": [5, 17] }, + + {"x": 5, "y": 7, "matrix": [4, 6] }, + {"x": 6, "y": 7, "matrix": [4, 7] }, + {"x": 7, "y": 7, "matrix": [4, 8] }, + + {"x": 13, "y": 7, "matrix": [4, 10] }, + {"x": 14, "y": 7, "matrix": [4, 11] }, + {"x": 15, "y": 7, "matrix": [4, 12] }, + + {"x": 5, "y": 8, "h": 2, "matrix": [5, 6] }, + {"x": 6, "y": 8, "h": 2, "matrix": [5, 7] }, + {"x": 7, "y": 8, "matrix": [5, 8] }, + + {"x": 13, "y": 8, "matrix": [5, 10] }, + {"x": 14, "y": 8, "h": 2, "matrix": [5, 11] }, + {"x": 15, "y": 8, "h": 2, "matrix": [5, 12] }, + + {"x": 7, "y": 9, "matrix": [6, 8] }, + {"x": 13, "y": 9, "matrix": [6, 10] } + ] + } + } +} diff --git a/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c b/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c new file mode 100644 index 0000000000..29d9cad7b7 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright (c) 2022 David Kuehling < dvdkhlng TA posteo TOD de > + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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, _FUNCTION }; +#define KC_FUN TG(_FUNCTION) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DEFAULT] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_FUN, KC_NUM, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_VOLU, KC_ESC, KC_P4, KC_P5, KC_P6, KC_PAST, KC_SCRL, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, + KC_NUBS,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_VOLD, KC_GRV, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_BRK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_MUTE, KC_WSCH,KC_P0,KC_PDOT,KC_PENT,KC_PPLS,KC_INS, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, + KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, + /* */ KC_LCTL, KC_LGUI,KC_LALT,KC_RBRC, KC_NUHS,KC_RALT,KC_APP, KC_RCTL, /* */ + + /* thumb keys: */ KC_BSPC, KC_HOME, KC_END, KC_LEFT, KC_RGHT, KC_DEL, + /* thumb keys: */ KC_SPC, KC_TAB, KC_PGUP, KC_UP, KC_ENT, KC_SPC, + /* thumb keys: */ KC_PGDN, KC_DOWN + ), + + /* This is the "function key locked" layer. It is not documented by + * Maltron, so just putting some "Quantum" keycodes here for testing that + * the layer exists and Fun Lock LED works. */ + [_FUNCTION] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,KC_TRNS,KC_BTN3,KC_MS_U,KC_WH_U,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_UP, AU_ON, KC_MS_L,KC_BTN1,KC_MS_R,KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_DOWN,AU_OFF, KC_BTN2,KC_MS_D,KC_WH_D,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_TOGG,KC_NO, KC_ACL0,KC_ACL1,KC_ACL2,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /* */ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* */ + + /* thumb keys: */ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /* thumb keys: */ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /* thumb keys: */ KC_NO, KC_NO + ) +}; + +/* Show "Fun Lock" layer state via the "Fun Lock" LED */ +layer_state_t layer_state_set_user(layer_state_t state) { + + setPinOutput(LED_FUN_LOCK_PIN); + + if (layer_state_cmp(state, _FUNCTION)) + writePinHigh(LED_FUN_LOCK_PIN); + else + writePinLow(LED_FUN_LOCK_PIN); + + return state; +} + +/* + * Local Variables: + * c-basic-offset:4 + * fill-column: 76 + * End: + */ diff --git a/keyboards/handwired/dqz11n1g/keymaps/default/readme.md b/keyboards/handwired/dqz11n1g/keymaps/default/readme.md new file mode 100644 index 0000000000..d61546eb37 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/keymaps/default/readme.md @@ -0,0 +1,17 @@ +![DQz11N1G-DE Layout Image](https://u.cubeupload.com/ddklg/OPBN5q.jpg) + +# Default Layout for DQz11N1G-DE + +This is the layout corresponding to what the Maltron keyboard DQz11N1G-DE I +own came with (using the original pre-installed controller). Note that this +differs from German Maltron layout as published on [Maltron's +website](https://www.maltron.com/germany.html). Use the photo above as a +reference for the layout implemented here. + +I did not find any official documentation about the the Function Lock key on +the original Maltron keyboards. It seems that it implements some of the +features that are documented for the one-handed Maltron keyboards. Most +keys don't send any keycodes at all when function lock is enabed. + +We instead map some of the Quantum keycodes (mouse keys and audio control) +in the middle (keypad) section of the keypad, when Function Lock is enabled. \ No newline at end of file diff --git a/keyboards/handwired/dqz11n1g/matrix.c b/keyboards/handwired/dqz11n1g/matrix.c new file mode 100644 index 0000000000..f9f3f2b68f --- /dev/null +++ b/keyboards/handwired/dqz11n1g/matrix.c @@ -0,0 +1,131 @@ +/* + Copyright (c) 2022 David Kuehling + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include +#include + +#include + +#include "spi_master.h" +#include "quantum.h" +#include "matrix.h" + +static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; + +static void unselect_rows(void); + +void matrix_init_custom(void) { + /* initialize row pins */ + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + setPinOutput(row_pins[row]); + } + unselect_rows(); + + /* columns read via shift-register on SPI lines */ + + /* Enable SPI, Master, set clock rate fck/2. First bit already at Qh + * output before clock edge (CPHA=0). SN74HC165 shift register shifts + * on low-to-high transition (CPOL=1). Receive the LSB first (DORD=1). + */ + bool lsbFirst = true; + uint8_t mode = 2; /* CPOL=1, CPHA=0 */ + uint16_t divisor = 16; + + /* According to Atmega32U4 datasheet, PB0 *must* be set to output, + * otherwise it will interfere with SPI master operation. On pro-micro + * it's connected to a yellew LED. */ + pin_t slavePin = PB0; + spi_init(); + spi_start(slavePin, lsbFirst, mode, divisor); + + /* Initialize pin controlling the shift register's SH/~LD pin */ + setPinOutput(ROW_SHIFT_PIN); +} + +static void select_row(uint8_t row) { + pin_t pin = row_pins[row]; + if (pin != NO_PIN) { + writePinHigh(pin); + } +} + +static void unselect_row(uint8_t row) { + pin_t pin = row_pins[row]; + if (pin != NO_PIN) { + writePinLow(pin); + } +} + +static void unselect_rows(void) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + unselect_row(row); + } +} + +bool matrix_read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { + /* Start with a clear matrix row */ + matrix_row_t current_row_value = 0; + + /* Set shift register SH/~LD pin to "load" mode */ + writePinLow(ROW_SHIFT_PIN); + select_row(current_row); + matrix_output_select_delay(); + + /* Set shift register SH/~LD pin to "shift" mode */ + writePinHigh(ROW_SHIFT_PIN); + + /* For each octet of columns... */ + for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index += 8) { + spi_status_t read_result = spi_read(); + if (read_result >= 0) { + /* only if SPI read successful: populate the matrix row with the + state of the 8 consecutive column bits */ + current_row_value |= ((matrix_row_t)read_result << col_index); + } + } + + /* Unselect row & wait for all columns signals to go high. */ + unselect_row(current_row); + matrix_output_unselect_delay(current_row, current_row_value != 0); + + /* Update row in matrix. */ + if (current_row_value != current_matrix[current_row]) { + current_matrix[current_row] = current_row_value; + return true; + } + + return false; +} + +bool matrix_scan_custom(matrix_row_t curr_matrix[]) { + bool changed = false; + + /* set row, read cols */ + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { + changed |= matrix_read_cols_on_row(curr_matrix, current_row); + } + + return changed; +} + +/* + * Local Variables: + * c-basic-offset:4 + * fill-column: 76 + * End: + */ diff --git a/keyboards/handwired/dqz11n1g/readme.md b/keyboards/handwired/dqz11n1g/readme.md new file mode 100644 index 0000000000..0e3a57873d --- /dev/null +++ b/keyboards/handwired/dqz11n1g/readme.md @@ -0,0 +1,80 @@ +# DQz11N1G + +![DQz11N1G](https://u.cubeupload.com/ddklg/OPBN5q.jpg) + +Firmware for a DIY controller replacement for one of the ortholinear contoured +keyboards manufactured by [PCD Maltron Ltd](https://www.maltron.com) + +This work here in no way officially associated with PCD Maltron Ltd and comes +with NO WARRANTY. Modifying your Maltron keyboard as described below will +certainly void your warranty and may cause damage to your keyboard. Proceed +at your own risk! + +* maintainer: [David Kuehling](https://github.com/dvdkhlng/qmk_firmware_dqz11n1g) +* Hardware Supported: Maltron DQz11N1G with a replacement controller board + assembled as described below. The work here is based on a german version + of the keyboard: DQz11N1G-DE. I assume, but don't know for sure, that + minor or no changes at all are required to make this work on different + language versions of the keyboard. +* Hardware Availability: + * [PCD Maltron Ltd](https://www.maltron.com), for the original keyboard + * 1x [Arduino Pro Micro](https://www.sparkfun.com/products/12640) + * 3x [SN74HC165](https://www.ti.com/product/SN74HC165) + * 1x DIL connector 2 rows a 17 pins. + * 19x pull-down resistors (10k Ohm), + * 4 LED current limiting resistors (not sure about the correct resistance, + using 470 Ohm here) + +Make example for this keyboard (after setting up your build environment): + + make handwired/dqz11n1g:default + +## In Detail + +[PCD Maltron Ltd](https://www.maltron.com) manufacturs ergonomic keyboards +that appear to be hand-wired internally. For the Maltron DQz11N1G-DE +keyboard that I happen to own, the keyboard matrix is wired to a 34-pin DIL +connector. This makes it rather easy to replace the proprietary +controller-board with a self-made board based on the QMK firmware. + +I don't really like the default layout of my Maltron DQz11N1G-DE keyboard, +and modding it to work with QMK allows me to adapt it to my needs. It +especially allows for the two space keys to assume different roles, thereby +creating an additional easily reachable thumb-key. + +### Internal Details of Keyboard Matrix and DIL Connector + +![DQz11N1G-DE keyboard matrix](https://u.cubeupload.com/ddklg/OJFue6.jpg) + +![DQz11N1G-DE keyboard matrix connector](https://u.cubeupload.com/ddklg/fjFXeL.png) + +### Replacement Keyboard Controller Board + +Due to supply chain problems, I decided to base this on an +Arduino-compatible [Pro Micro](https://www.sparkfun.com/products/12640) +board which is still easy to source. + +Unfortunately pin-count of the DQz11N1G-DE's keyboard matrix is way beyond +the Pro Micro's available I/O pin count. I'm using three 8-bit +shift-registers ([SN74HC165](https://www.ti.com/product/SN74HC165) ) to +connect the 19 colums of the keyboard matrix for readout. Due to diode +direction in DQz11N1G-DE we also need 19 pull-down resistors one for each of +the utilized shift-register inputs. + +This is a design sketch of the replacement board this is based on. Note how +we need a custom matrix.c source file to deal with the shift register based +keyboard readout. + +![Sketch of Keyboard Controller Board](https://u.cubeupload.com/ddklg/GBZgSf.png) + +This is how the assembled controller board looks like, on the right side you +see the original PIC-based controller the keyboard ships with. + +![The assembled controller next to the original controller the keyboard ships with](https://u.cubeupload.com/ddklg/KLYF2V.jpg) + +Inside of the keyboard after installing the new controller board: + +![Installed controller](https://u.cubeupload.com/ddklg/Br0aiF.jpg) + +(Not visible in the photo: I drilled hole into the keyboard above the USB +connector for a reset switch to simplify flashing controller firmware) diff --git a/keyboards/handwired/dqz11n1g/rules.mk b/keyboards/handwired/dqz11n1g/rules.mk new file mode 100644 index 0000000000..db8a809da9 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Keyboard matrix uses shift-registers read via SPI +CUSTOM_MATRIX = lite +SRC += matrix.c +QUANTUM_LIB_SRC += spi_master.c + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = yes # Audio output + From a444ccd27cbad978697bc20851b6a8402700331d Mon Sep 17 00:00:00 2001 From: Kyle McCreery Date: Sun, 17 Jul 2022 19:55:32 -0400 Subject: [PATCH 65/69] Re-refactor Mokulua (#17125) * allowing the kt60 file to be modified so I can do things while waiting for it to be fixed upstream * initial commit for mokulua keyboard * Split the board into mirrored and standard layouts. * Prepping for PR. Silly keymap added. * prepped for PR * Apply suggestions from code review * Fixing firmware from the refactor that removed the mirrored layout. * Small tweaks using changes from refactor * Changed the name of the layouts back to match the original to resolve conflict in info.json * these files needed to be removed as well, they were added as a part of the refactor * info.json moveds to be different for each build * Another file had to be removed and the mirrored.c file changed to call mirrored.h instead of standard.h * fixing chibios ver * force deleting to revert * fixing chibios shit * Update keyboards/mechwild/mokulua/mirrored/mirrored.c * Update keyboards/mechwild/mokulua/standard/standard.c * Removing tabs and replacing with 4 spaces. Small style and formatting changes. --- keyboards/mechwild/mokulua/mirrored/config.h | 96 +++++++++++++++++++ keyboards/mechwild/mokulua/mirrored/info.json | 10 ++ .../mokulua/mirrored/keymaps/default/keymap.c | 46 +++++++++ .../mirrored/keymaps/default/readme.md | 1 + .../mokulua/mirrored/keymaps/via/keymap.c | 46 +++++++++ .../mokulua/mirrored/keymaps/via/readme.md | 1 + .../silly => mirrored/keymaps/via}/rules.mk | 0 .../mechwild/mokulua/mirrored/mirrored.c | 82 ++++++++++++++++ .../mechwild/mokulua/mirrored/mirrored.h | 31 ++++++ keyboards/mechwild/mokulua/mirrored/rules.mk | 22 +++++ keyboards/mechwild/mokulua/mokulua.c | 82 ---------------- keyboards/mechwild/mokulua/rules.mk | 23 +---- .../mechwild/mokulua/{ => standard}/config.h | 11 ++- .../mechwild/mokulua/{ => standard}/info.json | 4 +- .../{ => standard}/keymaps/default/keymap.c | 0 .../{ => standard}/keymaps/default/readme.md | 0 .../{ => standard}/keymaps/silly/config.h | 0 .../{ => standard}/keymaps/silly/keymap.c | 28 +++--- .../{ => standard}/keymaps/silly/readme.md | 0 .../via => standard/keymaps/silly}/rules.mk | 0 .../{ => standard}/keymaps/via/keymap.c | 0 .../{ => standard}/keymaps/via/readme.md | 0 .../mokulua/standard/keymaps/via/rules.mk | 2 + keyboards/mechwild/mokulua/standard/rules.mk | 22 +++++ .../mechwild/mokulua/standard/standard.c | 82 ++++++++++++++++ .../{mokulua.h => standard/standard.h} | 4 +- 26 files changed, 467 insertions(+), 126 deletions(-) create mode 100644 keyboards/mechwild/mokulua/mirrored/config.h create mode 100644 keyboards/mechwild/mokulua/mirrored/info.json create mode 100644 keyboards/mechwild/mokulua/mirrored/keymaps/default/keymap.c create mode 100644 keyboards/mechwild/mokulua/mirrored/keymaps/default/readme.md create mode 100644 keyboards/mechwild/mokulua/mirrored/keymaps/via/keymap.c create mode 100644 keyboards/mechwild/mokulua/mirrored/keymaps/via/readme.md rename keyboards/mechwild/mokulua/{keymaps/silly => mirrored/keymaps/via}/rules.mk (100%) create mode 100644 keyboards/mechwild/mokulua/mirrored/mirrored.c create mode 100644 keyboards/mechwild/mokulua/mirrored/mirrored.h create mode 100644 keyboards/mechwild/mokulua/mirrored/rules.mk delete mode 100644 keyboards/mechwild/mokulua/mokulua.c rename keyboards/mechwild/mokulua/{ => standard}/config.h (95%) rename keyboards/mechwild/mokulua/{ => standard}/info.json (95%) rename keyboards/mechwild/mokulua/{ => standard}/keymaps/default/keymap.c (100%) rename keyboards/mechwild/mokulua/{ => standard}/keymaps/default/readme.md (100%) rename keyboards/mechwild/mokulua/{ => standard}/keymaps/silly/config.h (100%) rename keyboards/mechwild/mokulua/{ => standard}/keymaps/silly/keymap.c (89%) rename keyboards/mechwild/mokulua/{ => standard}/keymaps/silly/readme.md (100%) rename keyboards/mechwild/mokulua/{keymaps/via => standard/keymaps/silly}/rules.mk (100%) rename keyboards/mechwild/mokulua/{ => standard}/keymaps/via/keymap.c (100%) rename keyboards/mechwild/mokulua/{ => standard}/keymaps/via/readme.md (100%) create mode 100644 keyboards/mechwild/mokulua/standard/keymaps/via/rules.mk create mode 100644 keyboards/mechwild/mokulua/standard/rules.mk create mode 100644 keyboards/mechwild/mokulua/standard/standard.c rename keyboards/mechwild/mokulua/{mokulua.h => standard/standard.h} (94%) diff --git a/keyboards/mechwild/mokulua/mirrored/config.h b/keyboards/mechwild/mokulua/mirrored/config.h new file mode 100644 index 0000000000..d63d0bdb4b --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/config.h @@ -0,0 +1,96 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6D77 // mw = "MechWild" +#define PRODUCT_ID 0x170C +#define DEVICE_VER 0x0103 +#define MANUFACTURER MechWild +#define PRODUCT Mokulua + +/* Key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 6 + +/* Key matrix pins */ +#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 } +#define UNUSED_PINS + +/* Encoder pins */ +#define ENCODERS_PAD_A { D2 } +#define ENCODERS_PAD_B { B2 } + +/* Encoder resolution */ +#define ENCODER_RESOLUTION 4 +#define TAP_CODE_DELAY 10 + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define OLED_FONT_H "keyboards/mechwild/mokulua/glcdfont.c" + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D3 +#define MASTER_LEFT +//#define MASTER_RIGHT +#define RGBLIGHT_SPLIT +#define RGBLED_SPLIT { 8, 8 } +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_MODS_ENABLE +#define SPLIT_OLED_ENABLE + +/* RGB options */ +#define RGB_DI_PIN B6 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== choose RGB animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/mechwild/mokulua/mirrored/info.json b/keyboards/mechwild/mokulua/mirrored/info.json new file mode 100644 index 0000000000..7ca44411b8 --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "Mokulua Mirrored", + "url": "https://mechwild.com", + "maintainer": "kylemccreery", + "layouts": { + "LAYOUT_mirrored": { + "layout": [{"x":0.5, "y":0}, {"x":1.5, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0.47, "y":1, "w":1.5}, {"x":1.97, "y":1}, {"x":15.78, "y":1}, {"x":16.78, "y":1, "w":1.5}, {"x":0.37, "y":2, "w":1.75}, {"x":2.12, "y":2}, {"x":15.63, "y":2}, {"x":16.63, "y":2, "w":1.75}, {"x":0.22, "y":3, "w":1.25}, {"x":1.47, "y":3}, {"x":2.47, "y":3}, {"x":9.43, "y":3}, {"x":15.28, "y":3}, {"x":16.28, "y":3}, {"x":17.28, "y":3, "w":1.25}, {"x":0.47, "y":4}, {"x":1.47, "y":4}, {"x":2.47, "y":4}, {"x":9.68, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}, {"x":17.25, "y":4}, {"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":0.5, "y":2.25}, {"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":0.75, "y":3.25}, {"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":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.57, "y":4.25}, {"x":1, "y":5.25, "w":1.25}, {"x":2.25, "y":5.25, "w":1.5}, {"x":3.75, "y":5.25, "w":1.5}, {"x":5.32, "y":5.25}, {"x":-1.0, "y":2}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":-1.5, "y":3}, {"x":-0.5, "y":3}, {"x":0.5, "y":3}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":-1.75, "y":4}, {"x":-0.75, "y":4}, {"x":0.25, "y":4}, {"x":1.25, "y":4}, {"x":2.25, "y":4}, {"x":-1.25, "y":5}, {"x":-0.25, "y":5}, {"x":0.75, "y":5}, {"x":1.75, "y":5}, {"x":-1.25, "y":6, "w":1.5}, {"x":0.25, "y":6, "w":1.5}, {"x":1.75, "y":6, "w":1.25}] + } + } +} diff --git a/keyboards/mechwild/mokulua/mirrored/keymaps/default/keymap.c b/keyboards/mechwild/mokulua/mirrored/keymaps/default/keymap.c new file mode 100644 index 0000000000..90b457889a --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define FN1_SPC LT(1, KC_SPC) +#define FN2_SPC LT(2, KC_SPC) + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, _______, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, KC_BSLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_SCLN, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MUTE, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(2), FN1_SPC, FN2_SPC, RGB_RMOD, RGB_MOD, FN2_SPC, FN1_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + [_FN2] = LAYOUT( + _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/mechwild/mokulua/mirrored/keymaps/default/readme.md b/keyboards/mechwild/mokulua/mirrored/keymaps/default/readme.md new file mode 100644 index 0000000000..727105dcba --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Mokulua using a mirrored right-half diff --git a/keyboards/mechwild/mokulua/mirrored/keymaps/via/keymap.c b/keyboards/mechwild/mokulua/mirrored/keymaps/via/keymap.c new file mode 100644 index 0000000000..90b457889a --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define FN1_SPC LT(1, KC_SPC) +#define FN2_SPC LT(2, KC_SPC) + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, _______, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, KC_BSLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_SCLN, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MUTE, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(2), FN1_SPC, FN2_SPC, RGB_RMOD, RGB_MOD, FN2_SPC, FN1_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + [_FN2] = LAYOUT( + _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/mechwild/mokulua/mirrored/keymaps/via/readme.md b/keyboards/mechwild/mokulua/mirrored/keymaps/via/readme.md new file mode 100644 index 0000000000..37aca6eac7 --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for Mokulua using a mirrored right-half diff --git a/keyboards/mechwild/mokulua/keymaps/silly/rules.mk b/keyboards/mechwild/mokulua/mirrored/keymaps/via/rules.mk similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/silly/rules.mk rename to keyboards/mechwild/mokulua/mirrored/keymaps/via/rules.mk diff --git a/keyboards/mechwild/mokulua/mirrored/mirrored.c b/keyboards/mechwild/mokulua/mirrored/mirrored.c new file mode 100644 index 0000000000..6b5410642a --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/mirrored.c @@ -0,0 +1,82 @@ +// Copyright 2022 Kyle McCreery (@Kyle McCreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "mirrored.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + case 1: + if (clockwise) { + tap_code(KC_PGUP); + } else { + tap_code(KC_PGDN); + } + break; + + } + return true; +} +#endif + +#ifdef OLED_ENABLE + oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; // flips the display 270 degrees + } + + static void render_logo(void) { // Render MechWild "MW" Logo + static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; + static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; + static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; + static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; + oled_set_cursor(0,0); + oled_write_P(logo_1, false); + oled_set_cursor(0,1); + oled_write_P(logo_2, false); + oled_set_cursor(0,2); + oled_write_P(logo_3, false); + oled_set_cursor(0,3); + oled_write_P(logo_4, false); + } + bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_logo(); + oled_set_cursor(0,6); + + oled_write_ln_P(PSTR("Layer"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_ln_P(PSTR("Base"), false); + break; + case 1: + oled_write_ln_P(PSTR("FN 1"), false); + break; + case 2: + oled_write_ln_P(PSTR("FN 2"), false); + break; + case 3: + oled_write_ln_P(PSTR("FN 3"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_ln_P(PSTR(""), false); + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + return false; + } +#endif diff --git a/keyboards/mechwild/mokulua/mirrored/mirrored.h b/keyboards/mechwild/mokulua/mirrored/mirrored.h new file mode 100644 index 0000000000..66df5cdd6b --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/mirrored.h @@ -0,0 +1,31 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_mirrored( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L36, L37, R30, R31, R32, R33, R34, R35, R36, R37, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ +) { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { L40, L41, L42, L43, L44, L45 }, \ + { L46, L36, L37, L26, L16, L06 }, \ + { R06, R05, R04, R03, R02, R01 }, \ + { R16, R15, R14, R13, R12, R11 }, \ + { R26, R25, R24, R23, R22, R21 }, \ + { R37, R36, R35, R34, R33, R32 }, \ + { R46, R45, R44, R43, R42, R41 }, \ + { R40, R31, R30, R20, R10, R00 } \ +} + +#define LAYOUT LAYOUT_mirrored \ No newline at end of file diff --git a/keyboards/mechwild/mokulua/mirrored/rules.mk b/keyboards/mechwild/mokulua/mirrored/rules.mk new file mode 100644 index 0000000000..5aae5c7c76 --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # 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 +ENCODER_ENABLE = yes # Enable encoder +OLED_ENABLE = yes # Enable OLED Screen +OLED_DRIVER = SSD1306 # Define OLED Driver +SPLIT_KEYBOARD = yes # Define split functionality \ No newline at end of file diff --git a/keyboards/mechwild/mokulua/mokulua.c b/keyboards/mechwild/mokulua/mokulua.c deleted file mode 100644 index 57c800ef89..0000000000 --- a/keyboards/mechwild/mokulua/mokulua.c +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2022 Kyle McCreery (@Kyle McCreery) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "mokulua.h" - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - case 1: - if (clockwise) { - tap_code(KC_PGUP); - } else { - tap_code(KC_PGDN); - } - break; - - } - return true; -} -#endif - -#ifdef OLED_ENABLE - oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - return OLED_ROTATION_270; // flips the display 270 degrees - } - - static void render_logo(void) { // Render MechWild "MW" Logo - static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; - static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; - static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; - static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; - oled_set_cursor(0,0); - oled_write_P(logo_1, false); - oled_set_cursor(0,1); - oled_write_P(logo_2, false); - oled_set_cursor(0,2); - oled_write_P(logo_3, false); - oled_set_cursor(0,3); - oled_write_P(logo_4, false); - } - bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - render_logo(); - oled_set_cursor(0,6); - - oled_write_ln_P(PSTR("Layer"), false); - - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_ln_P(PSTR("Base"), false); - break; - case 1: - oled_write_ln_P(PSTR("FN 1"), false); - break; - case 2: - oled_write_ln_P(PSTR("FN 2"), false); - break; - case 3: - oled_write_ln_P(PSTR("FN 3"), false); - break; - default: - oled_write_ln_P(PSTR("Undef"), false); - } - oled_write_ln_P(PSTR(""), false); - // Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); - oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); - return false; - } -#endif diff --git a/keyboards/mechwild/mokulua/rules.mk b/keyboards/mechwild/mokulua/rules.mk index 17eb654430..3a87a143e5 100644 --- a/keyboards/mechwild/mokulua/rules.mk +++ b/keyboards/mechwild/mokulua/rules.mk @@ -1,22 +1 @@ -# 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 -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 -ENCODER_ENABLE = yes # Enable encoder -OLED_ENABLE = yes # Enable OLED Screen -OLED_DRIVER = SSD1306 # Define OLED Driver -SPLIT_KEYBOARD = yes # Define split functionality +DEFAULT_FOLDER = mechwild/mokulua/standard \ No newline at end of file diff --git a/keyboards/mechwild/mokulua/config.h b/keyboards/mechwild/mokulua/standard/config.h similarity index 95% rename from keyboards/mechwild/mokulua/config.h rename to keyboards/mechwild/mokulua/standard/config.h index a424bc6648..0fb07b630c 100644 --- a/keyboards/mechwild/mokulua/config.h +++ b/keyboards/mechwild/mokulua/standard/config.h @@ -56,9 +56,7 @@ # define RGBLIGHT_VAL_STEP 8 # define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ # define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations enable ==*/ -//# define RGBLIGHT_ANIMATIONS -/*== or choose animations ==*/ +/*== choose RGB animations ==*/ //# define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -79,6 +77,9 @@ /* 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 */ @@ -128,5 +129,5 @@ /* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/mechwild/mokulua/info.json b/keyboards/mechwild/mokulua/standard/info.json similarity index 95% rename from keyboards/mechwild/mokulua/info.json rename to keyboards/mechwild/mokulua/standard/info.json index 0be62ecf80..966505ba84 100644 --- a/keyboards/mechwild/mokulua/info.json +++ b/keyboards/mechwild/mokulua/standard/info.json @@ -1,9 +1,9 @@ { - "keyboard_name": "Mokulua", + "keyboard_name": "Mokulua Standard", "url": "https://mechwild.com", "maintainer": "kylemccreery", "layouts": { - "LAYOUT": { + "LAYOUT_standard": { "layout": [{"x":0.5, "y":0}, {"x":1.5, "y":0}, {"x":15.75, "y":0}, {"x":16.75, "y":0}, {"x":0.47, "y":1, "w":1.5}, {"x":1.97, "y":1}, {"x":15.5, "y":1}, {"x":16.5, "y":1, "w":1.5}, {"x":0.37, "y":2, "w":1.75}, {"x":2.12, "y":2}, {"x":15.85, "y":2}, {"x":16.85, "y":2, "w":1.75}, {"x":0.22, "y":3, "w":1.25}, {"x":1.47, "y":3}, {"x":2.47, "y":3}, {"x":9.43, "y":3}, {"x":15.5, "y":3}, {"x":16.5, "y":3}, {"x":17.5, "y":3, "w":1.25}, {"x":0.47, "y":4}, {"x":1.47, "y":4}, {"x":2.47, "y":4}, {"x":9.68, "y":4}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}, {"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":0.5, "y":2.25}, {"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":0.75, "y":3.25}, {"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":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.57, "y":4.25}, {"x":1, "y":5.25, "w":1.25}, {"x":2.25, "y":5.25, "w":1.5}, {"x":3.75, "y":5.25, "w":1.5}, {"x":5.32, "y":5.25}, {"x":-1.5, "y":2}, {"x":-0.5, "y":2}, {"x":0.5, "y":2}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":-1.0, "y":3}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":-1.75, "y":4}, {"x":-0.75, "y":4}, {"x":0.25, "y":4}, {"x":1.25, "y":4}, {"x":2.25, "y":4}, {"x":-1.25, "y":5}, {"x":-0.25, "y":5}, {"x":0.75, "y":5}, {"x":1.75, "y":5}, {"x":-1.25, "y":6, "w":1.5}, {"x":0.25, "y":6, "w":1.5}, {"x":1.75, "y":6, "w":1.25}] } } diff --git a/keyboards/mechwild/mokulua/keymaps/default/keymap.c b/keyboards/mechwild/mokulua/standard/keymaps/default/keymap.c similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/default/keymap.c rename to keyboards/mechwild/mokulua/standard/keymaps/default/keymap.c diff --git a/keyboards/mechwild/mokulua/keymaps/default/readme.md b/keyboards/mechwild/mokulua/standard/keymaps/default/readme.md similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/default/readme.md rename to keyboards/mechwild/mokulua/standard/keymaps/default/readme.md diff --git a/keyboards/mechwild/mokulua/keymaps/silly/config.h b/keyboards/mechwild/mokulua/standard/keymaps/silly/config.h similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/silly/config.h rename to keyboards/mechwild/mokulua/standard/keymaps/silly/config.h diff --git a/keyboards/mechwild/mokulua/keymaps/silly/keymap.c b/keyboards/mechwild/mokulua/standard/keymaps/silly/keymap.c similarity index 89% rename from keyboards/mechwild/mokulua/keymaps/silly/keymap.c rename to keyboards/mechwild/mokulua/standard/keymaps/silly/keymap.c index 9463f162c0..104377f876 100644 --- a/keyboards/mechwild/mokulua/keymaps/silly/keymap.c +++ b/keyboards/mechwild/mokulua/standard/keymaps/silly/keymap.c @@ -47,20 +47,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef OLED_ENABLE - static void render_logo(void) { // Render MechWild "MW" Logo - static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; - static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; - static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; - static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; - oled_set_cursor(0,0); - oled_write_P(logo_1, false); - oled_set_cursor(0,1); - oled_write_P(logo_2, false); - oled_set_cursor(0,2); - oled_write_P(logo_3, false); - oled_set_cursor(0,3); - oled_write_P(logo_4, false); - } + static void render_logo(void) { // Render MechWild "MW" Logo + static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; + static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; + static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; + static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; + oled_set_cursor(0,0); + oled_write_P(logo_1, false); + oled_set_cursor(0,1); + oled_write_P(logo_2, false); + oled_set_cursor(0,2); + oled_write_P(logo_3, false); + oled_set_cursor(0,3); + oled_write_P(logo_4, false); + } bool oled_task_user(void) { render_logo(); oled_set_cursor(0,6); diff --git a/keyboards/mechwild/mokulua/keymaps/silly/readme.md b/keyboards/mechwild/mokulua/standard/keymaps/silly/readme.md similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/silly/readme.md rename to keyboards/mechwild/mokulua/standard/keymaps/silly/readme.md diff --git a/keyboards/mechwild/mokulua/keymaps/via/rules.mk b/keyboards/mechwild/mokulua/standard/keymaps/silly/rules.mk similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/via/rules.mk rename to keyboards/mechwild/mokulua/standard/keymaps/silly/rules.mk diff --git a/keyboards/mechwild/mokulua/keymaps/via/keymap.c b/keyboards/mechwild/mokulua/standard/keymaps/via/keymap.c similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/via/keymap.c rename to keyboards/mechwild/mokulua/standard/keymaps/via/keymap.c diff --git a/keyboards/mechwild/mokulua/keymaps/via/readme.md b/keyboards/mechwild/mokulua/standard/keymaps/via/readme.md similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/via/readme.md rename to keyboards/mechwild/mokulua/standard/keymaps/via/readme.md diff --git a/keyboards/mechwild/mokulua/standard/keymaps/via/rules.mk b/keyboards/mechwild/mokulua/standard/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/mechwild/mokulua/standard/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mechwild/mokulua/standard/rules.mk b/keyboards/mechwild/mokulua/standard/rules.mk new file mode 100644 index 0000000000..5aae5c7c76 --- /dev/null +++ b/keyboards/mechwild/mokulua/standard/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # 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 +ENCODER_ENABLE = yes # Enable encoder +OLED_ENABLE = yes # Enable OLED Screen +OLED_DRIVER = SSD1306 # Define OLED Driver +SPLIT_KEYBOARD = yes # Define split functionality \ No newline at end of file diff --git a/keyboards/mechwild/mokulua/standard/standard.c b/keyboards/mechwild/mokulua/standard/standard.c new file mode 100644 index 0000000000..4bccb70e3f --- /dev/null +++ b/keyboards/mechwild/mokulua/standard/standard.c @@ -0,0 +1,82 @@ +// Copyright 2022 Kyle McCreery (@Kyle McCreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "standard.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + case 1: + if (clockwise) { + tap_code(KC_PGUP); + } else { + tap_code(KC_PGDN); + } + break; + + } + return true; +} +#endif + +#ifdef OLED_ENABLE + oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; // flips the display 270 degrees + } + + static void render_logo(void) { // Render MechWild "MW" Logo + static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; + static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; + static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; + static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; + oled_set_cursor(0,0); + oled_write_P(logo_1, false); + oled_set_cursor(0,1); + oled_write_P(logo_2, false); + oled_set_cursor(0,2); + oled_write_P(logo_3, false); + oled_set_cursor(0,3); + oled_write_P(logo_4, false); + } + bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_logo(); + oled_set_cursor(0,6); + + oled_write_ln_P(PSTR("Layer"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_ln_P(PSTR("Base"), false); + break; + case 1: + oled_write_ln_P(PSTR("FN 1"), false); + break; + case 2: + oled_write_ln_P(PSTR("FN 2"), false); + break; + case 3: + oled_write_ln_P(PSTR("FN 3"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_ln_P(PSTR(""), false); + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + return false; + } +#endif diff --git a/keyboards/mechwild/mokulua/mokulua.h b/keyboards/mechwild/mokulua/standard/standard.h similarity index 94% rename from keyboards/mechwild/mokulua/mokulua.h rename to keyboards/mechwild/mokulua/standard/standard.h index 95ea1e3709..0484340e8d 100644 --- a/keyboards/mechwild/mokulua/mokulua.h +++ b/keyboards/mechwild/mokulua/standard/standard.h @@ -7,7 +7,7 @@ #define ___ KC_NO -#define LAYOUT( \ +#define LAYOUT_standard( \ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ L10, L11, L12, L13, L14, L15, L16, R11, R12, R13, R14, R15, R16, \ L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ @@ -27,3 +27,5 @@ { R41, R42, R43, R44, R45, R46 }, \ { R00, R20, R31, R30, R40, ___ } \ } + +#define LAYOUT LAYOUT_standard From 4be736c192883a2e5b1185734eec25d0e1955f83 Mon Sep 17 00:00:00 2001 From: Runheme <95535123+Runheme@users.noreply.github.com> Date: Mon, 18 Jul 2022 20:18:08 +0800 Subject: [PATCH 66/69] [Keyboard]modify ginkgo65hot (#17705) modify ginkgo65hot --- keyboards/mokey/ginkgo65hot/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/mokey/ginkgo65hot/config.h b/keyboards/mokey/ginkgo65hot/config.h index 5b73c4dc98..2830227490 100644 --- a/keyboards/mokey/ginkgo65hot/config.h +++ b/keyboards/mokey/ginkgo65hot/config.h @@ -26,8 +26,8 @@ along with this program. If not, see . #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define MATRIX_ROW_PINS { F7, B7, F5, F1, B0 } -#define MATRIX_COL_PINS { C7, F6, B2, F4, B3, E6, D0, D1, D2, D3, D5, D4, D6, D7, B4 } +#define MATRIX_ROW_PINS { B0, B1, B2, B3, F7 } +#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, E6, D0, D1, D2, D3, D5, D4, D6, D7, B4 } #define UNUSED_PINS #define DIODE_DIRECTION COL2ROW From c10d0fc785a8c8972bc129c6db03e26360eddd45 Mon Sep 17 00:00:00 2001 From: Jason Wihardja Date: Mon, 18 Jul 2022 19:20:19 +0700 Subject: [PATCH 67/69] Add Support for Massdrop's Stack Overflow The Key V2 (#17696) * Default Factory Settings * Change Keyboard Name in Readme * Fix LED Orders * Change Brightness Step * Enable Lighting Layers * Add RGB Control Mode * Unblink Layer to Clear Stack * Add MacOS RGB Control * Comment Fixes --- keyboards/massdrop/thekey_v2/config.h | 50 ++++++++ keyboards/massdrop/thekey_v2/info.json | 14 +++ .../thekey_v2/keymaps/default-macos/keymap.c | 23 ++++ .../thekey_v2/keymaps/default/keymap.c | 23 ++++ .../keymaps/rgb-control-macos/keymap.c | 109 ++++++++++++++++++ .../thekey_v2/keymaps/rgb-control/keymap.c | 109 ++++++++++++++++++ .../keymaps/url-copy-paste-macos/keymap.c | 39 +++++++ .../thekey_v2/keymaps/url-copy-paste/keymap.c | 40 +++++++ keyboards/massdrop/thekey_v2/readme.md | 38 ++++++ keyboards/massdrop/thekey_v2/rules.mk | 18 +++ keyboards/massdrop/thekey_v2/thekey_v2.c | 17 +++ keyboards/massdrop/thekey_v2/thekey_v2.h | 27 +++++ 12 files changed, 507 insertions(+) create mode 100644 keyboards/massdrop/thekey_v2/config.h create mode 100644 keyboards/massdrop/thekey_v2/info.json create mode 100644 keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/default/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/readme.md create mode 100644 keyboards/massdrop/thekey_v2/rules.mk create mode 100644 keyboards/massdrop/thekey_v2/thekey_v2.c create mode 100644 keyboards/massdrop/thekey_v2/thekey_v2.h diff --git a/keyboards/massdrop/thekey_v2/config.h b/keyboards/massdrop/thekey_v2/config.h new file mode 100644 index 0000000000..9b6235998b --- /dev/null +++ b/keyboards/massdrop/thekey_v2/config.h @@ -0,0 +1,50 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Drop +#define PRODUCT The Key V2 + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + */ +#define MATRIX_ROW_PINS { D4 } +#define MATRIX_COL_PINS { D2, D1, D0 } + +#define DIODE_DIRECTION ROW2COL + +#define RGB_DI_PIN B1 +#define RGBLED_NUM 5 +#define RGBLIGHT_LED_MAP {4, 0, 1, 2, 3} +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 10 +#define RGBLIGHT_VAL_STEP 15 +#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_LAYERS /* Enable lighting layers */ +#define RGBLIGHT_LAYER_BLINK /* Enable lighting layer blink */ diff --git a/keyboards/massdrop/thekey_v2/info.json b/keyboards/massdrop/thekey_v2/info.json new file mode 100644 index 0000000000..7167d5cf6d --- /dev/null +++ b/keyboards/massdrop/thekey_v2/info.json @@ -0,0 +1,14 @@ +{ + "keyboard_name": "The Key V2", + "url": "https://drop.com/buy/stack-overflow-the-key-v2-macropad", + "maintainer": "massdrop", + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "K00 (D4,D2)", "x": 0, "y": 0 }, + { "label": "K01 (D4,D1)", "x": 1, "y": 0 }, + { "label": "K02 (D4,D0)", "x": 2, "y": 0 } + ] + } + } +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c new file mode 100644 index 0000000000..fb45d5e224 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT(KC_LGUI, KC_C, KC_V), + +}; diff --git a/keyboards/massdrop/thekey_v2/keymaps/default/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..5e1de6068b --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT(KC_LCTL, KC_C, KC_V), + +}; diff --git a/keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c new file mode 100644 index 0000000000..f3699e752f --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + LAYER_SWITCH = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default */ + [0] = LAYOUT(LAYER_SWITCH, G(KC_C), G(KC_V)), + + /* RGB Toggle + Mode Change */ + [1] = LAYOUT(LAYER_SWITCH, RGB_TOG, RGB_MOD), + + /* RGB Brightness */ + [2] = LAYOUT(LAYER_SWITCH, RGB_VAD, RGB_VAI), + + /* RGB Hue */ + [3] = LAYOUT(LAYER_SWITCH, RGB_HUD, RGB_HUI), + + /* RGB Saturation */ + [4] = LAYOUT(LAYER_SWITCH, RGB_SAD, RGB_SAI), + +}; + +/* Lighting layers */ + +const rgblight_segment_t PROGMEM layer_indicator_0[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_WHITE}, + {1, 4, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_1[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_OFF}, + {1, 1, HSV_WHITE}, + {2, 3, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_2[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 2, HSV_OFF}, + {2, 1, HSV_WHITE}, + {3, 2, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_3[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_OFF}, + {3, 1, HSV_WHITE}, + {4, 1, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_4[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, HSV_OFF}, + {4, 1, HSV_WHITE} +); + +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer_indicator_0, + layer_indicator_1, + layer_indicator_2, + layer_indicator_3, + layer_indicator_4 +); + +void keyboard_post_init_user(void) { + /* Enable the LED layers */ + rgblight_layers = rgb_layers; +} + +/* Layer handler */ + +uint16_t layer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LAYER_SWITCH: + if (record->event.pressed) { + if (layer > 0) { + layer_off(layer); + } + + rgblight_unblink_layer(layer); + layer = (layer + 1) % 5; + rgblight_blink_layer_repeat(layer, 1000, 1); + + if (layer > 0) { + layer_on(layer); + } + } + return false; + default: + return true; + } +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c new file mode 100644 index 0000000000..4246973654 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + LAYER_SWITCH = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default */ + [0] = LAYOUT(LAYER_SWITCH, C(KC_C), C(KC_V)), + + /* RGB Toggle + Mode Change */ + [1] = LAYOUT(LAYER_SWITCH, RGB_TOG, RGB_MOD), + + /* RGB Brightness */ + [2] = LAYOUT(LAYER_SWITCH, RGB_VAD, RGB_VAI), + + /* RGB Hue */ + [3] = LAYOUT(LAYER_SWITCH, RGB_HUD, RGB_HUI), + + /* RGB Saturation */ + [4] = LAYOUT(LAYER_SWITCH, RGB_SAD, RGB_SAI), + +}; + +/* Lighting layers */ + +const rgblight_segment_t PROGMEM layer_indicator_0[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_WHITE}, + {1, 4, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_1[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_OFF}, + {1, 1, HSV_WHITE}, + {2, 3, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_2[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 2, HSV_OFF}, + {2, 1, HSV_WHITE}, + {3, 2, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_3[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_OFF}, + {3, 1, HSV_WHITE}, + {4, 1, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_4[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, HSV_OFF}, + {4, 1, HSV_WHITE} +); + +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer_indicator_0, + layer_indicator_1, + layer_indicator_2, + layer_indicator_3, + layer_indicator_4 +); + +void keyboard_post_init_user(void) { + /* Enable the LED layers */ + rgblight_layers = rgb_layers; +} + +/* Layer handler */ + +uint16_t layer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LAYER_SWITCH: + if (record->event.pressed) { + if (layer > 0) { + layer_off(layer); + } + + rgblight_unblink_layer(layer); + layer = (layer + 1) % 5; + rgblight_blink_layer_repeat(layer, 1000, 1); + + if (layer > 0) { + layer_on(layer); + } + } + return false; + default: + return true; + } +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c new file mode 100644 index 0000000000..33d19734bc --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + TK_URL = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(TK_URL, G(KC_C), G(KC_V)), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TK_URL: + if (record->event.pressed) { + // when keycode TK_URL is pressed + SEND_STRING("https://stackoverflow.com/\n"); + } + break; + default: + break; + } + return true; +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c new file mode 100644 index 0000000000..5becddfa2a --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + TK_URL = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(TK_URL, C(KC_C), C(KC_V)), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TK_URL: + if (record->event.pressed) { + // when keycode TK_URL is pressed + SEND_STRING("https://stackoverflow.com/"); + } + break; + default: + break; + } + return true; +} diff --git a/keyboards/massdrop/thekey_v2/readme.md b/keyboards/massdrop/thekey_v2/readme.md new file mode 100644 index 0000000000..ef4d6ec716 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/readme.md @@ -0,0 +1,38 @@ +# The Key V2 + +![The Key V2](https://massdrop-s3.imgix.net/product-images/stack-overflow-the-key-v2-macropad/FP/vSqOp9eUQNGXW4zl3EVQ_7528-copy-pdp.jpg) + + +The Stack Overflow "The Key V2" is a 3 button macropad based on atmega32u4 with hot-swappble Kailh Black Box switches. + +> Last year, we brought Stack Overflow’s iconic April Fool’s joke to life. Advertised as the new (and only) way to copy and paste on the site, it was an ultra-compact macropad called The Key. The punchline-turned product was a huge hit, selling over 10K units and earning a nearly 5-star average review. Now, we’re back with a second act: The Key V2. The same size as its portable predecessor, this punchline-turned-product has a few notable changes—including an acrylic case to accent its two built-in RGB LEDs. Plus, we made it hot-swappable, so you can easily change out the switches for a truly custom experience. And just like the original, a portion of all proceeds from The Key V2 will go to the data-driven social startup digitalundivided. + +Keyboard Maintainer: [Drop / Massdrop](https://github.com/Massdrop/qmk_firmware) + +Hardware Supported: Massdrop, Inc. **The Key V2** + +Hardware Availability: Limited Release - https://drop.com/buy/stack-overflow-the-key-v2-macropad + + +Make example for this keyboard (after setting up your build environment): +```bash +# default provided by Drop / Stack Overflow +make massdrop/thekey_v2:default +# common modification where C = CTRL+C, V = CTRL+V +make massdrop/thekey_v2:url-copy-paste +``` + +Flashing example for this keyboard: +```bash +# install in dfu mode +make massdrop/thekey_v2:default:dfu +``` + +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). +Make example for this keyboard (after setting up your build environment): + +## Bootloader + +Enter the bootloader as follows: +* **Bootmagic reset**: Hold down the "Stack Overflow" key, the "left-most" or furthest from the USB plug while inserting the USB cable for a few seconds. The LEDs will **NOT** turn on. +* **Physical reset button**: Briefly press and hold the reset button while pluggin in the USB port. The LEDs on the back will **NOT** turn on. Depending on your case revision, you may have to remove the 4 screws on the back plate to access the switch OR you can use the associated access hole on newer releases. diff --git a/keyboards/massdrop/thekey_v2/rules.mk b/keyboards/massdrop/thekey_v2/rules.mk new file mode 100644 index 0000000000..a0a1e94e36 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/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 = 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 = 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/massdrop/thekey_v2/thekey_v2.c b/keyboards/massdrop/thekey_v2/thekey_v2.c new file mode 100644 index 0000000000..b1a824d9d4 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/thekey_v2.c @@ -0,0 +1,17 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "thekey_v2.h" diff --git a/keyboards/massdrop/thekey_v2/thekey_v2.h b/keyboards/massdrop/thekey_v2/thekey_v2.h new file mode 100644 index 0000000000..c3b8e1a8ea --- /dev/null +++ b/keyboards/massdrop/thekey_v2/thekey_v2.h @@ -0,0 +1,27 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K00, K01, K02 \ +) { \ + { K00, K01, K02 }, \ +} From 627e35b7ac61e294c7c34a693d8191cded68136e Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 18 Jul 2022 22:52:55 +0300 Subject: [PATCH 68/69] Remove Nixpkgs-provided `poetry` from the environment (#17673) The `poetry` package from the used Nixpkgs snapshot triggers the regex compatibility issue in Nix >= 2.10.0 binaries for `x86_64-darwin`: https://www.github.com/NixOS/nix/issues/4758 Remove the `poetry` package from the Nix shell environment for now (it is not really required to compile QMK, only to develop the Nix shell environment itself). In addition, all `poetry` version earlier than 1.1.14 became effectively non-functional after a breaking change of the PyPI JSON API: https://www.github.com/python-poetry/poetry/pull/5973 Updating the `poetry` package is not trivial (just adding it it to `pyproject.toml` does not work due to dependency version conflicts with other modules), therefore removing it seems to be the easiest solution to restore compatibility with new Nix versions while not creating any major inconvenience for QMK users. --- shell.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell.nix b/shell.nix index a96aa840de..7e3704d010 100644 --- a/shell.nix +++ b/shell.nix @@ -48,7 +48,7 @@ in mkShell { name = "qmk-firmware"; - buildInputs = [ clang-tools dfu-programmer dfu-util diffutils git pythonEnv poetry niv ] + buildInputs = [ clang-tools dfu-programmer dfu-util diffutils git pythonEnv niv ] ++ lib.optional avr [ pkgsCross.avr.buildPackages.binutils pkgsCross.avr.buildPackages.gcc8 From 7aea67980b0029739d6572f58951bc58e56bf7d5 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 18 Jul 2022 19:09:05 -0700 Subject: [PATCH 69/69] Update noroadsleft userspace and keymaps (2022-07-18) (#17714) * kbdfans/kbd75/rev1:noroadsleft - remove LAYOUT_75_ansi_wkl definition * coseyfannitutti/discipline:noroadsleft - change KC_GESC to KC_ESC * update Quantum keycode instances in noroadsleft keymaps - `RESET` -> `QK_BOOT` - `EEP_RST` -> `EE_CLR` - `DEBUG` -> `DB_TOGG` * create and add G_PWD macro --- .../discipline/keymaps/noroadsleft/keymap.c | 10 +++---- .../kbd75/keymaps/noroadsleft/keymap.c | 22 ++------------ keyboards/kc60/keymaps/noroadsleft/keymap.c | 6 ++-- users/noroadsleft/noroadsleft.c | 8 ++++- users/noroadsleft/noroadsleft.h | 3 +- users/noroadsleft/readme.md | 29 ++++++++++--------- 6 files changed, 36 insertions(+), 42 deletions(-) diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c index 050e406772..4460d6f9bb 100644 --- a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c +++ b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 James Young (@noroadsleft) +/* Copyright 2021-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DV] = 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_LBRC, KC_RBRC, KC_BSPC, KC_HOME, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP, FN_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_PGDN, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END, @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_QW] = 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_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_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, FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, @@ -56,13 +56,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_65_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, DM_REC1, _______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, DM_REC2, - _______, M_SALL, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, + _______, M_SALL, _______, _______, G_PWD, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, _______, M_UNDO, M_CUT, M_COPY, M_PASTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TO(_SY), _______, _______, DM_PLY2, _______, _______, _______, TG(_NP), _______, _______, _______, _______, _______, _______ ), [_SY] = LAYOUT_65_ansi( - TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, + TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c index 87cab80f59..de656357f9 100644 --- a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 James Young (@noroadsleft) +/* Copyright 2020-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,22 +16,6 @@ #include "noroadsleft.h" -#define LAYOUT_75_ansi_wkl( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ - K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K501, K506, K510, K512, K513, K514, K515 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ - { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, K501, KC_NO, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ -} - enum layer_names { _DV, _QW, @@ -88,13 +72,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, DM_REC1, _______, KC_CALC, KC_APP, G_PUSH, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, DM_REC2, - _______, M_SALL, _______, G_FTCH, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, + _______, M_SALL, _______, G_FTCH, G_PWD, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, _______, M_UNDO, M_CUT, M_COPY, M_PASTE, G_BRCH, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, DM_PLY2, _______, _______, _______, _______, _______, _______, _______, _______ ), [_SY] = LAYOUT_75_ansi_wkl( - TG(_SY), TO(_DV), TO(_QW), XXXXXXX, TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET, EEP_RST, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, + TG(_SY), TO(_DV), TO(_QW), XXXXXXX, TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, EE_CLR, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/kc60/keymaps/noroadsleft/keymap.c b/keyboards/kc60/keymaps/noroadsleft/keymap.c index 1721861b9a..37091fccdd 100644 --- a/keyboards/kc60/keymaps/noroadsleft/keymap.c +++ b/keyboards/kc60/keymaps/noroadsleft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2018-2021 James Young (@noroadsleft) +/* Copyright 2018-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -101,13 +101,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MA] = LAYOUT_60_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______, _______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP, - _______, _______, _______, G_FTCH, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, G_FTCH, G_PWD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, G_BRCH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_SY] = LAYOUT_60_ansi( - TG(_SY), TO(_DV), TO(_QW), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, + TG(_SY), TO(_DV), TO(_QW), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/users/noroadsleft/noroadsleft.c b/users/noroadsleft/noroadsleft.c index 28bfa9e6c6..80d18f4026 100644 --- a/users/noroadsleft/noroadsleft.c +++ b/users/noroadsleft/noroadsleft.c @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 James Young (@noroadsleft) +/* Copyright 2020-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -66,6 +66,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } }; return false; + case G_PWD: + if (record->event.pressed) { + clear_mods(); + SEND_STRING("$( pwd | sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')"); + }; + return false; case M_SALL: if (record->event.pressed) { tap_code16(C(KC_A)); diff --git a/users/noroadsleft/noroadsleft.h b/users/noroadsleft/noroadsleft.h index 12bb5b465a..1d1a547562 100644 --- a/users/noroadsleft/noroadsleft.h +++ b/users/noroadsleft/noroadsleft.h @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 James Young (@noroadsleft) +/* Copyright 2020-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ enum userspace_keycodes { G_PUSH, G_FTCH, G_BRCH, + G_PWD, M_SALL, M_UNDO, M_CUT, diff --git a/users/noroadsleft/readme.md b/users/noroadsleft/readme.md index e8279c0333..d32e66917f 100644 --- a/users/noroadsleft/readme.md +++ b/users/noroadsleft/readme.md @@ -19,25 +19,28 @@ Outputs a string that tells me the Git commit from which my flashed firmware was Some frequently used Git commands. -| Keycode | Output | Output with Shift | -| :---------------------------------- | :--------------------- | :--------------------------- | -| [`G_PUSH`](./noroadsleft.c#L44-L48) | `git push origin ` | `git push origin ` | -| [`G_FTCH`](./noroadsleft.c#L49-L58) | `git fetch upstream ` | `git pull upstream ` | -| [`G_BRCH`](./noroadsleft.c#L59-L68) | `master` | `$(git branch-name)` | +| Keycode | Output | Output with Shift | +| :---------------------------------- | :---------------------------------------------------- | :---------------------------------------------------- | +| [`G_PUSH`](./noroadsleft.c#L44-L48) | `git push origin ` | `git push origin ` | +| [`G_FTCH`](./noroadsleft.c#L49-L58) | `git fetch upstream ` | `git pull upstream ` | +| [`G_BRCH`](./noroadsleft.c#L59-L68) | `master` | `$(git branch-name)` | +| [`G_PWD`](./noroadsleft.c#L69-L74) | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')` | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')` | `$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally returns the name of the current branch. +The `G_PWD` macro outputs a shell expansion that returns the current working directory in relation to `qmk_firmware/keyboards/`, and with the slashes replaced with underscores. I do a lot of keyboard refactoring in QMK, and this is a string I use regularly. + ### Customized Keycodes I used to have a boolean variable that changed the functionality of these keycodes, but I no longer work in the environment that I wrote the functionality for, so I took it out. The keycodes still exist because all my `keymap.c` files reference the custom keycodes I defined. | Keycode | Action | | :------------------------------------ | :-------- | -| [`M_SALL`](./noroadsleft.c#L69-L73) | `Ctrl+A` | -| [`M_UNDO`](./noroadsleft.c#L74-L82) | `Ctrl+Z` | -| [`M_CUT`](./noroadsleft.c#L83-L87) | `Ctrl+X` | -| [`M_COPY`](./noroadsleft.c#L88-L92) | `Ctrl+C` | -| [`M_PASTE`](./noroadsleft.c#L93-L101) | `Ctrl+V` | +| [`M_SALL`](./noroadsleft.c#L75-L79) | `Ctrl+A` | +| [`M_UNDO`](./noroadsleft.c#L80-L88) | `Ctrl+Z` | +| [`M_CUT`](./noroadsleft.c#L89-L93) | `Ctrl+X` | +| [`M_COPY`](./noroadsleft.c#L94-L98) | `Ctrl+C` | +| [`M_PASTE`](./noroadsleft.c#L99-L107) | `Ctrl+V` | ### [Emulated Non-US Backslash](./noroadsleft.c#L27-L37) @@ -47,18 +50,18 @@ This macro simulates the Non-US Backslash key if I hold Right Alt and tap the ke Requires defining `ANSI_NUBS_ROW` and `ANSI_NUBS_COL` in `config.h` at the keymap level.[1](#footnotes) -### [Emulated Numeric Keypad](./noroadsleft.c#L102-L116) +### [Emulated Numeric Keypad](./noroadsleft.c#L108-L122) If I hold the Right Alt key, the number row (`KC_1` through `KC_0`) will output numpad keycodes instead of number row keycodes, enabling quicker access to characters like ™ and °. -### [Emulated Extended Function Keys](./noroadsleft.c#L117-L131) +### [Emulated Extended Function Keys](./noroadsleft.c#L123-L137) Similar to the emulated numpad, if I hold the Right Alt key with the Fn key, the function row (`KC_F1` through `KC_F12`) will output keycodes `KC_F13` throught `KC_F24`. ## License -Copyright 2020-2021 James Young (@noroadsleft) +Copyright 2020-2022 James Young (@noroadsleft) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by